proxsuite 0.6.7
The Advanced Proximal Optimization Toolbox
Loading...
Searching...
No Matches
proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T > Struct Template Reference

#include <proxsuite/proxqp/dense/preconditioner/ruiz.hpp>

Collaboration diagram for proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >:
[legend]

Public Member Functions

 RuizEquilibration (isize dim_, isize n_eq_, isize n_in_, bool box_constraints, T epsilon_=T(1e-3), i64 max_iter_=10, Symmetry sym_=Symmetry::general, std::ostream *logger=nullptr)
 
void print () const
 
void scale_qp_in_place (QpViewBoxMut< T > qp, bool execute_preconditioner, bool preconditioning_for_infeasible_problems, const isize max_iter, const T epsilon, const HessianType &HessianType, const bool box_constraints, proxsuite::linalg::veg::dynstack::DynStackMut stack)
 
void scale_primal_in_place (VectorViewMut< T > primal) const
 
void scale_dual_in_place (VectorViewMut< T > dual) const
 
void scale_dual_in_place_eq (VectorViewMut< T > dual) const
 
void scale_dual_in_place_in (VectorViewMut< T > dual) const
 
void unscale_primal_in_place (VectorViewMut< T > primal) const
 
void unscale_dual_in_place (VectorViewMut< T > dual) const
 
void unscale_box_dual_in_place_in (VectorViewMut< T > dual) const
 
void scale_box_dual_in_place_in (VectorViewMut< T > dual) const
 
void unscale_dual_in_place_eq (VectorViewMut< T > dual) const
 
void unscale_dual_in_place_in (VectorViewMut< T > dual) const
 
void scale_primal_residual_in_place (VectorViewMut< T > primal) const
 
void scale_primal_residual_in_place_eq (VectorViewMut< T > primal_eq) const
 
void scale_primal_residual_in_place_in (VectorViewMut< T > primal_in) const
 
void scale_box_primal_residual_in_place_in (VectorViewMut< T > primal_in) const
 
void scale_dual_residual_in_place (VectorViewMut< T > dual) const
 
void unscale_primal_residual_in_place (VectorViewMut< T > primal) const
 
void unscale_box_primal_residual_in_place (VectorViewMut< T > primal) const
 
void unscale_primal_residual_in_place_eq (VectorViewMut< T > primal_eq) const
 
void unscale_primal_residual_in_place_in (VectorViewMut< T > primal_in) const
 
void unscale_box_primal_residual_in_place_in (VectorViewMut< T > primal_in) const
 
void unscale_dual_residual_in_place (VectorViewMut< T > dual) const
 

Static Public Member Functions

static auto scale_qp_in_place_req (proxsuite::linalg::veg::Tag< T > tag, isize n, isize n_eq, isize n_in, bool box_constraints) -> proxsuite::linalg::veg::dynstack::StackReq
 

Public Attributes

Vec< T > delta
 
c
 
isize dim
 
isize n_eq
 
isize n_in
 
epsilon
 
i64 max_iter
 
Symmetry sym
 
std::ostream * logger_ptr = nullptr
 

Detailed Description

template<typename T>
struct proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >

Definition at line 317 of file ruiz.hpp.

Constructor & Destructor Documentation

◆ RuizEquilibration()

template<typename T >
proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >::RuizEquilibration ( isize dim_,
isize n_eq_,
isize n_in_,
bool box_constraints,
T epsilon_ = T(1e-3),
i64 max_iter_ = 10,
Symmetry sym_ = Symmetry::general,
std::ostream * logger = nullptr )
inlineexplicit

Default constructor.

Parameters
dimprimal variable dimension.
n_eq_constraintsnumber of equality and inequality constraints (n_in+n_constraints if box constraints are present, or n_in).
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.
loggerparameter for printing or not intermediary results.

Definition at line 340 of file ruiz.hpp.

Member Function Documentation

◆ print()

template<typename T >
void proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >::print ( ) const
inline

Prints ruiz equilibrator scaling variables.

Definition at line 362 of file ruiz.hpp.

◆ scale_qp_in_place_req()

template<typename T >
static auto proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >::scale_qp_in_place_req ( proxsuite::linalg::veg::Tag< T > tag,
isize n,
isize n_eq,
isize n_in,
bool box_constraints ) -> proxsuite::linalg::veg::dynstack::StackReq
inlinestatic

