Template Struct RuizEquilibration
Defined in File ruiz.hpp
Struct Documentation
-
template<typename T>
struct RuizEquilibration Public Functions
-
inline explicit RuizEquilibration(isize dim_, isize n_eq_in, T epsilon_ = T(1e-3), i64 max_iter_ = 10, Symmetry sym_ = Symmetry::general, std::ostream *logger = nullptr)
Default constructor.
- Parameters:
dim – primal variable dimension.
n_eq_in – number of equality and inequality constraints.
epsilon_ – accuracy required for stopping the ruiz equilibration algorithm.
max_iter_ – maximum number of ruiz equilibration iterations.
sym_ – symetry option format of quadratic cost matrix.
logger – parameter for printing or not intermediary results.
-
inline void print() const
Prints ruiz equilibrator scaling variables.
-
inline void scale_qp_in_place(QpViewBoxMut<T> qp, bool execute_preconditioner, const isize max_iter, const T epsilon, const ProblemType problem_type, proxsuite::linalg::veg::dynstack::DynStackMut stack)
Scales the qp performing the ruiz equilibrator algorithm considering user options.
- Parameters:
qp – qp to be scaled (in place).
execute_preconditioner – bool variable specifying whether the qp is scaled using current equilibrator scaling variables, or performing anew the algorithm.
settings – solver’s settings.
stack – stack variable used by the equilibrator.
-
inline void scale_qp(const QpViewBox<T> qp, QpViewBoxMut<T> scaled_qp, bool execute_preconditioner, VectorViewMut<T> tmp_delta_preallocated) const
Scales the qp performing the ruiz equilibrator algorithm considering user options.
- Parameters:
qp – qp model.
scaled_qp – qp to be scaled.
tmp_delta_preallocated – temporary variable used for performing the equilibration.
-
inline void scale_primal_in_place(VectorViewMut<T> primal) const
Scales a primal variable in place.
- Parameters:
primal – primal variable.
-
inline void scale_dual_in_place(VectorViewMut<T> dual) const
Scales a dual variable in place.
- Parameters:
dual – dual variable (includes all equalities and inequalities constraints).
-
inline void scale_dual_in_place_eq(VectorViewMut<T> dual) const
Scales a dual equality constrained variable in place.
- Parameters:
dual – dual variable (includes equalities constraints only).
-
inline void scale_dual_in_place_in(VectorViewMut<T> dual) const
Scales a dual inequality constrained variable in place.
- Parameters:
dual – dual variable (includes inequalities constraints only).
-
inline void unscale_primal_in_place(VectorViewMut<T> primal) const
Unscales a primal variable in place.
- Parameters:
primal – primal variable.
-
inline void unscale_dual_in_place(VectorViewMut<T> dual) const
Unscales a dual variable in place.
- Parameters:
dual – dual variable (includes equalities constraints only).
-
inline void unscale_dual_in_place_eq(VectorViewMut<T> dual) const
Unscales a dual equality constrained variable in place.
- Parameters:
dual – dual variable (includes equalities constraints only).
-
inline void unscale_dual_in_place_in(VectorViewMut<T> dual) const
Unscales a dual inequality constrained variable in place.
- Parameters:
dual – dual variable (includes inequalities constraints only).
-
inline void scale_primal_residual_in_place(VectorViewMut<T> primal) const
Scales a primal residual in place.
- Parameters:
primal – primal residual (includes equality and inequality constraints)
-
inline void scale_primal_residual_in_place_eq(VectorViewMut<T> primal_eq) const
Scales a primal equality constraint residual in place.
- Parameters:
primal – primal equality constraint residual.
-
inline void scale_primal_residual_in_place_in(VectorViewMut<T> primal_in) const
Scales a primal inequality constraint residual in place.
- Parameters:
primal – primal inequality constraint residual.
-
inline void scale_dual_residual_in_place(VectorViewMut<T> dual) const
Scales a dual residual in place.
- Parameters:
dual – dual residual.
-
inline void unscale_primal_residual_in_place(VectorViewMut<T> primal) const
Unscales a primal residual in place.
- Parameters:
primal – primal residual (includes equality and inequality constraints).
-
inline void unscale_primal_residual_in_place_eq(VectorViewMut<T> primal_eq) const
Unscales a primal equality constraint residual in place.
- Parameters:
primal – primal equality constraint residual.
-
inline void unscale_primal_residual_in_place_in(VectorViewMut<T> primal_in) const
Unscales a primal inequality constraint residual in place.
- Parameters:
primal – primal inequality constraint residual.
-
inline void unscale_dual_residual_in_place(VectorViewMut<T> dual) const
Unscales a dual residual in place.
- Parameters:
dual – dual residual.
Public Static Functions
-
static inline auto scale_qp_in_place_req(proxsuite::linalg::veg::Tag<T> tag, isize n, isize n_eq, isize n_in) -> proxsuite::linalg::veg::dynstack::StackReq
Determines memory requirements for executing the equilibrator.
- Parameters:
tag – tag for specifying entry type.
n – dimension of the primal variable of the model.
n_eq – number of equality constraints.
n_in – number of inequality constraints.
-
inline explicit RuizEquilibration(isize dim_, isize n_eq_in, T epsilon_ = T(1e-3), i64 max_iter_ = 10, Symmetry sym_ = Symmetry::general, std::ostream *logger = nullptr)