10 #ifndef ITERATIVE_SOLVER_ITERATOR_H_
11 #define ITERATIVE_SOLVER_ITERATOR_H_
17 using namespace Eigen;
60 index_t max_iteration_limit=1000,
63 : m_max_iteration_limit(max_iteration_limit),
64 m_tolerence(absolute_tolerence+relative_tolerence*b.norm()),
68 m_iter_info.iteration_count=0;
72 void begin(
const VectorXt& residual)
74 m_iter_info.residual_norm=residual.norm();
75 m_iter_info.iteration_count=0;
79 const bool end(
const VectorXt& residual)
81 m_iter_info.residual_norm=residual.norm();
83 m_success=m_iter_info.residual_norm < m_tolerence;
84 return m_success || m_iter_info.iteration_count >= m_max_iteration_limit;
96 m_iter_info.residual_norm=residual.norm();
98 m_success=m_iter_info.residual_norm < m_tolerence;
105 m_iter_info.iteration_count++;
113 const index_t m_max_iteration_limit;
124 #endif // ITERATIVE_SOLVER_ITERATOR_H_
void begin(const VectorXt &residual)
struct shogun::_IterInfo IterInfo
struct that contains current state of the iteration for iterative linear solvers
const bool end(const VectorXt &residual)
template class that is used as an iterator for an iterative linear solver. In the iteration of solvin...
struct that contains current state of the iteration for iterative linear solvers
IterativeSolverIterator(const VectorXt &b, index_t max_iteration_limit=1000, float64_t relative_tolerence=1E-5, float64_t absolute_tolerence=1E-5)
const IterInfo get_iter_info() const
all of classes and functions are contained in the shogun namespace
const bool succeeded(const VectorXt &residual)
Matrix::Scalar max(Matrix m)