Determines memory requirements for executing the equilibrator.

Parameters
tagtag for specifying entry type.
ndimension of the primal variable of the model.
n_eqnumber of equality constraints.
n_innumber of inequality constraints.

Definition at line 375 of file ruiz.hpp.

◆ scale_qp_in_place()

template<typename T >
void proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >::scale_qp_in_place ( QpViewBoxMut< T > qp,
bool execute_preconditioner,
bool preconditioning_for_infeasible_problems,
const isize max_iter,
const T epsilon,
const HessianType & HessianType,
const bool box_constraints,
proxsuite::linalg::veg::dynstack::DynStackMut stack )
inline

Scales the qp performing the ruiz equilibrator algorithm considering user options.

Parameters
qpqp to be scaled (in place).
execute_preconditionerbool variable specifying whether the qp is scaled using current equilibrator scaling variables, or performing anew the algorithm.
settingssolver's settings.
stackstack variable used by the equilibrator.

Definition at line 403 of file ruiz.hpp.

◆ scale_primal_in_place()

template<typename T >
void proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >::scale_primal_in_place ( VectorViewMut< T > primal) const
inline

Scales a primal variable in place.

Parameters
primalprimal variable.

Definition at line 518 of file ruiz.hpp.

◆ scale_dual_in_place()

template<typename T >
void proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >::scale_dual_in_place ( VectorViewMut< T > dual) const
inline

Scales a dual variable in place.

Parameters
dualdual variable (includes all equalities and inequalities constraints).

Definition at line 527 of file ruiz.hpp.

◆ scale_dual_in_place_eq()

template<typename T >
void proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >::scale_dual_in_place_eq ( VectorViewMut< T > dual) const
inline

Scales a dual equality constrained variable in place.

Parameters
dualdual variable (includes equalities constraints only).

Definition at line 536 of file ruiz.hpp.

◆ scale_dual_in_place_in()

template<typename T >
void proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >::scale_dual_in_place_in ( VectorViewMut< T > dual) const
inline

Scales a dual inequality constrained variable in place.

Parameters
dualdual variable (includes inequalities constraints only).

Definition at line 545 of file ruiz.hpp.

◆ unscale_primal_in_place()

template<typename T >
void proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >::unscale_primal_in_place ( VectorViewMut< T > primal) const
inline

Unscales a primal variable in place.

Parameters
primalprimal variable.

Definition at line 554 of file ruiz.hpp.

◆ unscale_dual_in_place()

template<typename T >
void proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >::unscale_dual_in_place ( VectorViewMut< T > dual) const
inline

Unscales a dual variable in place.

Parameters
dualdual variable (includes equalities constraints only).

Definition at line 562 of file ruiz.hpp.

◆ unscale_box_dual_in_place_in()

template<typename T >
void proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >::unscale_box_dual_in_place_in ( VectorViewMut< T > dual) const
inline

Unscales a dual variable in place for box inequality constraints.

Parameters
dualdual variable (includes equalities constraints only).

Definition at line 571 of file ruiz.hpp.

◆ scale_box_dual_in_place_in()

template<typename T >
void proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >::scale_box_dual_in_place_in ( VectorViewMut< T > dual) const
inline

scales a dual variable in place for box inequality constraints.

Parameters
dualdual variable (includes equalities constraints only).

Definition at line 580 of file ruiz.hpp.

◆ unscale_dual_in_place_eq()

template<typename T >
void proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >::unscale_dual_in_place_eq ( VectorViewMut< T > dual) const
inline

Unscales a dual equality constrained variable in place.

Parameters
dualdual variable (includes equalities constraints only).

Definition at line 589 of file ruiz.hpp.

◆ unscale_dual_in_place_in()

template<typename T >
void proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >::unscale_dual_in_place_in ( VectorViewMut< T > dual) const
inline

Unscales a dual inequality constrained variable in place.

Parameters
dualdual variable (includes inequalities constraints only).

Definition at line 598 of file ruiz.hpp.

◆ scale_primal_residual_in_place()

template<typename T >
void proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >::scale_primal_residual_in_place ( VectorViewMut< T > primal) const
inline

Scales a primal residual in place.

Parameters
primalprimal residual (includes equality and inequality constraints)

Definition at line 609 of file ruiz.hpp.

◆ scale_primal_residual_in_place_eq()

template<typename T >
void proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >::scale_primal_residual_in_place_eq ( VectorViewMut< T > primal_eq) const
inline

Scales a primal equality constraint residual in place.

Parameters
primalprimal equality constraint residual.

Definition at line 618 of file ruiz.hpp.

◆ scale_primal_residual_in_place_in()

template<typename T >
void proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >::scale_primal_residual_in_place_in ( VectorViewMut< T > primal_in) const
inline

Scales a primal inequality constraint residual in place.

Parameters
primalprimal inequality constraint residual.

Definition at line 626 of file ruiz.hpp.

◆ scale_box_primal_residual_in_place_in()

template<typename T >
void proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >::scale_box_primal_residual_in_place_in ( VectorViewMut< T > primal_in) const
inline

Scales a primal box inequality constraint residual in place.

Parameters
primalprimal inequality constraint residual.

Definition at line 634 of file ruiz.hpp.

◆ scale_dual_residual_in_place()

template<typename T >
void proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >::scale_dual_residual_in_place ( VectorViewMut< T > dual) const
inline

Scales a dual residual in place.

Parameters
dualdual residual.

Definition at line 642 of file ruiz.hpp.

◆ unscale_primal_residual_in_place()

template<typename T >
void proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >::unscale_primal_residual_in_place ( VectorViewMut< T > primal) const
inline

Unscales a primal residual in place.

Parameters
primalprimal residual (includes equality and inequality constraints).

Definition at line 651 of file ruiz.hpp.

◆ unscale_box_primal_residual_in_place()

template<typename T >
void proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >::unscale_box_primal_residual_in_place ( VectorViewMut< T > primal) const
inline

Unscales a primal equality constraint residual in place.

Parameters
primalprimal equality constraint residual.

Definition at line 659 of file ruiz.hpp.

◆ unscale_primal_residual_in_place_eq()

template<typename T >
void proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >::unscale_primal_residual_in_place_eq ( VectorViewMut< T > primal_eq) const
inline

Unscales a primal equality constraint residual in place.

Parameters
primalprimal equality constraint residual.

Definition at line 667 of file ruiz.hpp.

◆ unscale_primal_residual_in_place_in()

template<typename T >
void proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >::unscale_primal_residual_in_place_in ( VectorViewMut< T > primal_in) const
inline

Unscales a primal inequality constraint residual in place.

Parameters
primalprimal inequality constraint residual.

Definition at line 675 of file ruiz.hpp.

◆ unscale_box_primal_residual_in_place_in()

template<typename T >
void proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >::unscale_box_primal_residual_in_place_in ( VectorViewMut< T > primal_in) const
inline

Unscales a primal inequality constraint residual in place.

Parameters
primalprimal inequality constraint residual.

Definition at line 683 of file ruiz.hpp.

◆ unscale_dual_residual_in_place()

template<typename T >
void proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >::unscale_dual_residual_in_place ( VectorViewMut< T > dual) const
inline

Unscales a dual residual in place.

Parameters
dualdual residual.

Definition at line 691 of file ruiz.hpp.

Member Data Documentation

◆ delta

Definition at line 319 of file ruiz.hpp.

◆ c

Definition at line 320 of file ruiz.hpp.

◆ dim

template<typename T >
isize proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >::dim

Definition at line 321 of file ruiz.hpp.

◆ n_eq

template<typename T >
isize proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >::n_eq

Definition at line 322 of file ruiz.hpp.

◆ n_in

template<typename T >
isize proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >::n_in

Definition at line 323 of file ruiz.hpp.

◆ epsilon

template<typename T >
T proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >::epsilon

Definition at line 324 of file ruiz.hpp.

◆ max_iter

template<typename T >
i64 proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >::max_iter

Definition at line 325 of file ruiz.hpp.

◆ sym

Definition at line 326 of file ruiz.hpp.

◆ logger_ptr

template<typename T >
std::ostream* proxsuite::proxqp::dense::preconditioner::RuizEquilibration< T >::logger_ptr = nullptr

Definition at line 328 of file ruiz.hpp.


The documentation for this struct was generated from the following file: