Template Struct Settings

Struct Documentation

template<typename T>
struct Settings

This class defines the settings of PROXQP solvers with sparse and dense backends.

Settings class, which defines the parameters used by the dense and sparse solver (and its preconditioner).

Public Functions

inline Settings(T default_rho = 1.E-6, T default_mu_eq = 1.E-3, T default_mu_in = 1.E-1, T alpha_bcl = 0.1, T beta_bcl = 0.9, T refactor_dual_feasibility_threshold = 1e-2, T refactor_rho_threshold = 1e-7, T mu_min_eq = 1e-9, T mu_min_in = 1e-8, T mu_max_eq_inv = 1e9, T mu_max_in_inv = 1e8, T mu_update_factor = 0.1, T mu_update_inv_factor = 10, T cold_reset_mu_eq = 1. / 1.1, T cold_reset_mu_in = 1. / 1.1, T cold_reset_mu_eq_inv = 1.1, T cold_reset_mu_in_inv = 1.1, T eps_abs = 1.e-5, T eps_rel = 0, isize max_iter = 10000, isize max_iter_in = 1500, isize safe_guard = 1.E4, isize nb_iterative_refinement = 10, T eps_refact = 1.e-6, bool verbose = false, InitialGuessStatus initial_guess = InitialGuessStatus::EQUALITY_CONSTRAINED_INITIAL_GUESS, bool update_preconditioner = true, bool compute_preconditioner = true, bool compute_timings = false, bool check_duality_gap = false, T eps_duality_gap_abs = 1.e-4, T eps_duality_gap_rel = 0, isize preconditioner_max_iter = 10, T preconditioner_accuracy = 1.e-3, T eps_primal_inf = 1.E-4, T eps_dual_inf = 1.E-4, bool bcl_update = true, MeritFunctionType merit_function_type = MeritFunctionType::GPDAL, T alpha_gpdal = 0.95, ProblemType problem_type = ProblemType::QP, SparseBackend sparse_backend = SparseBackend::Automatic)

Default constructor.

Parameters:
  • default_rho – default rho parameter of result class

  • default_mu_eq – default mu_eq parameter of result class

  • default_mu_in – default mu_in parameter of result class

  • alpha_bcl – alpha parameter of the BCL algorithm.

  • beta_bcl – beta parameter of the BCL algorithm.

  • refactor_dual_feasibility_threshold – threshold above which refactorization is performed to change rho parameter.

  • refactor_rho_threshold – new rho parameter used if the refactor_dual_feasibility_threshold_ condition has been satisfied.

  • mu_min_eq – minimal authorized value for mu_eq.

  • mu_min_in – minimal authorized value for mu_in.

  • mu_max_eq_inv – maximal authorized value for the inverse of mu_eq_inv.

  • mu_max_in_inv – maximal authorized value for the inverse of mu_in_inv.

  • mu_update_factor – update factor used for updating mu_eq and mu_in.

  • mu_update_inv_factor – update factor used for updating mu_eq_inv and mu_in_inv.

  • cold_reset_mu_eq – value used for cold restarting mu_eq.

  • cold_reset_mu_in – value used for cold restarting mu_in.

  • cold_reset_mu_eq_inv – value used for cold restarting mu_eq_inv.

  • cold_reset_mu_in_inv – value used for cold restarting mu_in_inv.

  • eps_abs – asbolute stopping criterion of the solver.

  • eps_rel – relative stopping criterion of the solver.

  • max_iter – maximal number of authorized iteration.

  • max_iter_in – maximal number of authorized iterations for an inner loop.

  • nb_iterative_refinement – number of iterative refinements.

  • eps_refact – threshold value for refactorizing the ldlt factorization in the iterative refinement loop.

  • safe_guard – safeguard parameter ensuring global convergence of ProxQP scheme.

  • VERBOSE – if set to true, the solver prints information at each loop.

  • initial_guess – sets the initial guess option for initilizing x, y and z.

  • update_preconditioner – If set to true, the preconditioner will be re-derived with the update method.

  • compute_preconditioner – If set to true, the preconditioner will be derived with the init method.

  • compute_timings – If set to true, timings will be computed by the solver (setup time, solving time, and run time = setup time + solving time).

  • check_duality_gap – If set to true, duality gap will be calculated and included in the stopping criterion.

  • eps_duality_gap_abs – absolute duality-gap stopping criterion.

  • eps_duality_gap_rel – relative duality-gap stopping criterion.

  • preconditioner_max_iter – maximal number of authorized iterations for the preconditioner.

  • preconditioner_accuracy – accuracy level of the preconditioner.

  • eps_primal_inf – threshold under which primal infeasibility is detected.

  • eps_dual_inf – threshold under which dual infeasibility is detected.

  • bcl_update – if set to true, BCL strategy is used for calibrating mu_eq and mu_in. If set to false, a strategy developped by Martinez & al is used.

  • sparse_backend – Default automatic. User can choose between sparse cholesky or iterative matrix free sparse backend.

Public Members

T default_rho
T default_mu_eq
T default_mu_in
T alpha_bcl
T beta_bcl
T refactor_dual_feasibility_threshold
T refactor_rho_threshold
T mu_min_eq
T mu_min_in
T mu_max_eq_inv
T mu_max_in_inv
T mu_update_factor
T mu_update_inv_factor
T cold_reset_mu_eq
T cold_reset_mu_in
T cold_reset_mu_eq_inv
T cold_reset_mu_in_inv
T eps_abs
T eps_rel
isize max_iter
isize max_iter_in
isize safe_guard
isize nb_iterative_refinement
T eps_refact
bool verbose
InitialGuessStatus initial_guess
bool update_preconditioner
bool compute_preconditioner
bool compute_timings
bool check_duality_gap
T eps_duality_gap_abs
T eps_duality_gap_rel
isize preconditioner_max_iter
T preconditioner_accuracy
T eps_primal_inf
T eps_dual_inf
bool bcl_update
MeritFunctionType merit_function_type
T alpha_gpdal
ProblemType problem_type
SparseBackend sparse_backend