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