6 #ifndef MYRAMATH_MULTIFRONTAL_LU_FACTOR_H     7 #define MYRAMATH_MULTIFRONTAL_LU_FACTOR_H    14 #include <myramath/multifrontal/detail/lu/factor.h>    17 namespace multifrontal {
    21 template<
class Number> 
class JobGraphBase : 
public ::myra::multifrontal::detail::lu::factor::JobGraphBase2<LUKernel<Number> >
    26     typedef ::myra::multifrontal::detail::lu::factor::JobGraphBase2<LUKernel<Number> > Base;
    30     typedef ::myra::multifrontal::detail::lu::LUContainer<Kernel> 
LUContainer;
    34        : Base(in_lucontainer), lucontainer(in_lucontainer) { }
    37     virtual ::myra::JobGraphBase* clone()
 const    43     virtual uint64_t factor(
int n, 
int k)
    46       if (k == 0) this->assign_contributions(n,k,k);
    47       return lucontainer->factor(n,k); 
    51     virtual uint64_t backsolveL(
int n, 
int k, 
int i)
    54       if (k == 0) this->assign_contributions(n,i,k);
    55       const Kernel& Un_kk = this->lu(n,k);
    57       return Un_kk.
solveU(An_ik,
'R',
'N');
    61     virtual uint64_t backsolveU(
int n, 
int k, 
int j)
    64       if (k == 0) this->assign_contributions(n,k,j);
    65       const Kernel& Ln_kk = this->lu(n,k);
    67       return Ln_kk.
solveL(An_kj,
'L',
'N');
    71     virtual uint64_t downdate(
int n, 
int k, 
int i, 
int j)
    81       Number beta = k ? one : zero;
    82       uint64_t w = gemm_nwork(An_ij, Ln_ik, 
'N', Un_kj, 
'N', -one, beta);
    84       if (k == 0) this->add_contributions(n,i,j);
    91     LUContainer* lucontainer;
 
Represents a const MatrixRange. 
Definition: bothcat.h:22
Factors A into L*U, presents solve methods. 
Definition: Kernel.h:35
Represents a mutable MatrixRange. 
Definition: conjugate.h:26
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:66
uint64_t solveU(const MatrixRange< Number > &B, char side, char op) const
Solves op(U)*X=B or X*op(U)=B, overwrites B with X. 
Definition: Kernel.h:135
Definition: partialsolve.h:32