27inline namespace base {
34template <
typename Derived>
46 this->
logger().set_iterative();
63 return derived().is_stop_criteria_satisfied();
76 iter_logger.write_iteration(&
derived());
79 iter_logger.write_iteration(&
derived());
81 iter_logger.write_summary(&
derived());
90 [[nodiscard]]
auto derived() noexcept -> Derived& {
91 return *
static_cast<Derived*
>(
this);
99 [[nodiscard]]
auto derived() const noexcept -> const Derived& {
100 return *
static_cast<const Derived*
>(
this);
Base class of iterative solvers.
void solve()
Solve the problem.
auto is_stop_criteria_satisfied() const -> bool
Determine if stopping criteria of the algorithm are satisfied.
iterative_solver_base(logging::log_tag_view tag)
Constructor.
auto derived() const noexcept -> const Derived &
Access derived object.
void iterate()
Iterate the algorithm once.
auto derived() noexcept -> Derived &
Access derived object.
Class to incorporate num_collect::logging::iterations::iteration_logger in algorithms.
auto initialize_iteration_logger() -> num_collect::logging::iterations::iteration_logger< Derived > &
Get the iteration logger.
Class of tags of logs without memory management.
Class to incorporate logging in algorithms.
logging_mixin(log_tag_view tag)
Constructor.
auto logger() const noexcept -> const num_collect::logging::logger &
Access to the logger.
Definition of iteration_logger_mixin class.
Definition of log_tag_view class.
Definition of logging_mixin class.
Namespace of num_collect source codes.