Next: Solvers and Optimisation Up: Maths Utilities Previous: Statistical Distributions   Contents

# Matrix Inversion and Decomposition

The majority of the following are based on the algorithms described in ``Numerical Recipies in C" and are generally used as the basis for solutions to closed form least square systems. These need to be used very carefully in vision algorithms due to statistical difficulties arising from outliers.

```extern void    ludcmp(double **a, int n, int *indx, double *d);

extern void    lubksb(double **a, int n, int *indx, double *b);

extern void    svd_err_func(void (*text) (   ));

extern void    SVDcmp(double **a, int m, int n, double *w, double **v);

extern void    SVDbksb(double **u, double *w, double **v, int m, int n,
double *b, double *x);

extern void    pentadiag(int n, double *a0, double *b0, double *c0,
double *d0, double *e0, double *s0);

extern void    pentaprod(int n, double *a, double *b, double *c,
double *d, double *e, double *x, double *y);

extern void    triadiag(int n, double *b0, double *c0, double *d0,
double *s0);

extern Matrix *matrix_cholesky_decomp(Matrix * A);

extern Vector *matrix_cholesky_back_sub(Matrix * A, Vector * b);

extern Vector *matrix_cholesky_sol(Matrix * A, Vector * b);

extern Vector *matrix_cholesky_weighted_least_square(Matrix * A,
Matrix * W, Vector * b);

extern Vector *matrix_cholesky_least_square(Matrix * A, Vector * b);

extern Vector *matrix_solve(Matrix * mat, Vector * y);

extern int     matrix_eigen_sym(Matrix * A, Vector * Eval, Matrix * Evec);

extern int     matrix_eigen(Matrix * A, Vector * Eval, Vector * Evec);
```

root 2018-12-15