24 using VecBool = Eigen::Matrix<bool, Eigen::Dynamic, 1>;
49 :
x_opt(prob.manifold_->neutral()),
63 oss <<
"Results {" << fmt::format(
"\n convergence: {},", self.
converged)
64 << fmt::format(
"\n merit: {:.3e},", self.
merit)
65 << fmt::format(
"\n value: {:.3e},", self.
value)
66 << fmt::format(
"\n num_iters: {:d},", self.
num_iters)
67 << fmt::format(
"\n mu: {:.3e},", self.
mu)
68 << fmt::format(
"\n rho: {:.3e},", self.
rho)
69 << fmt::format(
"\n dual_infeas: {:.3e},", self.
dual_infeas)
70 << fmt::format(
"\n prim_infeas: {:.3e},", self.
prim_infeas)
71 << fmt::format(
"\n cstr_values: {}",
73 for (std::size_t i = 0; i < self.
active_set.size(); i++) {
74 oss << fmt::format(
"\n activeSet[{:d}]: {}", i,
85template <
typename Scalar>
87 : fmt::ostream_formatter {};
89#ifdef PROXSUITE_NLP_ENABLE_TEMPLATE_INSTANTIATION
90#include "proxsuite-nlp/results.txx"
#define PROXSUITE_NLP_DYNAMIC_TYPEDEFS(Scalar)
void allocateMultipliersOrResiduals(const ProblemTpl< Scalar > &prob, typename math_types< Scalar >::VectorXs &data, typename math_types< Scalar >::VectorOfRef &out)
Allocate a set of multipliers (or residuals) for a given problem instance.
auto format_as(ConvergenceFlag fl)
int nr() const
Get function codimension.
const FunctionType & func() const
std::size_t getNumConstraints() const
Get the number of constraint blocks.
const ConstraintObject & getConstraint(const std::size_t &i) const
Get a pointer to the -th constraint pointer.
Results struct, holding the returned data from the solver.
std::size_t num_iters
Final solver parameters.
Scalar dual_infeas
Dual infeasibility error.
friend std::ostream & operator<<(std::ostream &oss, const ResultsTpl< Scalar > &self)
Scalar prim_infeas
Primal infeasibility error.
ResultsTpl(const Problem &prob)
ConvergenceFlag converged
Eigen::Matrix< bool, Eigen::Dynamic, 1 > VecBool
std::vector< VecBool > active_set
Current active set of the algorithm.
VectorXs constraint_violations
Violations for each constraint.