SourcePro® 2024.1 |
SourcePro® API Reference Guide |
Encapsulates factorizations of positive definite symmetric matrices. See also RWPDFact and RWPDBandFact. More...
#include <rw/lapack/pdtdfct.h>
Public Member Functions | |
RWPDTriDiagFact () | |
RWPDTriDiagFact (const RWTriDiagMat< TypeT > &A, bool ec=true) | |
int | cols () const |
rw_numeric_traits< TypeT >::norm_type | condition () const |
TypeT | determinant () const |
void | factor (const RWTriDiagMat< TypeT > &A, bool ec=true) |
bool | fail () const |
bool | good () const |
bool | isPD () const |
bool | isSingular () const |
int | rows () const |
RWGenMat< TypeT > | solve (const RWGenMat< TypeT > &b) const |
RWMathVec< TypeT > | solve (const RWMathVec< TypeT > &b) const |
Related Symbols | |
(Note that these are not member symbols.) | |
template<class TypeT > | |
rw_numeric_traits< TypeT >::norm_type | condition (const RWPDTriDiagFact< TypeT > &A) |
template<class TypeT > | |
TypeT | determinant (const RWPDTriDiagFact< TypeT > &A) |
template<class TypeT > | |
RWGenMat< TypeT > | solve (const RWPDTriDiagFact< TypeT > &A, const RWGenMat< TypeT > &b) |
template<class TypeT > | |
RWMathVec< TypeT > | solve (const RWPDTriDiagFact< TypeT > &A, const RWMathVec< TypeT > &b) |
The classes RWPDFact, RWPDBandFact, and RWPDTriDiagFact encapsulate factorizations of positive definite symmetric matrices, which are Hermitians in the complex case. These classes produce a valid factorization only if the matrix being factored is positive definite. If the matrix is not positive definite, attempting to use the factorization to solve a system of equations results in an exception being thrown. To test if the factorization is valid, use the good() or fail() member functions.
RWPDTriDiagFact< TypeT >::RWPDTriDiagFact | ( | ) |
Default constructor. Builds a factorization of a 0 x 0 matrix. You use the member function factor() to fill in the factorization.
RWPDTriDiagFact< TypeT >::RWPDTriDiagFact | ( | const RWTriDiagMat< TypeT > & | A, |
bool | ec = true ) |
Constructs a factorization of the matrix A. This factorization can be used to solve systems of equations, and to calculate inverses and determinants. If the parameter ec is true
, you can use the function condition() to obtain an estimate of the condition number of the matrix. Setting ec to false
can save some computation if the condition number is not needed.
|
inline |
Returns the number of columns in the matrix represented by this factorization.
rw_numeric_traits< TypeT >::norm_type RWPDTriDiagFact< TypeT >::condition | ( | ) | const |
Calculates the reciprocal condition number of the matrix represented by this factorization. If this number is near 0, the matrix is ill-conditioned and solutions to systems of equations computed using this factorization may not be accurate. If the number is near 1, the matrix is well-conditioned. For the condition number to be computed, the norm of the matrix must be computed at the time the factorization is constructed. If you set the optional boolean parameter in RWPDTriDiagFact() or factor() to false
, calling condition() generates an exception.
TypeT RWPDTriDiagFact< TypeT >::determinant | ( | ) | const |
Calculates the determinant of the matrix represented by this factorization.
void RWPDTriDiagFact< TypeT >::factor | ( | const RWTriDiagMat< TypeT > & | A, |
bool | ec = true ) |
Factors a matrix. Calling factor() replaces the current factorization with the factorization of the matrix A. This is commonly used to initialize a factorization constructed with the default (no arguments) constructor.
bool RWPDTriDiagFact< TypeT >::fail | ( | ) | const |
Checks whether the factorization is successfully constructed. If fail() returns true
, attempting to use the factorization to solve a system of equations results in an exception being thrown.
|
inline |
Checks whether the factorization is successfully constructed. If good() returns false
, attempting to use the factorization to solve a system of equations results in an exception being thrown.
bool RWPDTriDiagFact< TypeT >::isPD | ( | ) | const |
Tests if the matrix is positive definite. If the matrix is not positive definite, the factorization is not complete and you cannot use the factorization to solve systems of equations.
bool RWPDTriDiagFact< TypeT >::isSingular | ( | ) | const |
Tests if the matrix is singular to within machine precision. If the factorization is a positive definite type and the matrix that was factored is not actually positive definite, then isSingular() may return true
regardless of whether or not the matrix is actually singular.
|
inline |
Returns the number of rows in the matrix represented by this factorization.
RWGenMat< TypeT > RWPDTriDiagFact< TypeT >::solve | ( | const RWGenMat< TypeT > & | b | ) | const |
RWMathVec< TypeT > RWPDTriDiagFact< TypeT >::solve | ( | const RWMathVec< TypeT > & | b | ) | const |
|
related |
Calculates the reciprocal condition number of the matrix represented by the factorization A. If this number is near 0, the matrix is ill-conditioned and solutions to systems of equations computed using this factorization may not be accurate. If the number is near 1, the matrix is well-conditioned. For the condition number to be computed, the norm of the matrix must be computed at the time the factorization is constructed. If you set the optional boolean parameter in the constructor RWPDTriDiagFact() or the factor() member function to false
, calling condition() generates an exception.
|
related |
Calculates the determinant of the matrix represented by the factorization A.
|
related |
|
related |
Copyright © 2024 Rogue Wave Software, Inc., a Perforce company. All Rights Reserved. |