matrix.h work/git/mixpp/pmsm/simulator_zdenek/ekf_example/ekf.cpp work/git/mixpp/pmsm/simulator_zdenek/ekf_example/ekf_obj.h work/git/mixpp/pmsm/simulator_zdenek/ekf_example/matrix.cpp void void madd (int *m1, int *m2, int *result, unsigned int rows, unsigned int columns) madd int * m1 int * m2 int * result unsigned int rows unsigned int columns void void maddD (int *m1, int *m2, unsigned int minrowcol, unsigned int columns) maddD int * m1 int * m2 unsigned int minrowcol unsigned int columns void void msub (int *m1, int *m2, int *result, unsigned int rows, unsigned int columns) msub int * m1 int * m2 int * result unsigned int rows unsigned int columns void void mmult (int *m1, int *m2, int *result, unsigned int rows, unsigned int columnsx, unsigned int columns) mmult int * m1 int * m2 int * result unsigned int rows unsigned int columnsx unsigned int columns void void mmultt (int *m1, int *m2, int *result, unsigned int rows, unsigned int columnsx, unsigned int columns) mmultt int * m1 int * m2 int * result unsigned int rows unsigned int columnsx unsigned int columns void void mmult15 (int *m1, int *m2, int *result, unsigned int rows, unsigned int columnsx, unsigned int columns) mmult15 int * m1 int * m2 int * result unsigned int rows unsigned int columnsx unsigned int columns void void mmultt15 (int *m1, int *m2, int *result, unsigned int rows, unsigned int columnsx, unsigned int columns) mmultt15 int * m1 int * m2 int * result unsigned int rows unsigned int columnsx unsigned int columns void void mmult1530 (int *m1, long *m2, int *result, unsigned int rows, unsigned int columnsx, unsigned int columns) mmult1530 int * m1 long * m2 int * result unsigned int rows unsigned int columnsx unsigned int columns void void mmultDl (int *m2, int *result, unsigned int rows, unsigned int columnsx, unsigned int columns, unsigned int minrowcol) mmultDl int * m2 int * result unsigned int rows unsigned int columnsx unsigned int columns unsigned int minrowcol void void mmultDl15 (int *DIAG, int *m2, int *result, unsigned int rows, unsigned int columnsx, unsigned int columns, unsigned int minrowcol) mmultDl15 int * DIAG int * m2 int * result unsigned int rows unsigned int columnsx unsigned int columns unsigned int minrowcol void void mmultDr (int *m1, int *result, unsigned int rows, unsigned int columnsx, unsigned int columns, unsigned int minrowcol) mmultDr int * m1 int * result unsigned int rows unsigned int columnsx unsigned int columns unsigned int minrowcol void void mmultDr15 (int *m1, int *DIAG, int *result, unsigned int rows, unsigned int columnsx, unsigned int columns, unsigned int minrowcol) mmultDr15 int * m1 int * DIAG int * result unsigned int rows unsigned int columnsx unsigned int columns unsigned int minrowcol void void mtrans (int *m1, int *result, unsigned int rows, unsigned int columns) mtrans int * m1 int * result unsigned int rows unsigned int columns void void minv2 (int *matrix, long *result) minv2 int * matrix long * result void void choice_P (int *m, int *result, unsigned int columns) choice_P int * m int * result unsigned int columns void void choice_x (int *m, int *result) choice_x int * m int * result /************************************ ExtendedKalmanFilter Matrixoperations Z.Peroutka Rev.15.3.2008 15.3.2008Kompletnikontrolavypoctu+zamenaq15->intaq30->long *************************************/ /*Vsechnymezeseudavajivetvaru(rozmer_matice-1),abychmelveFORkonstantnihornimez)*/ /*Matrixadditioninq15:m1+m2=result[rows,columns]*/ externvoidmadd(int*m1,int*m2,int*result,unsignedintrows,unsignedintcolumns); /*adddiagonalmatrixm2tomatrixm1-bothinformatq15,minrowcol=min(rows,columns)*/ externvoidmaddD(int*m1,int*m2,unsignedintminrowcol,unsignedintcolumns); /*Matrixsubstractioninq15:m1-m2=result[rows,columns]*/ externvoidmsub(int*m1,int*m2,int*result,unsignedintrows,unsignedintcolumns); /*Matrixmultiplyinq15:m1[rows,columnsx]*m2[columnsx,columns]=result[rows,columns]*/ externvoidmmult(int*m1,int*m2,int*result,unsignedintrows,unsignedintcolumnsx,unsignedint columns); /*Matrixmultiplicationinq15:m1[rows,columnsx]*(m2[columnsx,columns]transpose)=result[rows,columns]*/ externvoidmmultt(int*m1,int*m2,int*result,unsignedintrows,unsignedintcolumnsx,unsignedint columns); /*matrixmultiplicationinq15:sumisinq15*/ externvoidmmult15(int*m1,int*m2,int*result,unsignedintrows,unsignedintcolumnsx,unsignedint columns); /*Matrixmultiplicationinq15(sumisinq15):m1[rows,columnsx]*(m2[columns,columnsx]transpose)=result[rows,columns]*/ externvoidmmultt15(int*m1,int*m2,int*result,unsignedintrows,unsignedintcolumnsx,unsignedint columns); /*Matrixmultiplication-Q15*Q30format->RESULTinQ15*/ externvoidmmult1530(int*m1,long*m2,int*result,unsignedintrows,unsignedintcolumnsx,unsignedint columns); /*LeftmatrixmultiplicationwithDIAGonesmatrixinq15:DIAG[rows,columnsx]*m2[columnsx,columns]=result[rows,columns] minrowcol=minimum(rows,columnsx)*/ externvoidmmultDl(int*m2,int*result,unsignedintrows,unsignedintcolumnsx,unsignedint columns,unsignedintminrowcol); /*LeftmatrixmultiplicationwithDIAGmatrixinq15:DIAG[rows,columnsx]*m2[columnsx,columns]=result[rows,columns] minrowcol=minimum(rows,columnsx)*/ externvoidmmultDl15(int*DIAG,int*m2,int*result,unsignedintrows,unsignedintcolumnsx,unsignedint columns,unsignedintminrowcol); /*RightmatrixmultiplicationwithDIAGonesmatrixinq15:m1[rows,columnsx]*DIAG[columnsx,columns]=result[rows,columns] minrowcol=minimum(columnsx,columns)*/ externvoidmmultDr(int*m1,int*result,unsignedintrows,unsignedintcolumnsx,unsignedint columns,unsignedintminrowcol); /*RightmatrixmultiplicationwithDIAGmatrixinq15:m1[rows,columnsx]*DIAG[columnsx,columns]=result[rows,columns] minrowcol=minimum(columnsx,columns)*/ externvoidmmultDr15(int*m1,int*DIAG,int*result,unsignedintrows,unsignedintcolumnsx,unsignedint columns,unsignedintminrowcol); /*Matrixtranspositioninq15:m1.'=result[rows,columns]*/ externvoidmtrans(int*m1,int*result,unsignedintrows,unsignedintcolumns); /*Matrix[2,2]inversioninq15:inv(m1)=result[rows,columns]*/ externvoidminv2(int*matrix,long*result); externvoidchoice_P(int*m,int*result,unsignedintcolumns); externvoidchoice_x(int*m,int*result);