ARX  1.0
The next-generation open source augmented reality toolkit.
Loading...
Searching...
No Matches
Classes | Macros | Functions
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)   ((mat)->m[(r)*((mat)->clm)+(c)])
 
#define ARELEM1(mat, row, clm)   ARELEM0(mat,row-1,clm-1)
 

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 
)    ((mat)->m[(r)*((mat)->clm)+(c)])

◆ ARELEM1

#define ARELEM1 (   mat,
  row,
  clm 
)    ARELEM0(mat,row-1,clm-1)

◆ ARMATRIX_EXTERN

#define ARMATRIX_EXTERN

Function Documentation

◆ arMatrixAlloc()

ARMATRIX_EXTERN ARMat * arMatrixAlloc ( int  row,
int  clm 
)

◆ arMatrixAllocDup()

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

◆ arMatrixAllocf()

ARMATRIX_EXTERN ARMatf * arMatrixAllocf ( int  row,
int  clm 
)

◆ 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)

◆ arMatrixDisp()

ARMATRIX_EXTERN int arMatrixDisp ( ARMat *  m)

◆ arMatrixDup()

ARMATRIX_EXTERN int arMatrixDup ( ARMat *  dest,
ARMat *  source 
)

◆ arMatrixFree()

ARMATRIX_EXTERN int arMatrixFree ( ARMat *  m)

◆ arMatrixFreef()

int arMatrixFreef ( ARMatf *  m)

◆ 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 
)

◆ arMatrixMulf()

ARMATRIX_EXTERN int arMatrixMulf ( ARMatf *  dest,
ARMatf *  a,
ARMatf *  b 
)

◆ 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)

◆ arMatrixSelfInvf()

ARMATRIX_EXTERN int arMatrixSelfInvf ( ARMatf *  m)

◆ arMatrixTrans()

ARMATRIX_EXTERN int arMatrixTrans ( ARMat *  dest,
ARMat *  source 
)

◆ arMatrixTransf()

ARMATRIX_EXTERN int arMatrixTransf ( ARMatf *  dest,
ARMatf *  source 
)

◆ arMatrixUnit()

ARMATRIX_EXTERN int arMatrixUnit ( ARMat *  unit)

◆ arVecAlloc()

ARVec * arVecAlloc ( int  clm)

◆ arVecDisp()

int arVecDisp ( ARVec *  v)

◆ arVecFree()

int arVecFree ( ARVec *  v)

◆ arVecHousehold()

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

◆ arVecInnerproduct()

ARdouble arVecInnerproduct ( ARVec *  x,
ARVec *  y 
)

◆ arVecTridiagonalize()

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