ARX  1.2.0
The next-generation open source augmented reality toolkit.
Loading...
Searching...
No Matches
matrix.h File Reference
#include <math.h>
Include dependency graph for matrix.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  ARMat
struct  ARMatf
struct  ARVec

Macros

#define ARMATRIX_EXTERN
#define ARELEM0(mat, r, c)
#define ARELEM1(mat, row, clm)

Functions

ARMATRIX_EXTERN ARMat * arMatrixAlloc (int row, int clm)
ARMATRIX_EXTERN int arMatrixFree (ARMat *m)
ARMATRIX_EXTERN ARMatf * arMatrixAllocf (int row, int clm)
int arMatrixFreef (ARMatf *m)
ARMATRIX_EXTERN int arMatrixDup (ARMat *dest, ARMat *source)
ARMATRIX_EXTERN ARMat * arMatrixAllocDup (ARMat *source)
ARMATRIX_EXTERN int arMatrixUnit (ARMat *unit)
ARMATRIX_EXTERN ARMat * arMatrixAllocUnit (int dim)
ARMATRIX_EXTERN int arMatrixMul (ARMat *dest, ARMat *a, ARMat *b)
ARMATRIX_EXTERN ARMat * arMatrixAllocMul (ARMat *a, ARMat *b)
ARMATRIX_EXTERN int arMatrixMulf (ARMatf *dest, ARMatf *a, ARMatf *b)
ARMATRIX_EXTERN ARMatf * arMatrixAllocMulf (ARMatf *a, ARMatf *b)
ARMATRIX_EXTERN int arMatrixTrans (ARMat *dest, ARMat *source)
ARMATRIX_EXTERN ARMat * arMatrixAllocTrans (ARMat *source)
ARMATRIX_EXTERN int arMatrixTransf (ARMatf *dest, ARMatf *source)
ARMATRIX_EXTERN ARMatf * arMatrixAllocTransf (ARMatf *source)
ARMATRIX_EXTERN int arMatrixInv (ARMat *dest, ARMat *source)
ARMATRIX_EXTERN int arMatrixSelfInv (ARMat *m)
ARMATRIX_EXTERN ARMat * arMatrixAllocInv (ARMat *source)
ARMATRIX_EXTERN int arMatrixSelfInvf (ARMatf *m)
ARMATRIX_EXTERN ARdouble arMatrixDet (ARMat *m)
ARMATRIX_EXTERN int arMatrixPCA (ARMat *input, ARMat *evec, ARVec *ev, ARVec *mean)
ARMATRIX_EXTERN int arMatrixPCA2 (ARMat *input, ARMat *evec, ARVec *ev)
ARMATRIX_EXTERN int arMatrixDisp (ARMat *m)
ARVec * arVecAlloc (int clm)
int arVecFree (ARVec *v)
int arVecDisp (ARVec *v)
ARdouble arVecHousehold (ARVec *x)
ARdouble arVecInnerproduct (ARVec *x, ARVec *y)
int arVecTridiagonalize (ARMat *a, ARVec *d, ARVec *e)

Macro Definition Documentation

◆ ARELEM0

#define ARELEM0 ( mat,
r,
c )
Value:
((mat)->m[(r)*((mat)->clm)+(c)])

◆ ARELEM1

#define ARELEM1 ( mat,
row,
clm )
Value:
ARELEM0(mat,row-1,clm-1)
#define ARELEM0(mat, r, c)
Definition matrix.h:97

◆ ARMATRIX_EXTERN

#define ARMATRIX_EXTERN

Function Documentation

◆ arMatrixAlloc()

ARMATRIX_EXTERN ARMat * arMatrixAlloc ( int row,
int clm )
Here is the call graph for this function:

◆ arMatrixAllocDup()

ARMATRIX_EXTERN ARMat * arMatrixAllocDup ( ARMat * source)
Here is the call graph for this function:

◆ arMatrixAllocf()

ARMATRIX_EXTERN ARMatf * arMatrixAllocf ( int row,
int clm )
Here is the call graph for this function:

◆ arMatrixAllocInv()

