34template <
typename Derived, base::concepts::dense_matrix Data>
49 return derived().residual_norm(solution);
60 return derived().regularization_term(solution);
77 derived().calculate_data_for(solution, data);
88 this->
logger().set_iterative();
96 [[nodiscard]]
auto derived() noexcept -> Derived& {
97 return *
static_cast<Derived*
>(
this);
105 [[nodiscard]]
auto derived() const noexcept -> const Derived& {
106 return *
static_cast<const Derived*
>(
this);
Class of tags of logs without memory management.
auto logger() const noexcept -> const num_collect::logging::logger &
Access to the logger.
Base class of solvers using implicit formulas for regularization.
auto residual_norm(const data_type &solution) const -> scalar_type
Calculate the squared norm of the residual.
implicit_regularized_solver_base(logging::log_tag_view tag)
Constructor.
void calculate_data_for(const data_type &solution, data_type &data) const
Calculate data for a solution.
auto regularization_term(const data_type &solution) const -> scalar_type
Calculate the regularization term.
void change_data(const data_type &data)
Change data.
auto derived() const noexcept -> const Derived &
Access derived object.
auto derived() noexcept -> Derived &
Access derived object.
Base class of solvers for regularization.
typename Eigen::NumTraits< typename data_type::Scalar >::Real scalar_type
Type of scalars.
Data data_type
Type of data.
Definition of dense_matrix concept.
Definition of log_tag_view class.
Namespace of regularization algorithms.
Definition of regularized_solver_base class.