1 #ifndef SOPT_PROJECTED_ALGORITHM_H
2 #define SOPT_PROJECTED_ALGORITHM_H
14 template <
typename ALGORITHM>
37 template <
typename... T>
39 auto const diagnostic =
algorithm()(out, std::forward<T const &>(args)...);
45 template <
typename... T>
47 auto result =
algorithm()(std::forward<T const &>(args)...);
58 template <
typename ALGORITHM>
sopt::Vector< Scalar > t_Vector
Computes according to given algorithm and then projects it to the positive quadrant.
typename Algorithm::Scalar Scalar
Underlying scalar.
PositiveQuadrant(Algorithm const &algo)
ALGORITHM Algorithm
Underlying algorithm.
Diagnostic operator()(t_Vector &out, T const &... args) const
Performs algorithm and project results onto positive quadrant.
DiagnosticAndResult operator()(T const &... args) const
Performs algorithm and project results onto positive quadrant.
typename ALGORITHM::Diagnostic Diagnostic
Underlying result type.
typename Algorithm::t_Vector t_Vector
Underlying vector.
PositiveQuadrant(Algorithm &&algo)
typename ALGORITHM::DiagnosticAndResult DiagnosticAndResult
Underlying result type.
Algorithm const & algorithm() const
typename Algorithm::t_IsConverged t_IsConverged
Underlying convergence functions.
PositiveQuadrant< ALGORITHM > positive_quadrant(ALGORITHM const &algo)
Extended algorithm where the solution is projected on the positive quadrant.