proxsuite 0.6.7
The Advanced Proximal Optimization Toolbox
Loading...
Searching...
No Matches
proxsuite::proxqp::sparse::detail Namespace Reference

Classes

struct  AugmentedKkt
 

Typedefs

template<typename T >
using VecMapMut
 
template<typename T >
using VecMap
 

Functions

template<typename T , typename I >
VEG_NO_INLINE void noalias_gevmmv_add_impl (VectorViewMut< T > out_l, VectorViewMut< T > out_r, proxsuite::linalg::sparse::MatRef< T, I > a, VectorView< T > in_l, VectorView< T > in_r)
 
template<typename T , typename I >
VEG_NO_INLINE void noalias_symhiv_add_impl (VectorViewMut< T > out, proxsuite::linalg::sparse::MatRef< T, I > a, VectorView< T > in)
 
template<typename OutL , typename OutR , typename A , typename InL , typename InR >
void noalias_gevmmv_add (OutL &&out_l, OutR &&out_r, A const &a, InL const &in_l, InR const &in_r)
 
template<typename Out , typename A , typename In >
void noalias_symhiv_add (Out &&out, A const &a, In const &in)
 
template<typename V >
auto vec (V const &v) -> VecMap< typename V::Scalar >
 
template<typename V >
auto vec_mut (V &&v) -> VecMapMut< typename proxsuite::linalg::veg::uncvref_t< V >::Scalar >
 
template<typename T , typename I >
auto middle_cols (proxsuite::linalg::sparse::MatRef< T, I > mat, isize start, isize ncols, isize nnz) -> proxsuite::linalg::sparse::MatRef< T, I >
 
template<typename T , typename I >
auto middle_cols_mut (proxsuite::linalg::sparse::MatMut< T, I > mat, isize start, isize ncols, isize nnz) -> proxsuite::linalg::sparse::MatMut< T, I >
 
template<typename T , typename I >
auto top_rows_unchecked (proxsuite::linalg::veg::Unsafe, proxsuite::linalg::sparse::MatRef< T, I > mat, isize nrows) -> proxsuite::linalg::sparse::MatRef< T, I >
 
template<typename T , typename I >
auto top_rows_mut_unchecked (proxsuite::linalg::veg::Unsafe, proxsuite::linalg::sparse::MatMut< T, I > mat, isize nrows) -> proxsuite::linalg::sparse::MatMut< T, I >
 
template<typename T , typename I , typename P >
bool global_primal_residual_infeasibility (VectorViewMut< T > ATdy, VectorViewMut< T > CTdz, VectorViewMut< T > dy, VectorViewMut< T > dz, const QpView< T, I > qp_scaled, const Settings< T > &qpsettings, const P &ruiz)
 
template<typename T , typename I , typename P >
bool global_dual_residual_infeasibility (VectorViewMut< T > Adx, VectorViewMut< T > Cdx, VectorViewMut< T > Hdx, VectorViewMut< T > dx, const QpView< T, I > qp_scaled, const Settings< T > &qpsettings, const Model< T, I > &qpmodel, const P &ruiz)
 
template<typename T , typename I , typename P >
auto unscaled_primal_dual_residual (Workspace< T, I > &work, Results< T > &results, const Settings< T > &settings, VecMapMut< T > primal_residual_eq_scaled, VecMapMut< T > primal_residual_in_scaled_lo, VecMapMut< T > primal_residual_in_scaled_up, VecMapMut< T > dual_residual_scaled, T &primal_feasibility_eq_rhs_0, T &primal_feasibility_in_rhs_0, T &dual_feasibility_rhs_0, T &dual_feasibility_rhs_1, T &dual_feasibility_rhs_3, T &rhs_duality_gap, const P &precond, Model< T, I > const &data, const QpView< T, I > qp_scaled, VecMapMut< T > x_e, VecMapMut< T > y_e, VecMapMut< T > z_e, proxsuite::linalg::veg::dynstack::DynStackMut stack) -> proxsuite::linalg::veg::Tuple< T, T >
 

Typedef Documentation

◆ VecMapMut

template<typename T >
using proxsuite::proxqp::sparse::detail::VecMapMut
Initial value:
Eigen::Map<Eigen::Matrix<T, Eigen::Dynamic, 1>,
Eigen::Unaligned,
Eigen::Stride<Eigen::Dynamic, 1>>

Definition at line 334 of file utils.hpp.

◆ VecMap

template<typename T >
using proxsuite::proxqp::sparse::detail::VecMap
Initial value:
Eigen::Map<Eigen::Matrix<T, Eigen::Dynamic, 1> const,
Eigen::Unaligned,
Eigen::Stride<Eigen::Dynamic, 1>>

Definition at line 338 of file utils.hpp.

Function Documentation

◆ noalias_gevmmv_add_impl()

template<typename T , typename I >
VEG_NO_INLINE void proxsuite::proxqp::sparse::detail::noalias_gevmmv_add_impl ( VectorViewMut< T > out_l,
VectorViewMut< T > out_r,
proxsuite::linalg::sparse::MatRef< T, I > a,
VectorView< T > in_l,
VectorView< T > in_r )

Definition at line 108 of file utils.hpp.

◆ noalias_symhiv_add_impl()

template<typename T , typename I >
VEG_NO_INLINE void proxsuite::proxqp::sparse::detail::noalias_symhiv_add_impl ( VectorViewMut< T > out,
proxsuite::linalg::sparse::MatRef< T, I > a,
VectorView< T > in )

Definition at line 181 of file utils.hpp.

◆ noalias_gevmmv_add()

template<typename OutL , typename OutR , typename A , typename InL , typename InR >
void proxsuite::proxqp::sparse::detail::noalias_gevmmv_add ( OutL && out_l,
OutR && out_r,
A const & a,
InL const & in_l,
InR const & in_r )

Definition at line 261 of file utils.hpp.

◆ noalias_symhiv_add()

template<typename Out , typename A , typename In >
void proxsuite::proxqp::sparse::detail::noalias_symhiv_add ( Out && out,
A const & a,
In const & in )

Definition at line 278 of file utils.hpp.

◆ vec()

template<typename V >
auto proxsuite::proxqp::sparse::detail::vec ( V const & v) -> VecMap<typename V::Scalar>

Definition at line 344 of file utils.hpp.

◆ vec_mut()

template<typename V >
auto proxsuite::proxqp::sparse::detail::vec_mut ( V && v) -> VecMapMut<typename proxsuite::linalg::veg::uncvref_t<V>::Scalar>

Definition at line 360 of file utils.hpp.

◆ middle_cols()

template<typename T , typename I >
auto proxsuite::proxqp::sparse::detail::middle_cols ( proxsuite::linalg::sparse::MatRef< T, I > mat,
isize start,
isize ncols,
isize nnz ) -> proxsuite::linalg::sparse::MatRef<T, I>

Definition at line 378 of file utils.hpp.

◆ middle_cols_mut()

template<typename T , typename I >
auto proxsuite::proxqp::sparse::detail::middle_cols_mut ( proxsuite::linalg::sparse::MatMut< T, I > mat,
isize start,
isize ncols,
isize nnz ) -> proxsuite::linalg::sparse::MatMut<T, I>

Definition at line 400 of file utils.hpp.

◆ top_rows_unchecked()

template<typename T , typename I >
auto proxsuite::proxqp::sparse::detail::top_rows_unchecked ( proxsuite::linalg::veg::Unsafe ,
proxsuite::linalg::sparse::MatRef< T, I > mat,
isize nrows ) -> proxsuite::linalg::sparse::MatRef<T, I>

Definition at line 421 of file utils.hpp.

◆ top_rows_mut_unchecked()

template<typename T , typename I >
auto proxsuite::proxqp::sparse::detail::top_rows_mut_unchecked ( proxsuite::linalg::veg::Unsafe ,
proxsuite::linalg::sparse::MatMut< T, I > mat,
isize nrows ) -> proxsuite::linalg::sparse::MatMut<T, I>

Definition at line 440 of file utils.hpp.

◆ global_primal_residual_infeasibility()

template<typename T , typename I , typename P >
bool proxsuite::proxqp::sparse::detail::global_primal_residual_infeasibility ( VectorViewMut< T > ATdy,
VectorViewMut< T > CTdz,
VectorViewMut< T > dy,
VectorViewMut< T > dz,
const QpView< T, I > qp_scaled,
const Settings< T > & qpsettings,
const P & ruiz )

Check whether the global primal infeasibility criterion is satisfied.

Parameters
qp_scaledview on the scaled version of the qp problem.
qpsettingssolver settings.
ruizruiz preconditioner.
ATdyvariable used for testing global primal infeasibility criterion is satisfied.
CTdzvariable used for testing global primal infeasibility criterion is satisfied.
dyvariable used for testing global primal infeasibility criterion is satisfied.
dzvariable used for testing global primal infeasibility criterion is satisfied.

Definition at line 473 of file utils.hpp.

◆ global_dual_residual_infeasibility()

template<typename T , typename I , typename P >
bool proxsuite::proxqp::sparse::detail::global_dual_residual_infeasibility ( VectorViewMut< T > Adx,
VectorViewMut< T > Cdx,
VectorViewMut< T > Hdx,
VectorViewMut< T > dx,
const QpView< T, I > qp_scaled,
const Settings< T > & qpsettings,
const Model< T, I > & qpmodel,
const P & ruiz )

Check whether the global dual infeasibility criterion is satisfied.

Parameters
qp_scaledview on the scaled version of the qp problem.
qpsettingssolver settings.
qpmodelQP problem model as defined by the user (without any scaling performed).
ruizruiz preconditioner.
Adxvariable used for testing global dual infeasibility criterion is satisfied.
Cdxvariable used for testing global dual infeasibility criterion is satisfied.
Hdxvariable used for testing global dual infeasibility criterion is satisfied.
dxvariable used for testing global dual infeasibility criterion is satisfied.

Definition at line 529 of file utils.hpp.

◆ unscaled_primal_dual_residual()

template<typename T , typename I , typename P >
auto proxsuite::proxqp::sparse::detail::unscaled_primal_dual_residual ( Workspace< T, I > & work,
Results< T > & results,
const Settings< T > & settings,
VecMapMut< T > primal_residual_eq_scaled,
VecMapMut< T > primal_residual_in_scaled_lo,
VecMapMut< T > primal_residual_in_scaled_up,
VecMapMut< T > dual_residual_scaled,
T & primal_feasibility_eq_rhs_0,
T & primal_feasibility_in_rhs_0,
T & dual_feasibility_rhs_0,
T & dual_feasibility_rhs_1,
T & dual_feasibility_rhs_3,
T & rhs_duality_gap,
const P & precond,
Model< T, I > const & data,
const QpView< T, I > qp_scaled,
VecMapMut< T > x_e,
VecMapMut< T > y_e,
VecMapMut< T > z_e,
proxsuite::linalg::veg::dynstack::DynStackMut stack ) -> proxsuite::linalg::veg::Tuple<T, T>

Derives the global primal and dual residual of the QP problem for determining whether the solution is reached (at the desired accuracy).

Parameters
primal_residual_eq_scaledvector storing the primal equality residual.
primal_residual_in_scaled_lovector storing the primal lower bound inequality residual.
primal_residual_in_scaled_upvector storing the primal uppder bound inequality residual.
dual_residual_scaledvector storing the dual residual.
primal_feasibility_eq_rhs_0scalar variable used when using a relative stopping criterion.
primal_feasibility_in_rhs_0scalar variable used when using a relative stopping criterion.
dual_feasibility_rhs_0scalar variable used when using a relative stopping criterion.
dual_feasibility_rhs_1scalar variable used when using a relative stopping criterion.
dual_feasibility_rhs_3scalar variable used when using a relative stopping criterion.
precondpreconditioner.
datamodel of the problem.
qp_scaledview on the scaled version of the qp problem.
x_ecurrent estimate of primal variable x.
y_ecurrent estimate of equality constrained lagrange multiplier.
z_ecurrent estimate of inequality constrained lagrange multiplier.
stakstack.

Definition at line 616 of file utils.hpp.