10 #ifndef EIGEN_SOLVERBASE_H
11 #define EIGEN_SOLVERBASE_H
19 template<
typename Derived>
20 struct solve_assertion {
21 template<
bool Transpose_,
typename Rhs>
22 static void run(
const Derived&
solver,
const Rhs&
b) {
solver.template _check_solve_assertion<Transpose_>(
b); }
25 template<
typename Derived>
26 struct solve_assertion<Transpose<Derived> >
28 typedef Transpose<Derived> type;
30 template<
bool Transpose_,
typename Rhs>
31 static void run(
const type& transpose,
const Rhs&
b)
33 internal::solve_assertion<internal::remove_all_t<Derived>>::template run<true>(transpose.nestedExpression(),
b);
37 template<
typename Scalar,
typename Derived>
38 struct solve_assertion<CwiseUnaryOp<
Eigen::internal::scalar_conjugate_op<Scalar>, const Transpose<Derived> > >
40 typedef CwiseUnaryOp<Eigen::internal::scalar_conjugate_op<Scalar>,
const Transpose<Derived> > type;
42 template<
bool Transpose_,
typename Rhs>
43 static void run(
const type& adjoint,
const Rhs&
b)
45 internal::solve_assertion<internal::remove_all_t<Transpose<Derived> >>::template run<true>(adjoint.nestedExpression(),
b);
69 template<
typename Derived>
75 typedef typename internal::traits<Derived>::Scalar
Scalar;
78 template<
typename Derived_>
79 friend struct internal::solve_assertion;
88 internal::traits<Derived>::MaxColsAtCompileTime),
90 || internal::traits<Derived>::MaxColsAtCompileTime == 1,
105 template<
typename Rhs>
109 internal::solve_assertion<internal::remove_all_t<Derived>>::template run<false>(
derived(),
b);
128 typedef std::conditional_t<NumTraits<Scalar>::IsComplex,
148 template<
bool Transpose_,
typename Rhs>
158 template<
typename Derived>
159 struct generic_xpr_base<Derived, MatrixXpr, SolverStorage>
161 typedef SolverBase<Derived> type;
BiCGSTAB< SparseMatrix< double > > solver
#define EIGEN_ONLY_USED_FOR_DEBUG(x)
Generic expression where a coefficient-wise unary operator is applied to an expression.
Base class for all dense matrices, vectors, and expressions.
Pseudo expression representing a solving operation.
A base class for matrix decomposition and solvers.
internal::traits< Derived >::Scalar Scalar
std::conditional_t< NumTraits< Scalar >::IsComplex, CwiseUnaryOp< internal::scalar_conjugate_op< Scalar >, const ConstTransposeReturnType >, const ConstTransposeReturnType > AdjointReturnType
Transpose< const Derived > ConstTransposeReturnType
EigenBase< Derived > Base
const ConstTransposeReturnType transpose() const
const Solve< Derived, Rhs > solve(const MatrixBase< Rhs > &b) const
void _check_solve_assertion(const Rhs &b) const
const AdjointReturnType adjoint() const
Expression of the transpose of a matrix.
constexpr int size_at_compile_time(int rows, int cols)
EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT
EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT