12 #ifndef MFEM_TEMPLATE_ASSIGN
13 #define MFEM_TEMPLATE_ASSIGN
15 #include "../config/tconfig.hpp"
37 template <AssignOp::Type Op>
41 struct AssignOp_Impl<AssignOp::Set>
43 template <
typename lvalue_t,
typename rvalue_t>
44 static inline lvalue_t &
Assign(lvalue_t &a,
const rvalue_t &b)
51 struct AssignOp_Impl<AssignOp::
Add>
53 template <
typename lvalue_t,
typename rvalue_t>
54 static inline lvalue_t &
Assign(lvalue_t &a,
const rvalue_t &b)
62 struct AssignOp_Impl<AssignOp::
Mult>
64 template <
typename lvalue_t,
typename rvalue_t>
65 static inline lvalue_t &
Assign(lvalue_t &a,
const rvalue_t &b)
73 struct AssignOp_Impl<AssignOp::Div>
75 template <
typename lvalue_t,
typename rvalue_t>
76 static inline lvalue_t &
Assign(lvalue_t &a,
const rvalue_t &b)
84 struct AssignOp_Impl<AssignOp::rDiv>
86 template <
typename lvalue_t,
typename rvalue_t>
87 static inline lvalue_t &
Assign(lvalue_t &a,
const rvalue_t &b)
96 template <AssignOp::Type Op,
typename lvalue_t,
typename rvalue_t>
97 inline lvalue_t &
Assign(lvalue_t &a,
const rvalue_t &b)
104 #endif // MFEM_TEMPLATE_ASSIGN
void Mult(const Table &A, const Table &B, Table &C)
C = A * B (as boolean matrices)
void Add(const DenseMatrix &A, const DenseMatrix &B, double alpha, DenseMatrix &C)
C = A + alpha*B.
lvalue_t & Assign(lvalue_t &a, const rvalue_t &b)