6 #ifndef MYRAMATH_MULTIFRONTAL_ZCHOLESKY_FACTOR_H     7 #define MYRAMATH_MULTIFRONTAL_ZCHOLESKY_FACTOR_H    14 #include <myramath/multifrontal/detail/llt/factor.h>    25 #include <myramath/dense/detail/nwork.h>    28 namespace multifrontal {
    32 template<
class Precision> 
class JobGraphBase : 
public ::myra::multifrontal::detail::llt::factor::JobGraphBase2<ZCholeskyKernel<Precision> >
    37     typedef std::complex<Precision> Number;    
    39     typedef ::myra::multifrontal::detail::llt::factor::JobGraphBase2<Kernel> Base;
    42     typedef ::myra::multifrontal::detail::llt::LContainer<Kernel> LContainer;
    48        : Base(in_lcontainer), lcontainer(in_lcontainer) { }
    51     virtual ::myra::JobGraphBase* clone()
 const    57     virtual uint64_t factor(
int n, 
int k)
    60       if (k == 0) this->assign_contributions(n,k); 
    61       return lcontainer->factor(n,k);
    65     virtual uint64_t trsm(
int n, 
int k, 
int i)
    68       if (k == 0) this->assign_contributions(n,i,k); 
    69       const Kernel& Ln_kk = this->l(n,k);
    71       return Ln_kk.
solveL(An_ik,
'R',
'H');
    75     virtual uint64_t rankk(
int n, 
int k, 
int ij)
    84       Precision beta = k ? one : zero;
    85       uint64_t w = herk_nwork(An_ij, Ln_ijk, 
'N', -one, beta);
    87       if (k == 0) this->add_contributions(n,ij);
    92     virtual uint64_t gemm(
int n, 
int k, 
int i, 
int j)
   102       Number beta = k ? one : zero;
   103       uint64_t w = gemm_nwork(An_ij, Ln_ik, 
'N', Ln_jk, 
'H', -one, beta);
   105       if (k == 0) this->add_contributions(n,i,j);
   112     LContainer* lcontainer;
 uint64_t solveL(const MatrixRange< Number > &B, char side, char op) const
Solves op(L)*X=B or X*op(L)=B, overwrites B with X. 
Definition: Kernel.h:65
Interface class for representing subranges of dense Matrix's. 
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
Routines for hermitian rank-k updates, a specialized form of Matrix*Matrix multiplication. 
Range construct for a lower triangular matrix stored in rectangular packed format. 
Represents a const MatrixRange. 
Definition: bothcat.h:22
Routines for backsolving by a triangular Matrix or LowerMatrix. 
Specialized container for a lower triangular matrix, O(N^2/2) storage. Used by symmetry exploiting ma...
Represents a mutable MatrixRange. 
Definition: conjugate.h:26
General purpose dense matrix container, O(i*j) storage. 
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
Variety of routines all for dense Matrix*Matrix multiplies. Delegates to the BLAS.