10 #ifndef EIGEN_SOLVEWITHGUESS_H
11 #define EIGEN_SOLVEWITHGUESS_H
15 template<
typename Decomposition,
typename RhsType,
typename GuessType>
class SolveWithGuess;
32 template<
typename Decomposition,
typename RhsType,
typename GuessType>
34 : traits<Solve<Decomposition,RhsType> >
40 template<
typename Decomposition,
typename RhsType,
typename GuessType>
41 class SolveWithGuess :
public internal::generic_xpr_base<SolveWithGuess<Decomposition,RhsType,GuessType>, MatrixXpr, typename internal::traits<RhsType>::StorageKind>::type
44 typedef typename internal::traits<SolveWithGuess>::Scalar Scalar;
45 typedef typename internal::traits<SolveWithGuess>::PlainObject PlainObject;
46 typedef typename internal::generic_xpr_base<SolveWithGuess<Decomposition,RhsType,GuessType>, MatrixXpr,
typename internal::traits<RhsType>::StorageKind>::type Base;
48 SolveWithGuess(
const Decomposition &dec,
const RhsType &rhs,
const GuessType &guess)
49 : m_dec(dec), m_rhs(rhs), m_guess(guess)
52 EIGEN_DEVICE_FUNC Index rows()
const {
return m_dec.cols(); }
53 EIGEN_DEVICE_FUNC Index cols()
const {
return m_rhs.cols(); }
55 EIGEN_DEVICE_FUNC
const Decomposition& dec()
const {
return m_dec; }
56 EIGEN_DEVICE_FUNC
const RhsType& rhs()
const {
return m_rhs; }
57 EIGEN_DEVICE_FUNC
const GuessType& guess()
const {
return m_guess; }
60 const Decomposition &m_dec;
62 const GuessType &m_guess;
65 Scalar coeff(Index row, Index col)
const;
66 Scalar coeff(Index i)
const;
72 template<
typename Decomposition,
typename RhsType,
typename GuessType>
73 struct evaluator<SolveWithGuess<Decomposition,RhsType, GuessType> >
74 :
public evaluator<typename SolveWithGuess<Decomposition,RhsType,GuessType>::PlainObject>
76 typedef SolveWithGuess<Decomposition,RhsType,GuessType> SolveType;
77 typedef typename SolveType::PlainObject PlainObject;
78 typedef evaluator<PlainObject> Base;
80 evaluator(
const SolveType& solve)
81 : m_result(solve.rows(), solve.cols())
83 ::new (static_cast<Base*>(
this)) Base(m_result);
84 solve.dec()._solve_with_guess_impl(solve.rhs(), m_result, solve().guess());
93 template<typename DstXprType, typename DecType, typename RhsType, typename GuessType, typename Scalar>
94 struct Assignment<DstXprType, SolveWithGuess<DecType,RhsType,GuessType>,
internal::assign_op<Scalar>, Dense2Dense, Scalar>
96 typedef SolveWithGuess<DecType,RhsType,GuessType> SrcXprType;
97 static void run(DstXprType &dst,
const SrcXprType &src,
const internal::assign_op<Scalar> &)
101 src.dec()._solve_with_guess_impl(src.rhs(), dst);
109 #endif // EIGEN_SOLVEWITHGUESS_H
Pseudo expression representing a solving operation.
Definition: SolveWithGuess.h:15
Definition: Eigen_Colamd.h:54