6 #ifndef MYRAMATH_MULTIFRONTAL_SPARSEZCHOLESKYSOLVER_H     7 #define MYRAMATH_MULTIFRONTAL_SPARSEZCHOLESKYSOLVER_H    14 #include <myramath/MYRAMATH_EXPORT.h>    27 #include <myramath/multifrontal/detail/llt/LContainer.h>    36 template <
class Precision> 
class ZCholeskyKernel;
    40 template<
class Number> 
class SparseMatrix;
    41 template<
class Number> 
class SparseMatrixRange;
    42 template<
class Number> 
class CSparseMatrixRange;
    46 template <
class Number> 
class Matrix;
    47 template <
class Number> 
class MatrixRange;
    48 template <
class Number> 
class CMatrixRange;
    49 template <
class Number> 
class Vector;
    50 template <
class Number> 
class VectorRange;
    51 template <
class Number> 
class CVectorRange;
    52 template <
class Number> 
class LowerMatrix;
    53 template <
class Number> 
class LowerMatrixRange;
    54 template <
class Number> 
class CLowerMatrixRange;
    66     typedef std::complex<Precision> Number;
    73     typedef ::myra::multifrontal::Options 
Options;
    86 #ifdef MYRAMATH_ENABLE_CPP11   107     void factor(
const SRange& A, Options options = defaults());
   108     JobGraph factor_jobgraph(
const SRange& A, Options options = defaults());
   112     void factor(
const SRange& A, 
const Permutation& P, Options options = defaults());
   113     JobGraph factor_jobgraph(
const SRange& A, 
const Permutation& P, Options options = defaults());
   117     void factor(
const SRange& A, 
const AssemblyTree& tree, Options options = defaults());
   118     JobGraph factor_jobgraph(
const SRange& A, 
const AssemblyTree& tree, Options options = defaults());
   125     void solve(
const DRange& B, 
char side = 
'L', 
char op = 
'N', Options options = defaults().set_nthreads(1)) 
const;
   126     JobGraph solve_jobgraph(
const DRange& B, 
char side = 
'L', 
char op = 
'N', Options options = defaults().set_nthreads(1)) 
const;    
   131     void solveL(
const DRange& B, 
char side = 
'L', 
char op = 
'N', Options options = defaults().set_nthreads(1)) 
const;
   132     JobGraph solveL_jobgraph(
const DRange& B, 
char side = 
'L', 
char op = 
'N', Options options = defaults().set_nthreads(1)) 
const;    
   138     void schur_inplace(
const SRange& B, 
const LRange& S, Options options = defaults()) 
const;
   139     JobGraph schur_jobgraph(
const SRange& B, 
const LRange& S, Options options = defaults()) 
const;
   142     LowerMatrix<Number> schur(
const iRange& Bi, 
const DRange& Bv, Options options = defaults()) 
const;    
   143     void schur_inplace(
const iRange& Bi, 
const DRange& Bv, 
const LRange& S, Options options = defaults()) 
const;
   144     JobGraph schur_jobgraph(
const iRange& Bi, 
const DRange& Bv, 
const LRange& S, Options options = defaults()) 
const;
   147     Matrix<Number> schur(
const SRange& B, 
const SRange& C, Options options = defaults()) 
const;
   148     void schur_inplace(
const SRange& B, 
const SRange& C, 
const DRange& S, Options options = defaults()) 
const;
   149     JobGraph schur_jobgraph(
const SRange& B, 
const SRange& C, 
const DRange& S, Options options = defaults()) 
const;
   152     Matrix<Number> schur(
const iRange& Bi, 
const DRange& Bv, 
const iRange& Ci, 
const DRange& Cv, Options options = defaults()) 
const;    
   153     void schur_inplace(
const iRange& Bi, 
const DRange& Bv, 
const iRange& Ci, 
const DRange& Cv, 
const DRange& S, Options options = defaults()) 
const;
   154     JobGraph schur_jobgraph(
const iRange& Bi, 
const DRange& Bv, 
const iRange& Ci, 
const DRange& Cv, 
const DRange& S, Options options = defaults()) 
const;
   159     Number inverse(
int ij) 
const;
   162     Number inverse(
int i, 
int j) 
const;
   165     Matrix<Number> inverse(
const iRange& i, 
const iRange& j, Options options = defaults()) 
const;
   166     void inverse_inplace(
const iRange& i, 
const iRange& j, 
const DRange& Z, Options options = defaults()) 
const;
   167     JobGraph inverse_jobgraph(
const iRange& i, 
const iRange& j, 
const DRange& Z, Options options = defaults()) 
const;
   171     void inverse_inplace(
const iRange& ij, 
const LRange& Z, Options options = defaults()) 
const;
   172     JobGraph inverse_jobgraph(
const iRange& ij, 
const LRange& Z, Options options = defaults()) 
const;
   180     Matrix<Number> partialsolve(
const iRange& i, 
const iRange& j, 
const CMatrixRange<Number>& B, 
char side = 
'L', 
char op = 
'N', Options options = defaults().set_nthreads(1)) 
const;
   181     void partialsolve_inplace(
const iRange& i, 
const iRange& j, 
const CMatrixRange<Number>& B, 
const MatrixRange<Number>& X, 
char side = 
'L', 
char op = 
'N', Options options = defaults().set_nthreads(1)) 
const;
   193     static Options defaults();
   199     typedef ::myra::multifrontal::detail::llt::LContainer<Kernel> LContainer;
   206   { 
public: 
typedef std::complex<Precision> type; };
 Reflects Number trait for a Container, containers of Numbers (Matrix's, Vector's, etc) should special...
Definition: Number.h:55
Options pack for routines in /multifrontal. 
Definition: Options.h:24
Represents a Permutation matrix, used to reorder rows/columns/etc of various numeric containers...
Definition: Permutation.h:34
Symbolic analysis data structure for all multifrontal solvers. 
Definition: AssemblyTree.h:38
Represents a mutable LowerMatrixRange. 
Definition: conjugate.h:28
Tabulates an IxJ matrix. Allows random access, has column major layout to be compatible with BLAS/LAP...
Definition: bdsqr.h:20
Type erasure class that wraps JobGraphBase, gives it value semantics. 
Definition: JobGraph.h:64
Represents a const MatrixRange. 
Definition: bothcat.h:22
Abstraction layer, serializable objects write themselves to these. 
Definition: Streams.h:39
Abstraction for representing a directed acyclic graph of Job's. 
Various utility functions/classes related to scalar Number types. 
Represents a mutable MatrixRange. 
Definition: conjugate.h:26
Represents a const SparseMatrixRange. 
Definition: bothcat.h:24
Options pack for routines in /multifrontal. 
Tabulates a vector of length N, allows random access. 
Definition: conjugate.h:21
Represents a const VectorRange. 
Definition: axpy.h:20
Sparse direct solver suitable for hermitian positive definite systems. 
Definition: SparseZCholeskySolver.h:61
Factors A into L*L', presents solve methods. 
Definition: Kernel.h:35
Pivot factorization for SparseZCholeskySolver. 
Stores a lower triangular matrix in rectangular packed format. 
Definition: conjugate.h:22
Represents a const intRange. 
Definition: intRange.h:142