Eigen::SparseSolverBase< Derived > Class Template Reference

A base class for sparse solvers. More...

#include <SparseSolverBase.h>

+ Inheritance diagram for Eigen::SparseSolverBase< Derived >:

Public Member Functions

 SparseSolverBase ()
 
 SparseSolverBase (SparseSolverBase &&other)
 
 ~SparseSolverBase ()
 
Derived & derived ()
 
const Derived & derived () const
 
template<typename Rhs >
const Solve< Derived, Rhs > solve (const MatrixBase< Rhs > &b) const
 
template<typename Rhs >
const Solve< Derived, Rhs > solve (const SparseMatrixBase< Rhs > &b) const
 
template<typename Rhs , typename Dest >
void _solve_impl (const SparseMatrixBase< Rhs > &b, SparseMatrixBase< Dest > &dest) const
 

Protected Attributes

bool m_isInitialized
 

Additional Inherited Members

- Private Member Functions inherited from Eigen::internal::noncopyable
EIGEN_DEVICE_FUNC noncopyable ()
 
EIGEN_DEVICE_FUNC ~noncopyable ()
 

Detailed Description

template<typename Derived>
class Eigen::SparseSolverBase< Derived >

A base class for sparse solvers.

Template Parameters
Derivedthe actual type of the solver.

Constructor & Destructor Documentation

◆ SparseSolverBase() [1/2]

template<typename Derived >
Eigen::SparseSolverBase< Derived >::SparseSolverBase ( )
inline

Default constructor

70 : m_isInitialized(false) {}
bool m_isInitialized
Definition: SparseSolverBase.h:110

◆ SparseSolverBase() [2/2]

template<typename Derived >
Eigen::SparseSolverBase< Derived >::SparseSolverBase ( SparseSolverBase< Derived > &&  other)
inline
72 : internal::noncopyable{}, m_isInitialized{other.m_isInitialized} {}
void noncopyable()
Definition: conservative_resize.cpp:109

◆ ~SparseSolverBase()

template<typename Derived >
Eigen::SparseSolverBase< Derived >::~SparseSolverBase ( )
inline
74 {}

Member Function Documentation

◆ _solve_impl()

template<typename Derived >
template<typename Rhs , typename Dest >
void Eigen::SparseSolverBase< Derived >::_solve_impl ( const SparseMatrixBase< Rhs > &  b,
SparseMatrixBase< Dest > &  dest 
) const
inline

default implementation of solving with a sparse rhs

104  {
105  internal::solve_sparse_through_dense_panels(derived(), b.derived(), dest.derived());
106  }
Scalar * b
Definition: benchVecAdd.cpp:17
Derived & derived()
Definition: SparseSolverBase.h:76
std::enable_if_t< Rhs::ColsAtCompileTime !=1 &&Dest::ColsAtCompileTime !=1 > solve_sparse_through_dense_panels(const Decomposition &dec, const Rhs &rhs, Dest &dest)
Definition: SparseSolverBase.h:25

References b, Eigen::SparseSolverBase< Derived >::derived(), Eigen::SparseMatrixBase< Derived >::derived(), and Eigen::internal::solve_sparse_through_dense_panels().

◆ derived() [1/2]

template<typename Derived >
Derived& Eigen::SparseSolverBase< Derived >::derived ( )
inline
76 { return *static_cast<Derived*>(this); }

Referenced by Eigen::SparseSolverBase< Derived >::_solve_impl(), and Eigen::SparseSolverBase< Derived >::solve().

◆ derived() [2/2]

template<typename Derived >
const Derived& Eigen::SparseSolverBase< Derived >::derived ( ) const
inline
77 { return *static_cast<const Derived*>(this); }

◆ solve() [1/2]

template<typename Derived >
template<typename Rhs >
const Solve<Derived, Rhs> Eigen::SparseSolverBase< Derived >::solve ( const MatrixBase< Rhs > &  b) const
inline
Returns
an expression of the solution x of \( A x = b \) using the current decomposition of A.
See also
compute()
84  {
85  eigen_assert(m_isInitialized && "Solver is not initialized.");
86  eigen_assert(derived().rows() == b.rows() && "solve(): invalid number of rows of the right hand side matrix b");
87  return Solve<Derived, Rhs>(derived(), b.derived());
88  }
#define eigen_assert(x)
Definition: Macros.h:910
int rows
Definition: Tutorial_commainit_02.cpp:1

References b, Eigen::SparseSolverBase< Derived >::derived(), eigen_assert, Eigen::SparseSolverBase< Derived >::m_isInitialized, and rows.

Referenced by check_sparse_inverse(), check_sparse_solving(), and main().

◆ solve() [2/2]

template<typename Derived >
template<typename Rhs >
const Solve<Derived, Rhs> Eigen::SparseSolverBase< Derived >::solve ( const SparseMatrixBase< Rhs > &  b) const
inline
Returns
an expression of the solution x of \( A x = b \) using the current decomposition of A.
See also
compute()
95  {
96  eigen_assert(m_isInitialized && "Solver is not initialized.");
97  eigen_assert(derived().rows() == b.rows() && "solve(): invalid number of rows of the right hand side matrix b");
98  return Solve<Derived, Rhs>(derived(), b.derived());
99  }

References b, Eigen::SparseSolverBase< Derived >::derived(), eigen_assert, Eigen::SparseSolverBase< Derived >::m_isInitialized, and rows.

Member Data Documentation

◆ m_isInitialized


The documentation for this class was generated from the following file: