Woolz Image Processing  Version 1.8.3
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. More...
 
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. More...
 
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. More...
 
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. More...
 
AlgError AlgMatrixLUInvertRaw3 (double **aM)
 Calculates the inverse of a 3x3 libAlc double array matrix. More...
 
AlgError AlgMatrixLUInvertRaw4 (double **aM)
 Calculates the inverse of a 4x4 libAlc double array matrix. More...
 
AlgError AlgMatrixLUInvert (AlgMatrix aM)
 Calculates the inverse of a square matrix. More...
 
AlgError AlgMatrixLUInvertRaw (double **aM, int aSz)
 Calculates the inverse of a square matrix. More...
 
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. More...
 
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. More...
 
AlgError AlgMatrixLUDeterm (AlgMatrix aM, double *det)
 Calculates the determinant of a square matrix. The matrix is overwitten with its LU decomposition on return. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 

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
edf64c6eca3cd487aac39f691738c08e3c47f255
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.