Template Struct Workspace

Struct Documentation

template<typename T, typename I>
struct Workspace

This class defines the workspace of the sparse solver.

Workspace class of the sparse solver.

Public Functions

inline void setup_symbolic_factorizaton(Model<T, I> &data, proxsuite::linalg::sparse::SymbolicMatRef<I> H, proxsuite::linalg::sparse::SymbolicMatRef<I> AT, proxsuite::linalg::sparse::SymbolicMatRef<I> CT)

Constructor using the symbolic factorization.

Parameters:
  • results – solver’s results.

  • data – solver’s model.

  • settings – solver’s settings.

  • precond_req – storage requirements for the solver’s preconditioner.

  • H – symbolic structure of the quadratic cost input defining the QP model.

  • A – symbolic structure of the equality constraint matrix input defining the QP model.

  • C – symbolic structure of the inequality constraint matrix input defining the QP model.

template<typename P>
inline void setup_impl(const QpView<T, I> qp, Model<T, I> &data, const Settings<T> &settings, bool execute_or_not, P &precond, proxsuite::linalg::veg::dynstack::StackReq precond_req)

Constructor.

Parameters:
  • qp – view on the qp problem.

  • data – solver’s model.

  • settings – solver’s settings.

  • execute_or_not – boolean option for execturing or not the preconditioner for scaling the problem (and reduce its ill conditioning).

  • precond – preconditioner chosen for the solver.

  • precond_req – storage requirements for the solver’s preconditioner.

Workspace() = default
inline auto ldl_col_ptrs() const -> I const*
inline auto ldl_col_ptrs_mut() -> I*
inline auto stack_mut() -> proxsuite::linalg::veg::dynstack::DynStackMut
inline void set_dirty()

Public Members

proxsuite::linalg::veg::Vec<proxsuite::linalg::veg::mem::byte> storage
Ldlt<T, I> ldl
bool do_ldlt
bool do_symbolic_fact
Eigen::Matrix<T, Eigen::Dynamic, 1> g_scaled
Eigen::Matrix<T, Eigen::Dynamic, 1> b_scaled
Eigen::Matrix<T, Eigen::Dynamic, 1> l_scaled
Eigen::Matrix<T, Eigen::Dynamic, 1> u_scaled
proxsuite::linalg::veg::Vec<I> kkt_nnz_counts
std::unique_ptr<detail::AugmentedKkt<T, I>> matrix_free_kkt
std::unique_ptr<Eigen::MINRES<detail::AugmentedKkt<T, I>, Eigen::Upper | Eigen::Lower, Eigen::IdentityPreconditioner>> matrix_free_solver
bool dirty
bool proximal_parameter_update
bool is_initialized
struct proxsuite::proxqp::sparse::Workspace internal
VecBool active_set_up
VecBool active_set_low
proxsuite::linalg::veg::Vec<bool> active_inequalities
isize lnnz
Timer<T> timer