PLaSK library
Loading...
Searching...
No Matches
JAMA::Cholesky< Real > Class Template Reference

#include <solvers/gain/wasiak/wzmocnienie/jama/jama_cholesky.h>

Public Member Functions

 Cholesky ()
 
 Cholesky (const Array2D< Real > &A)
 Constructs a lower triangular matrix L, such that L*L'= A.
 
Array2D< Real > getL () const
 
Array1D< Real > solve (const Array1D< Real > &B)
 Solve a linear system A*x = b, using the previously computed cholesky factorization of A: L*L'.
 
Array2D< Real > solve (const Array2D< Real > &B)
 Solve a linear system A*X = B, using the previously computed cholesky factorization of A: L*L'.
 
int is_spd () const
 

Detailed Description

template<class Real>
class JAMA::Cholesky< Real >

For a symmetric, positive definite matrix A, this function computes the Cholesky factorization, i.e. it computes a lower triangular matrix L such that A = L*L'. If the matrix is not symmetric or positive definite, the function computes only a partial decomposition. This can be tested with the is_spd() flag.

Typical usage looks like:

 Array2D<double> A(n,n);
 Array2D<double> L;

  ... 

 Cholesky<double> chol(A);

 if (chol.is_spd())
    L = chol.getL();

 else
    cout << "factorization was not complete.\n";

 

(Adapted from JAMA, a Java Matrix Library, developed by jointly by the Mathworks and NIST; see http://math.nist.gov/javanumerics/jama).

Definition at line 49 of file jama_cholesky.h.

Constructor & Destructor Documentation

◆ Cholesky() [1/2]

template<class Real >
JAMA::Cholesky< Real >::Cholesky ( )

Definition at line 66 of file jama_cholesky.h.

◆ Cholesky() [2/2]

template<class Real >
JAMA::Cholesky< Real >::Cholesky ( const Array2D< Real > &  A)

Constructs a lower triangular matrix L, such that L*L'= A.

If A is not symmetric positive-definite (SPD), only a partial factorization is performed. If is_spd() evalutate true (1) then the factorizaiton was successful.

Definition at line 94 of file jama_cholesky.h.

Member Function Documentation

◆ getL()

template<class Real >
Array2D< Real > JAMA::Cholesky< Real >::getL ( ) const
Returns
the lower triangular factor, L, such that L*L'=A.

Definition at line 82 of file jama_cholesky.h.

◆ is_spd()

template<class Real >
int JAMA::Cholesky< Real >::is_spd ( ) const
Returns
1, if original matrix to be factored was symmetric positive-definite (SPD).

Definition at line 73 of file jama_cholesky.h.

◆ solve() [1/2]

template<class Real >
Array1D< Real > JAMA::Cholesky< Real >::solve ( const Array1D< Real > &  b)

Solve a linear system A*x = b, using the previously computed cholesky factorization of A: L*L'.

Parameters
BA Matrix with as many rows as A and any number of columns.
Returns
x so that L*L'*x = b. If b is nonconformat, or if A was not symmetric posidtive definite, a null (0x0) array is returned.

Definition at line 148 of file jama_cholesky.h.

◆ solve() [2/2]

template<class Real >
Array2D< Real > JAMA::Cholesky< Real >::solve ( const Array2D< Real > &  B)

Solve a linear system A*X = B, using the previously computed cholesky factorization of A: L*L'.

Parameters
BA Matrix with as many rows as A and any number of columns.
Returns
X so that L*L'*X = B. If B is nonconformat, or if A was not symmetric posidtive definite, a null (0x0) array is returned.

Definition at line 190 of file jama_cholesky.h.


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