ARMATRIX_EXTERN ARMat * arMatrixAllocInv ( ARMat * source)
Here is the call graph for this function:

◆ arMatrixAllocMul()

ARMATRIX_EXTERN ARMat * arMatrixAllocMul ( ARMat * a,
ARMat * b )
Here is the call graph for this function:

◆ arMatrixAllocMulf()

ARMATRIX_EXTERN ARMatf * arMatrixAllocMulf ( ARMatf * a,
ARMatf * b )
Here is the call graph for this function:

◆ arMatrixAllocTrans()

ARMATRIX_EXTERN ARMat * arMatrixAllocTrans ( ARMat * source)
Here is the call graph for this function:

◆ arMatrixAllocTransf()

ARMATRIX_EXTERN ARMatf * arMatrixAllocTransf ( ARMatf * source)
Here is the call graph for this function:

◆ arMatrixAllocUnit()

ARMATRIX_EXTERN ARMat * arMatrixAllocUnit ( int dim)
Here is the call graph for this function:

◆ arMatrixDet()

ARMATRIX_EXTERN ARdouble arMatrixDet ( ARMat * m)
Here is the call graph for this function:

◆ arMatrixDisp()

ARMATRIX_EXTERN int arMatrixDisp ( ARMat * m)
Here is the call graph for this function:

◆ arMatrixDup()

ARMATRIX_EXTERN int arMatrixDup ( ARMat * dest,
ARMat * source )
Here is the call graph for this function:

◆ arMatrixFree()

ARMATRIX_EXTERN int arMatrixFree ( ARMat * m)
Here is the call graph for this function:

◆ arMatrixFreef()

int arMatrixFreef ( ARMatf * m)
Here is the call graph for this function:

◆ arMatrixInv()

ARMATRIX_EXTERN int arMatrixInv ( ARMat * dest,
ARMat * source )
Here is the call graph for this function:

◆ arMatrixMul()

ARMATRIX_EXTERN int arMatrixMul ( ARMat * dest,
ARMat * a,
ARMat * b )
Here is the call graph for this function:

◆ arMatrixMulf()

ARMATRIX_EXTERN int arMatrixMulf ( ARMatf * dest,
ARMatf * a,
ARMatf * b )
Here is the call graph for this function:

◆ arMatrixPCA()

ARMATRIX_EXTERN int arMatrixPCA ( ARMat * input,
ARMat * evec,
ARVec * ev,
ARVec * mean )
Here is the call graph for this function:

◆ arMatrixPCA2()

ARMATRIX_EXTERN int arMatrixPCA2 ( ARMat * input,
ARMat * evec,
ARVec * ev )
Here is the call graph for this function:

◆ arMatrixSelfInv()

ARMATRIX_EXTERN int arMatrixSelfInv ( ARMat * m)
Here is the call graph for this function:

◆ arMatrixSelfInvf()

ARMATRIX_EXTERN int arMatrixSelfInvf ( ARMatf * m)
Here is the call graph for this function:

◆ arMatrixTrans()

ARMATRIX_EXTERN int arMatrixTrans ( ARMat * dest,
ARMat * source )
Here is the call graph for this function:

◆ arMatrixTransf()

ARMATRIX_EXTERN int arMatrixTransf ( ARMatf * dest,
ARMatf * source )
Here is the call graph for this function:

◆ arMatrixUnit()

ARMATRIX_EXTERN int arMatrixUnit ( ARMat * unit)
Here is the call graph for this function:

◆ arVecAlloc()

ARVec * arVecAlloc ( int clm)
Here is the call graph for this function:

◆ arVecDisp()

int arVecDisp ( ARVec * v)
Here is the call graph for this function:

◆ arVecFree()

int arVecFree ( ARVec * v)
Here is the call graph for this function:

◆ arVecHousehold()

ARdouble arVecHousehold ( ARVec * x)
Here is the call graph for this function:

◆ arVecInnerproduct()

ARdouble arVecInnerproduct ( ARVec * x,
ARVec * y )
Here is the call graph for this function:

◆ arVecTridiagonalize()

int arVecTridiagonalize ( ARMat * a,
ARVec * d,
ARVec * e )
Here is the call graph for this function: