7 #ifndef SYM_GEIGS_REG_INV_OP_H 8 #define SYM_GEIGS_REG_INV_OP_H 11 #include "../SparseSymMatProd.h" 12 #include "../SparseRegularInverse.h" 22 template <
typename Scalar = double,
23 typename OpType = SparseSymMatProd<double>,
24 typename BOpType = SparseRegularInverse<double> >
44 m_op(op), m_Bop(Bop), m_cache(op.
rows())
50 Index
rows()
const {
return m_Bop.rows(); }
54 Index
cols()
const {
return m_Bop.rows(); }
65 m_op.perform_op(x_in, m_cache.
data());
66 m_Bop.solve(m_cache.
data(), y_out);
72 #endif // SYM_GEIGS_REG_INV_OP_H
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar * data() const
Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > Vector
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > Matrix
void perform_op(const Scalar *x_in, Scalar *y_out)
SymGEigsRegInvOp(OpType &op, BOpType &Bop)