1 | /************************************ |
---|
2 | Extended Kalman Filter |
---|
3 | Matrix operations |
---|
4 | |
---|
5 | V. Smidl |
---|
6 | |
---|
7 | Rev. 30.8.2010 |
---|
8 | |
---|
9 | 30.8.2010 Prvni verze |
---|
10 | |
---|
11 | *************************************/ |
---|
12 | |
---|
13 | #define qAU 15 |
---|
14 | |
---|
15 | /* Matrix multiply Full matrix by upper diagonal matrix with unit diagonal; */ |
---|
16 | extern void mmultAU(int *m1, int *up, int *result, unsigned int rows, unsigned int columns); |
---|
17 | |
---|
18 | /* Matrix multiply Full matrix by upper diagonal matrix; */ |
---|
19 | extern void mmultACh(int *m1, int *up, int *result, unsigned int rows, unsigned int columns); |
---|
20 | |
---|
21 | /* perform Thorton update of UD matrix using PSI*U, Q, and temporaries G, Dold, for size dimx*/ |
---|
22 | extern void thorton(int *U, int *D, int *PSIU, int *Q, int *G, int *Dold, unsigned int dimx); |
---|
23 | |
---|
24 | /* perform Bierman update of UD matrix using difz, R and xp, for size dimx*/ |
---|
25 | extern void bierman(int *difz, int *xp, int *U, int *D, int *R, unsigned int dimy, unsigned int dimx ); |
---|
26 | |
---|
27 | /* perform Thorton update of UD matrix using PSI*U, Q, and temporaries G, Dold, for size dimx*/ |
---|
28 | extern void thorton_fast(int *U, int *D, int *PSIU, int *Q, int *G, int *Dold, unsigned int dimx); |
---|
29 | |
---|
30 | /* perform Bierman update of UD matrix using difz, R and xp, for size dimx*/ |
---|
31 | extern void bierman_fast(int *difz, int *xp, int *U, int *D, int *R, unsigned int dimy, unsigned int dimx ); |
---|
32 | |
---|
33 | /* perform Householder update of Ch matrix using PSI*Ch , Q, */ |
---|
34 | extern void householder(int *Ch /*= int *PSICh*/, int *Q, unsigned int dimx); |
---|
35 | |
---|
36 | /* perform Carlson update of Ch matrix using difz, R and xp, for size dimx*/ |
---|
37 | extern void carlson(int *difz, int *xp, int *Ch, int *R, unsigned int dimy, unsigned int dimx ); |
---|