31 template <
typename Scalar,
typename OpType,
typename BOpType>
44 m_op(*op), m_Bop(*Bop), m_cache(op->
rows())
47 inline Index
rows()
const {
return m_op.rows(); }
54 template <
typename Arg1,
typename Arg2>
57 m_Bop.mat_prod(y.data(), m_cache.
data());
58 return x.dot(m_cache);
63 template <
typename Arg1,
typename Arg2>
66 m_Bop.mat_prod(y.data(), m_cache.
data());
67 res.noalias() = x.transpose() *
m_cache;
71 template <
typename Arg>
75 return sqrt(inner_product<Arg, Arg>(x, x));
81 m_op.perform_op(x_in, y_out);
98 template <
typename Scalar,
typename OpType>
112 inline Index
rows()
const {
return m_op.rows(); }
116 template <
typename Arg1,
typename Arg2>
124 template <
typename Arg1,
typename Arg2>
127 res.noalias() = x.transpose() *
y;
131 template <
typename Arg>
140 m_op.perform_op(x_in, y_out);
150 #endif // ARNOLDI_OP_H
Scalar norm(const Arg &x)
Scalar inner_product(const Arg1 &x, const Arg2 &y) const
Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > Vector
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar * data() const
void trans_product(const Arg1 &x, const Arg2 &y, Eigen::Ref< Vector > res) const
Scalar inner_product(const Arg1 &x, const Arg2 &y)
cout<< "Here is the matrix m:"<< endl<< m<< endl;Matrix< ptrdiff_t, 3, 1 > res
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
void perform_op(const Scalar *x_in, Scalar *y_out)
ArnoldiOp(OpType *op, BOpType *Bop)
Scalar norm(const Arg &x)
A matrix or vector expression mapping an existing expression.
Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > Vector
void trans_product(const Arg1 &x, const Arg2 &y, Eigen::Ref< Vector > res)
void perform_op(const Scalar *x_in, Scalar *y_out)
Jet< T, N > sqrt(const Jet< T, N > &f)
set noclip points set clip one set noclip two set bar set border lt lw set xdata set ydata set zdata set x2data set y2data set boxwidth set dummy x