Class xlifepp::UMFPACK#

template<typename OrdinalType, typename ScalarType>
class UMFPACK#

Inheritence diagram for xlifepp::UMFPACK:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "2" [label="xlifepp::UMFPACK< int_t, ScalarType >" tooltip="xlifepp::UMFPACK< int_t, ScalarType >"] "1" [label="xlifepp::UMFPACK< OrdinalType, ScalarType >" tooltip="xlifepp::UMFPACK< OrdinalType, ScalarType >" fillcolor="#BFBFBF"] "2" -> "1" [dir=forward tooltip="template-instance"] }

Collaboration diagram for xlifepp::UMFPACK:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "1" [label="xlifepp::UMFPACK< OrdinalType, ScalarType >" tooltip="xlifepp::UMFPACK< OrdinalType, ScalarType >" fillcolor="#BFBFBF"] }

This class plays a role of wrapper of Umfpack library.

And only necessary functions are provided here. However, we we can easily extend this class with new methods wrapping functions of Umfpack library. Because Umfpack only works with int/double, (e.x umfpack_di_symbolic, etc) or long/double, (e.x umfpack_dl_symbolic) Class template specialization approach seems to be the best!

Primary routines

OrdinalType symbolic(OrdinalType nRow, OrdinalType nCol, const OrdinalType Ap[], const OrdinalType Ai[], const ScalarType Ax[], void **Symbolic, const MagnitudeType Control[UMFPACK_CONTROL], MagnitudeType Info[UMFPACK_INFO])#

Copy Constructor.

OrdinalType numeric(const OrdinalType Ap[], const OrdinalType Ai[], const ScalarType Ax[], void *Symbolic, void **Numeric, const MagnitudeType Control[UMFPACK_CONTROL], MagnitudeType Info[UMFPACK_INFO])#

Copy Constructor.

void freeSymbolic(void **Symbolic)#

Copy Constructor.

void freeNumeric(void **Numeric)#

Copy Constructor.

OrdinalType solve(OrdinalType sys, const OrdinalType Ap[], const OrdinalType Ai[], const ScalarType Ax[], ScalarType X[], const ScalarType B[], void *Numeric, const MagnitudeType Control[UMFPACK_CONTROL], MagnitudeType Info[UMFPACK_INFO])#

Copy Constructor.

OrdinalType getLunz(OrdinalType *lnz, OrdinalType *unz, OrdinalType *nRow, OrdinalType *nCol, OrdinalType *nzUdiag, void *Numeric)#

Copy Constructor.

OrdinalType getNumeric(OrdinalType Lp[], OrdinalType Lj[], ScalarType Lx[], OrdinalType Up[], OrdinalType Ui[], ScalarType Ux[], OrdinalType P[], OrdinalType Q[], ScalarType Dx[], OrdinalType *doRecip, ScalarType Rs[], void *Numeric)#

Copy Constructor.

OrdinalType getDeterminant(ScalarType *Mx, ScalarType *Ex, void *NumericHandle, ScalarType UserInfo[UMFPACK_INFO])#

Copy Constructor.

Public Types

typedef NumTraits<ScalarType>::magnitudeType MagnitudeType#

useful typedefs for UMFPACK class

Public Functions

inline UMFPACK(void)#

Default Constructor.

inline ~UMFPACK(void)#

Destructor.