1 #ifndef ABSTRACTSOLVER_HPP 2 #define ABSTRACTSOLVER_HPP 9 #include <eigen3/Eigen/Dense> 10 #include <eigen3/Eigen/Core> 18 #include "../Generic/generics.hpp" 19 #include "../Generic/debug.hpp" 25 template <
typename T >
60 virtual Eigen::Matrix< T, Eigen::Dynamic, 1 >
operator()(
61 const Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic >& X,
62 const Eigen::Matrix< T, Eigen::Dynamic, 1 >& Y,
63 const Eigen::Matrix< T, Eigen::Dynamic, 1 >& Beta_0,
65 unsigned int num_iterations ) = 0;
90 virtual Eigen::Matrix< T, Eigen::Dynamic, 1 >
operator()(
91 const Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic >& X,
92 const Eigen::Matrix< T, Eigen::Dynamic, 1 >& Y,
93 const Eigen::Matrix< T, Eigen::Dynamic, 1 >& Beta_0,
95 T duality_gap_target ) = 0;
99 virtual Eigen::Matrix< T, Eigen::Dynamic, 1 > update_rule(
100 const Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic >& X,
101 const Eigen::Matrix< T, Eigen::Dynamic, 1 >& Y,
102 const Eigen::Matrix< T, Eigen::Dynamic, 1 >& Beta_0,
107 template <
typename T >
115 #endif // ABSTRACTSOLVER_HPP
virtual Eigen::Matrix< T, Eigen::Dynamic, 1 > operator()(const Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > &X, const Eigen::Matrix< T, Eigen::Dynamic, 1 > &Y, const Eigen::Matrix< T, Eigen::Dynamic, 1 > &Beta_0, T lambda, unsigned int num_iterations)=0
Run the AbstractSolver for a fixed number of steps, specified by num_iterations.
Abstract base class for all iterative solvers.