[1174] | 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 | *************************************/ |
---|
[1225] | 12 | |
---|
[1228] | 13 | #define qAU 14 |
---|
[1225] | 14 | |
---|
| 15 | /* Matrix multiply Full matrix by upper diagonal matrix with unit diagonal; */ |
---|
[1174] | 16 | extern void mmultAU(int *m1, int *up, int *result, unsigned int rows, unsigned int columns); |
---|
| 17 | |
---|
[1225] | 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 | |
---|
[1174] | 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*/ |
---|
[1179] | 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*/ |
---|
[1225] | 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 | |
---|
[1230] | 36 | /* perform Givens update of Ch matrix using PSI*Ch , Q, */ |
---|
| 37 | extern void givens(int *Ch /*= int *PSICh*/, int *Q, unsigned int dimx); |
---|
| 38 | |
---|
[1225] | 39 | /* perform Carlson update of Ch matrix using difz, R and xp, for size dimx*/ |
---|
| 40 | extern void carlson(int *difz, int *xp, int *Ch, int *R, unsigned int dimy, unsigned int dimx ); |
---|