Class xlifepp::UmfPackLU#

template<typename MatrixType>
class UmfPackLU#

Collaboration diagram for xlifepp::UmfPackLU:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "8" [label="xlifepp::UMFPACK< int_t, ScalarType >" tooltip="xlifepp::UMFPACK< int_t, ScalarType >"] "4" [label="std::vector< T >" tooltip="std::vector< T >"] "5" [label="std::vector< ScalarType >" tooltip="std::vector< ScalarType >"] "3" [label="std::vector< int >" tooltip="std::vector< int >"] "7" [label="std::vector< int_t >" tooltip="std::vector< int_t >"] "6" [label="std::vector< real_t >" tooltip="std::vector< real_t >"] "9" [label="xlifepp::UMFPACK< OrdinalType, ScalarType >" tooltip="xlifepp::UMFPACK< OrdinalType, ScalarType >"] "2" [label="xlifepp::UmfPackLU< MatrixType >::LUMatrixType" tooltip="xlifepp::UmfPackLU< MatrixType >::LUMatrixType"] "1" [label="xlifepp::UmfPackLU< MatrixType >" tooltip="xlifepp::UmfPackLU< MatrixType >" fillcolor="#BFBFBF"] "8" -> "9" [dir=forward tooltip="template-instance"] "5" -> "4" [dir=forward tooltip="template-instance"] "3" -> "4" [dir=forward tooltip="template-instance"] "7" -> "4" [dir=forward tooltip="template-instance"] "6" -> "4" [dir=forward tooltip="template-instance"] "2" -> "3" [dir=forward tooltip="usage"] "2" -> "5" [dir=forward tooltip="usage"] "1" -> "2" [dir=forward tooltip="usage"] "1" -> "3" [dir=forward tooltip="usage"] "1" -> "6" [dir=forward tooltip="usage"] "1" -> "7" [dir=forward tooltip="usage"] "1" -> "5" [dir=forward tooltip="usage"] "1" -> "8" [dir=forward tooltip="usage"] }

Wrapper class of Umfpack.

Public Types

typedef MatrixType::ScalarType ScalarType#

scalar type of matrix (real_t or Complex)

Public Functions

inline UmfPackLU()#

void constructor

inline UmfPackLU(const MatrixType &matrix)#

constructor from matrix, perform factorisation

inline ~UmfPackLU()#

destructor (deallocate umfpack structure)

inline void analyzePattern(const MatrixType &matrix)#

Performs a symbolic decomposition on the sparcity of matrix.

This function is particularly useful when solving several problems having the same structure.

inline number_t cols() const#

accessor to number of matrix columns

inline void compute(const MatrixType &matrix)#

Computes the sparse Cholesky decomposition of a matrix

inline void factorize(const MatrixType &matrix)#

Performs a numeric decomposition of matrix The given matrix must has the same matrix on which the pattern analysis has been performed.

inline ComputationInfo info() const#

Reports whether previous computation was successful.

Returns:

Success if computation was succesful, NumericalIssue if the matrix.appears to be negative.

inline const LUMatrixType &matrixL() const#

access to L factor

inline const LUMatrixType &matrixU() const#

access to U factor

inline const std::vector<int> &permutationP() const#

access to row permutation vector

inline const std::vector<int> &permutationQ() const#

access to col permutation vector

inline number_t rows() const#

accessor to number of matrix rows

inline const std::vector<real_t> &scaleFactorR() const#

access to scale factors vector

struct LUMatrixType#

Collaboration diagram for xlifepp::UmfPackLU::LUMatrixType:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "3" [label="std::vector< T >" tooltip="std::vector< T >"] "4" [label="std::vector< ScalarType >" tooltip="std::vector< ScalarType >"] "2" [label="std::vector< int >" tooltip="std::vector< int >"] "1" [label="xlifepp::UmfPackLU< MatrixType >::LUMatrixType" tooltip="xlifepp::UmfPackLU< MatrixType >::LUMatrixType" fillcolor="#BFBFBF"] "4" -> "3" [dir=forward tooltip="template-instance"] "2" -> "3" [dir=forward tooltip="template-instance"] "1" -> "2" [dir=forward tooltip="usage"] "1" -> "4" [dir=forward tooltip="usage"] }

structure to store matrix factors L and U