root/applications/pmsm/simulator_zdenek/ekf_example/matrix_vs.h @ 1468

Revision 1468, 2.9 kB (checked in by smidl, 11 years ago)

uprava generatoru

RevLine 
[1174]1/************************************
2        Extended Kalman Filter
3        Matrix operations
4
5        V. Smidl
6
7Rev. 30.8.2010
8
930.8.2010      Prvni verze
10
11*************************************/
[1225]12
[1228]13#define qAU 14
[1313]14#define qCU 15
[1340]15#define qD 13
[1465]16#define qCh 13
[1225]17
[1329]18#define int16 short
19#define int32 int
[1465]20#define int64 long
[1240]21
[1225]22/* Matrix multiply Full matrix by upper diagonal matrix with unit diagonal; */
[1240]23extern void mmultAU(int16 *m1, int16 *up, int16 *result, unsigned int16 rows, unsigned int16 columns);
[1174]24
[1313]25/* Matrix multiply Full matrix by upper diagonal matrix with unit diagonal; */
26extern void mmultCU(int16 *m1, int16 *up, int16 *result, unsigned int16 rows, unsigned int16 columns);
27
[1225]28/* Matrix multiply Full matrix by upper diagonal matrix; */
[1240]29extern void mmultACh(int16 *m1, int16 *up, int16 *result, unsigned int16 rows, unsigned int16 columns);
[1225]30
[1174]31/* perform Thorton update of UD matrix using PSI*U, Q, and temporaries G, Dold, for size dimx*/
[1240]32extern void thorton(int16 *U, int16 *D, int16 *PSIU, int16 *Q, int16 *G, int16 *Dold, unsigned int16 dimx);
[1174]33
34/* perform Bierman update of UD matrix using difz, R and xp, for size dimx*/
[1240]35extern void bierman(int16 *difz, int16 *xp, int16 *U, int16 *D, int16 *R, unsigned int16 dimy, unsigned int16 dimx );
[1179]36
37/* perform Thorton update of UD matrix using PSI*U, Q, and temporaries G, Dold, for size dimx*/
[1240]38extern void thorton_fast(int16 *U, int16 *D, int16 *PSIU, int16 *Q, int16 *G, int16 *Dold, unsigned int16 dimx);
[1179]39
40/* perform Bierman update of UD matrix using difz, R and xp, for size dimx*/
[1240]41extern void bierman_fast(int16 *difz, int16 *xp, int16 *U, int16 *D, int16 *R, unsigned int16 dimy, unsigned int16 dimx );
[1225]42
[1313]43/* perform Bierman update of UD matrix using difz, R and xp, for size dimx*/
44extern void bierman_fastC(int16 *difz, int16 *xp, int16 *U, int16 *D, int16 *C, int16 *R, unsigned int16 dimy, unsigned int16 dimx );
45
[1225]46/* perform Householder update of Ch matrix using PSI*Ch , Q, */
[1240]47extern void householder(int16 *Ch /*= int16 *PSICh*/, int16 *Q, unsigned int16 dimx);
[1225]48
[1230]49/* perform Givens update of Ch matrix using PSI*Ch , Q, */
[1240]50extern void givens(int16 *Ch /*= int16 *PSICh*/, int16 *Q, unsigned int16 dimx);
[1230]51
[1225]52/* perform Carlson update of Ch matrix using difz, R and xp, for size dimx*/
[1240]53extern void carlson(int16 *difz, int16 *xp, int16 *Ch, int16 *R, unsigned int16 dimy, unsigned int16 dimx );
[1294]54
[1464]55/* perform Givens update of Ch matrix using PSI*Ch and Q, */
[1294]56extern void givens_fast(int16 *Ch /*= int16 *PSICh*/, int16 *Q, unsigned int16 dimx);
57
[1464]58/* perform Carlson update of Ch matrix using difz, R and xp, for size dimx, asuming identity matrix C*/
[1294]59extern void carlson_fast(int16 *difz, int16 *xp, int16 *Ch, int16 *R, unsigned int16 dimy, unsigned int16 dimx );
[1321]60
61/* perform Carlson update of Ch matrix using difz, R and xp, for size dimx*/
[1468]62extern void carlson_fastC(int16* difz, int16* xp, int16* Ch, int16* C, int16* R, unsigned int16 dimy, unsigned int16 dimx, int32* detS, int16* rem );
Note: See TracBrowser for help on using the browser.