6 #ifndef MYRAMATH_MULTIFRONTAL_LU_SCHURGEMMA_H 7 #define MYRAMATH_MULTIFRONTAL_LU_SCHURGEMMA_H 14 #include <myramath/multifrontal/detail/schurgemm.h> 19 template<
class Number>
class LUKernel;
21 namespace multifrontal {
30 template<
class Kernel>
class LUContainer;
34 template<
class Number>
class JobGraphBase :
public ::myra::multifrontal::detail::schurgemm::JobGraphBase2<Number>
39 typedef ::myra::multifrontal::detail::schurgemm::JobGraphBase2<Number> Base;
42 typedef ::myra::LUKernel<Number>
Kernel;
43 typedef ::myra::multifrontal::detail::lu::LUContainer<Kernel>
LUContainer;
44 typedef ::myra::multifrontal::detail::XContainer<Number>
XContainer;
50 : Base(&in_LU->tree(), in_X, in_Y, in_S), X(in_X), Y(in_Y), S(in_S) { }
53 virtual ::myra::JobGraphBase* clone()
const 59 virtual uint64_t update(
int n,
int k,
int i,
int j)
63 const Range Sn_ij = this->s(n,i,j);
64 const CRange Xn_ki = this->x(n,k,i);
65 const CRange Yn_kj = this->y(n,k,j);
66 return gemm_nwork(Sn_ij, Xn_ki,
'T', Yn_kj,
'N', one, one);
Represents a const MatrixRange.
Definition: bothcat.h:22
Factors A into L*U, presents solve methods.
Definition: Kernel.h:35
Definition: random.cpp:45
Represents a mutable MatrixRange.
Definition: conjugate.h:26
Definition: schurgemm.h:34
Definition: partialsolve.h:32
Definition: schurgemm.h:25