12 #ifndef BOGUS_LINEAR_SOLVER_HPP
13 #define BOGUS_LINEAR_SOLVER_HPP
17 #include "../Block.fwd.hpp"
21 template <
typename LSDerived >
25 template <
typename Derived >
30 template <
typename RhsT >
34 return derived().solve( rhs ) ;
38 template <
typename ResT,
typename RhsT >
39 void solve(
const RhsT& rhs, ResT& x )
const
41 derived().solve( rhs, x ) ;
44 const Derived& derived()
const
46 return static_cast< const Derived&
>( *this ) ;
50 return static_cast< Derived&
>( *this ) ;
54 typedef BlockTraits< typename LinearSolverTraits< Derived >::MatrixType > UnderlyingBlockTraits ;
55 typedef typename UnderlyingBlockTraits::Scalar Scalar ;
65 template <
typename MatrixType >
71 template <
typename MatrixType >
79 template<
typename LhsBlockT,
typename RhsBlockT,
bool TransposeLhs,
bool TransposeRhs >
83 typedef typename BlockBlockProductTraits < LhsMatrixT, RhsBlockT, TransposeLhs, TransposeRhs >::ReturnType
87 template<
typename LhsBlockT,
typename RhsBlockT,
bool TransposeLhs,
bool TransposeRhs >
91 typedef typename BlockBlockProductTraits < LhsMatrixT, RhsBlockT, TransposeLhs, TransposeRhs >::ReturnType
Definition: LinearSolverBase.hpp:22
Base class for linear solvers on base ( i.e. non-block ) matrices.
Definition: LinearSolverBase.hpp:26
Base class for LDLT factorizations.
Definition: LinearSolverBase.hpp:72
Number of rows spanned by a block at compile time ; useful for efficient segmentation.
Definition: Traits.hpp:37
Defines the return type of the product of two blocks potentially transposed.
Definition: Traits.hpp:64
Whether this block is equal to its transpose.
Definition: Traits.hpp:46
Number of cols spanned by a block at compile time ; useful for efficient segmentation.
Definition: Traits.hpp:39
Base class for LU factorizations.
Definition: LinearSolverBase.hpp:66
void solve(const RhsT &rhs, ResT &x) const
Finds the solution x of the linear system M * x = b.
Definition: LinearSolverBase.hpp:39
LinearSolverTraits< Derived >::template Result< RhsT >::Type solve(const RhsT &rhs) const
Returns the solution x of the linear system M * x = rhs.
Definition: LinearSolverBase.hpp:32