JAMA::LU< Real > Class Template Reference

#include <jama_lu.h>

Collaboration diagram for JAMA::LU< Real >:
[legend]

List of all members.

Public Member Functions

 LU (const Array2D< Real > &A)
int isNonsingular ()
Array2D< Real > getL ()
Array2D< Real > getU ()
Array1D< int > getPivot ()
Real det ()
Array2D< Real > solve (const Array2D< Real > &B)
Array1D< Real > solve (const Array1D< Real > &b)

Private Member Functions

Array2D< Real > permute_copy (const Array2D< Real > &A, const Array1D< int > &piv, int j0, int j1)
Array1D< Real > permute_copy (const Array1D< Real > &A, const Array1D< int > &piv)

Private Attributes

Array2D< Real > LU_
int m
int n
int pivsign
Array1D< int > piv


Detailed Description

template<class Real>
class JAMA::LU< Real >

LU Decomposition.

For an m-by-n matrix A with m >= n, the LU decomposition is an m-by-n unit lower triangular matrix L, an n-by-n upper triangular matrix U, and a permutation vector piv of length m so that A(piv,:) = L*U. If m < n, then L is m-by-m and U is m-by-n.

The LU decompostion with pivoting always exists, even if the matrix is singular, so the constructor will never fail. The primary use of the LU decomposition is in the solution of square systems of simultaneous linear equations. This will fail if isNonsingular() returns false.

Definition at line 27 of file jama_lu.h.


Constructor & Destructor Documentation

template<class Real >
JAMA::LU< Real >::LU ( const Array2D< Real > &  A  )  [inline]

LU Decomposition

Parameters:
A Rectangular matrix
Returns:
LU Decomposition object to access L, U and piv.

Definition at line 77 of file jama_lu.h.


Member Function Documentation

template<class Real >
Real JAMA::LU< Real >::det (  )  [inline]

Compute determinant using LU factors.

Returns:
determinant of A, or 0 if A is not square.

Definition at line 214 of file jama_lu.h.

template<class Real >
Array2D<Real> JAMA::LU< Real >::getL (  )  [inline]

Return lower triangular factor

Returns:
L

Definition at line 167 of file jama_lu.h.

template<class Real >
Array1D<int> JAMA::LU< Real >::getPivot (  )  [inline]

Return pivot permutation vector

Returns:
piv

Definition at line 205 of file jama_lu.h.

template<class Real >
Array2D<Real> JAMA::LU< Real >::getU (  )  [inline]

Return upper triangular factor

Returns:
U portion of LU factorization.

Definition at line 187 of file jama_lu.h.

template<class Real >
int JAMA::LU< Real >::isNonsingular (  )  [inline]

Is the matrix nonsingular?

Returns:
1 (true) if upper triangular factor U (and hence A) is nonsingular, 0 otherwise.

Definition at line 155 of file jama_lu.h.

template<class Real >
Array1D<Real> JAMA::LU< Real >::permute_copy ( const Array1D< Real > &  A,
const Array1D< int > &  piv 
) [inline, private]

Definition at line 53 of file jama_lu.h.

template<class Real >
Array2D<Real> JAMA::LU< Real >::permute_copy ( const Array2D< Real > &  A,
const Array1D< int > &  piv,
int  j0,
int  j1 
) [inline, private]

Definition at line 38 of file jama_lu.h.

template<class Real >
Array1D<Real> JAMA::LU< Real >::solve ( const Array1D< Real > &  b  )  [inline]

Solve A*x = b, where x and b are vectors of length equal to the number of rows in A.

Parameters:
b a vector (Array1D> of length equal to the first dimension of A.
Returns:
x a vector (Array1D> so that L*U*x = b(piv), if B is nonconformant, returns 0x0 (null) array.

Definition at line 281 of file jama_lu.h.

template<class Real >
Array2D<Real> JAMA::LU< Real >::solve ( const Array2D< Real > &  B  )  [inline]

Solve A*X = B

Parameters:
B A Matrix with as many rows as A and any number of columns.
Returns:
X so that L*U*X = B(piv,:), if B is nonconformant, returns 0x0 (null) array.

Definition at line 231 of file jama_lu.h.


Member Data Documentation

template<class Real >
Array2D<Real> JAMA::LU< Real >::LU_ [private]

Definition at line 33 of file jama_lu.h.

template<class Real >
int JAMA::LU< Real >::m [private]

Definition at line 34 of file jama_lu.h.

template<class Real >
int JAMA::LU< Real >::n [private]

Definition at line 34 of file jama_lu.h.

template<class Real >
Array1D<int> JAMA::LU< Real >::piv [private]

Definition at line 35 of file jama_lu.h.

template<class Real >
int JAMA::LU< Real >::pivsign [private]

Definition at line 34 of file jama_lu.h.


The documentation for this class was generated from the following file:

Generated on Fri Feb 6 13:30:19 2009 for CorAL by  doxygen 1.5.8