#include <math.h>#include <AR/config.h>
Go to the source code of this file.
Classes | |
| struct | ARMat |
| matrix structure. More... | |
| struct | ARVec |
| vector structure. More... | |
Defines | |
| #define | ARELEM0(mat, r, c) ((mat)->m[(r)*((mat)->clm)+(c)]) |
| macro function that give direct access to an element (0 origin) | |
| #define | ARELEM1(mat, row, clm) ARELEM0(mat,row-1,clm-1) |
| macro function that give direct access to an element (1 origin) | |
Functions | |
| ARMat * | arMatrixAlloc (int row, int clm) |
| creates a new matrix. | |
| ARMat * | arMatrixAllocDup (ARMat *source) |
| dumps a new matrix | |
| ARMat * | arMatrixAllocInv (ARMat *source) |
| inverses a matrix. | |
| ARMat * | arMatrixAllocMul (ARMat *a, ARMat *b) |
| Multiply two matrix with memory allocation. | |
| ARMat * | arMatrixAllocTrans (ARMat *source) |
| transposes a matrix with allocation. | |
| ARMat * | arMatrixAllocUnit (int dim) |
| Creates a unit matrix. | |
| double | arMatrixDet (ARMat *m) |
| compute determinant of a matrix. | |
| int | arMatrixDisp (ARMat *m) |
| display content of a matrix. | |
| int | arMatrixDup (ARMat *dest, ARMat *source) |
| copy a matrix | |
| int | arMatrixFree (ARMat *m) |
| deletes a matrix. | |
| int | arMatrixInv (ARMat *dest, ARMat *source) |
| inverse a matrix. | |
| int | arMatrixMul (ARMat *dest, ARMat *a, ARMat *b) |
| Multiply two matrix. | |
| int | arMatrixPCA (ARMat *input, ARMat *evec, ARVec *ev, ARVec *mean) |
| compute the PCA of a matrix. | |
| int | arMatrixPCA2 (ARMat *input, ARMat *evec, ARVec *ev) |
| compute the PCA of a matrix. | |
| int | arMatrixSelfInv (ARMat *m) |
| inverses a matrix. | |
| int | arMatrixTrans (ARMat *dest, ARMat *source) |
| transposes a matrix. | |
| int | arMatrixUnit (ARMat *unit) |
| Creates a unit matrix. | |
| ARVec * | arVecAlloc (int clm) |
| creates a new vector. | |
| int | arVecDisp (ARVec *v) |
| display a vector. | |
| int | arVecFree (ARVec *v) |
| delete a vector. | |
| double | arVecHousehold (ARVec *x) |
| XXXBK. | |
| double | arVecInnerproduct (ARVec *x, ARVec *y) |
| Computes the inner product of 2 vectors. | |
| int | arVecTridiagonalize (ARMat *a, ARVec *d, ARVec *e) |
| XXXBK. | |
macro function that give direct access to an element (0 origin)
Definition at line 100 of file include/AR/matrix.h.
macro function that give direct access to an element (1 origin)
Definition at line 108 of file include/AR/matrix.h.
| ARMat * arMatrixAlloc | ( | int | row, |
| int | clm | ||
| ) |
creates a new matrix.
Allocate and initialize a new matrix structure. XXXBK initializing ?? to 0 m ??
| row | number of line |
| clm | number of column |
Definition at line 22 of file lib/SRC/AR/mAlloc.c.
| ARMat * arMatrixAllocDup | ( | ARMat * | source | ) |
dumps a new matrix
Allocates and recopy the original source matrix.
| source | the source matrix to copy |
Definition at line 22 of file lib/SRC/AR/mAllocDup.c.
| int arMatrixAllocInv | ( | ARMat * | source | ) |
inverses a matrix.
Inverses a matrix and copy the result in in a new allocated structure.
| source | the matrix to inverse |
Definition at line 21 of file lib/SRC/AR/mAllocInv.c.
| ARMat * arMatrixAllocMul | ( | ARMat * | a, |
| ARMat * | b | ||
| ) |
Multiply two matrix with memory allocation.
multiply two matrix and copy the result in a new allocate matrix (the source matrix is unmodified). the product is this one : dest = a * b
| a | first matrix |
| b | second matrix |
Definition at line 21 of file lib/SRC/AR/mAllocMul.c.
| ARMat * arMatrixAllocTrans | ( | ARMat * | source | ) |
transposes a matrix with allocation.
transposes a matrix and copy the result in a new allocate matrix (the source matrix is unmodified).
| source | the matrix to transpose |
Definition at line 21 of file lib/SRC/AR/mAllocTrans.c.
| int arMatrixAllocUnit | ( | int | dim | ) |
Creates a unit matrix.
Allocates and initializes a matrix to a an identity matrix.
| dim | dimensions of the unit matrix (square) |
Definition at line 21 of file lib/SRC/AR/mAllocUnit.c.
| int arMatrixDet | ( | ARMat * | m | ) |
compute determinant of a matrix.
Compute the determinant of a matrix.
| m | matrix source |
Definition at line 20 of file lib/SRC/AR/mDet.c.
| int arMatrixDisp | ( | ARMat * | m | ) |
display content of a matrix.
Display in current console, the content of the matrix. The display is done line by line.
| m |
Definition at line 16 of file lib/SRC/AR/mDisp.c.
| int arMatrixDup | ( | ARMat * | dest, |
| ARMat * | source | ||
| ) |
copy a matrix
copy one matrix to another. The two ARMat must be allocated.
| dest | the destination matrix of the copy |
| source | the original matrix source |
Definition at line 16 of file lib/SRC/AR/mDup.c.
| int arMatrixFree | ( | ARMat * | m | ) |
deletes a matrix.
Delete a matrix structure (deallocate used memory).
| m | matrix to delete |
Definition at line 21 of file lib/SRC/AR/mFree.c.
| int arMatrixInv | ( | ARMat * | dest, |
| ARMat * | source | ||
| ) |
inverse a matrix.
inverse a matrix and copy the result in a new one (the source matrix is unmodified). the destination matrix must be allocated. the source matrix need to be a square matrix.
| dest | result matrix of the inverse operation |
| source | source matrix |
Definition at line 16 of file lib/SRC/AR/mInv.c.
| int arMatrixMul | ( | ARMat * | dest, |
| ARMat * | a, | ||
| ARMat * | b | ||
| ) |
Multiply two matrix.
Multiply two matrix and copy the result in another the product is this one : dest = a * b. The destination matrix must be allocated. Matrix a and b need to have the same size (the source matrix is unmodified).
| dest | final matrix product |
| a | first matrix |
| b | second matrix |
Definition at line 16 of file lib/SRC/AR/mMul.c.
| int arMatrixPCA | ( | ARMat * | input, |
| ARMat * | evec, | ||
| ARVec * | ev, | ||
| ARVec * | mean | ||
| ) |
compute the PCA of a matrix.
Compute the Principal Component Analysis (PCA) of a matrix.
| input | source matrix |
| evec | eigen vector computed |
| ev | eigen value computed |
| mean | mean computed |
Definition at line 49 of file lib/SRC/AR/mPCA.c.
| int arMatrixPCA2 | ( | ARMat * | input, |
| ARMat * | evec, | ||
| ARVec * | ev | ||
| ) |
compute the PCA of a matrix.
Compute the Principal Component Analysis (PCA) of a matrix.
| input | source matrix |
| evec | result matrix |
| ev | egein value computed |
Definition at line 89 of file lib/SRC/AR/mPCA.c.
| int arMatrixSelfInv | ( | ARMat * | m | ) |
inverses a matrix.
Inverses a matrix and copy the result in the same structure.
| m | the matrix to inverse |
Definition at line 18 of file lib/SRC/AR/mSelfInv.c.
| int arMatrixTrans | ( | ARMat * | dest, |
| ARMat * | source | ||
| ) |
transposes a matrix.
Transposes a matrix. The destination matrix must be allocated (the source matrix is unmodified).
| dest | the destination matrix of the copy |
| source | the source matrix |
Definition at line 16 of file lib/SRC/AR/mTrans.c.
| int arMatrixUnit | ( | ARMat * | unit | ) |
Creates a unit matrix.
Transforms the source parameter matrix to a unit matrix (all values are modified). the unit matrix needs to be allocated.
| unit | the matrix to transform |
Definition at line 16 of file lib/SRC/AR/mUnit.c.
| ARVec * arVecAlloc | ( | int | clm | ) |
creates a new vector.
Allocates and initializes new vector structure.
| clm | dimension of vector |
Definition at line 22 of file lib/SRC/AR/vAlloc.c.
display a vector.
Display element of a vector.
| v | the vector to display |
Definition at line 17 of file lib/SRC/AR/vDisp.c.
delete a vector.
Delete a vector structure (deallocate used memory).
| v | the vector to delete |
Definition at line 22 of file lib/SRC/AR/vFree.c.
| double arVecHousehold | ( | ARVec * | x | ) |
XXXBK.
XXXBK: for QR decomposition ?? (can't success to find french translation of this term)
| x | XXXBK |
Definition at line 17 of file lib/SRC/AR/vHouse.c.
| double arVecInnerproduct | ( | ARVec * | x, |
| ARVec * | y | ||
| ) |
Computes the inner product of 2 vectors.
computes the inner product of the two argument vectors. the operation done is a=x.y (and a is return)
| x | first vector source |
| y | second vector source |
Definition at line 18 of file lib/SRC/AR/vInnerP.c.
| int arVecTridiagonalize | ( | ARMat * | a, |
| ARVec * | d, | ||
| ARVec * | e | ||
| ) |
XXXBK.
XXXBK
| a | XXXBK |
| d | XXXBK |
| e | XXXBK |
Definition at line 17 of file lib/SRC/AR/vTridiag.c.