Woolz Image Processing Version 1.4.0
AlgMatrixLU.c File Reference

Provides functions for solving matrix equations of the form: A.x = b for x, inverting a matrix, calculating the determinant of a matrix and performing LU decomposition. More...

Functions

AlgError AlgMatrixLUSolveRaw3 (double **aM, double *bV, int bSz)
 Solves the matrix equation A.x = b for x, where A is a 3x3 libAlc double array matrix. On return the matrix A is overwritten with its LU decomposition and the column vector b is overwritten with the solution column matrix x.
AlgError AlgMatrixLUSolveRaw4 (double **aM, double *bV, int bSz)
 Solves the matrix equation A.x = b for x, where A is a 4x4 libAlc double array matrix. On return the matrix A is overwritten with its LU decomposition and the column vector b is overwritten with the solution column matrix x.
AlgError AlgMatrixLUSolve (AlgMatrix aM, double *bV, int bSz)
 Solves the matrix equation A.x = b for x, where A is a square matrix. On return the matrix A is overwritten with its LU decomposition and the column vector b is overwritten with the solution column matrix x.
AlgError AlgMatrixLUSolveRaw (double **aM, int aSz, double *bV, int bSz)
 Solves the matrix equation A.x = b for x, where A is a square libAlc double array matrix. On return the matrix A is overwritten with its LU decomposition and the column vector b is overwritten with the solution column matrix x.
AlgError AlgMatrixLUInvertRaw3 (double **aM)
 Calculates the inverse of a 3x3 libAlc double array matrix.
AlgError AlgMatrixLUInvertRaw4 (double **aM)
 Calculates the inverse of a 4x4 libAlc double array matrix.
AlgError AlgMatrixLUInvert (AlgMatrix aM)
 Calculates the inverse of a square matrix.
AlgError AlgMatrixLUInvertRaw (double **aM, int aSz)
 Calculates the inverse of a square matrix.
AlgError AlgMatrixLUDetermRaw3 (double **aM, double *det)
 Calculates the determinant of a 3x3 double libAlc array matrix. The matrix is overwitten with its LU decomposition on return.
AlgError AlgMatrixLUDetermRaw4 (double **aM, double *det)
 Calculates the determinant of a 4x4 double libAlc array matrix. The matrix is overwitten with its LU decomposition on return.
AlgError AlgMatrixLUDeterm (AlgMatrix aM, double *det)
 Calculates the determinant of a square matrix. The matrix is overwitten with its LU decomposition on return.
AlgError AlgMatrixLUDetermRaw (double **aM, int aSz, double *det)
 Calculates the determinant of a square double libAlc array matrix. The matrix is overwitten with its LU decomposition on return.
AlgError AlgMatrixLUDecomp (AlgMatrix aM, int *iV, double *evenOdd)
 Replaces the given matrix with the LU decomposition of a row-wise permutation of itself. The given index vector is used to record the permutation effected by the partial pivoting.
AlgError AlgMatrixLUDecompRaw (double **aM, int aSz, int *iV, double *evenOdd)
 Replaces the given matrix with the LU decomposition of a row-wise permutation of itself. The given index vector is used to record the permutation effected by the partial pivoting.
AlgError AlgMatrixLUBackSub (AlgMatrix aM, int *iV, double *bV)
 Solves the set of of linear equations A.x = b where A is input as its LU decomposition determined with AlgMatrixLUDecomp() of a row-wise permutation of itself. The given index vector is used to record the permutation effected by the partial pivoting.
AlgError AlgMatrixLUBackSubRaw (double **aM, int aSz, int *iV, double *bV)
 Solves the set of of linear equations A.x = b where A is input as its LU decomposition determined with AlgMatrixLUDecompRaw() of a row-wise permutation of itself. The given index vector is used to record the permutation effected by the partial pivoting.

Detailed Description

Provides functions for solving matrix equations of the form: A.x = b for x, inverting a matrix, calculating the determinant of a matrix and performing LU decomposition.

Author:
Richard Baldock, Bill Hill
Date:
March 1999
Version:
Id:
3f13a3cfd9fb01f5e28b743c6fad0c269938f258
Address: MRC Human Genetics Unit, MRC Institute of Genetics and Molecular Medicine, University of Edinburgh, Western General Hospital, Edinburgh, EH4 2XU, UK.
Copyright (C), [2012], The University Court of the University of Edinburgh, Old College, Edinburgh, UK.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Todo:
Bug:
None known.