qpmad
Eigen-based C++ QP solver.
Loading...
Searching...
No Matches
qpmad::FactorizationData< t_Scalar, t_primal_size > Class Template Reference

#include <factorization_data.h>

Public Member Functions

void reserve (const MatrixIndex primal_size)
template<class t_MatrixType>
void initialize (t_MatrixType &H, const SolverParameters::HessianType hessian_type, const MatrixIndex primal_size, const bool return_inverted_cholesky_factor)
bool update (const MatrixIndex R_col, const bool is_simple, const double tolerance)
void downdate (const MatrixIndex R_col_index, const MatrixIndex R_cols)
template<class t_VectorType>
void computeEqualityPrimalStep (t_VectorType &step_direction, const MatrixIndex simple_bound_index, const MatrixIndex active_set_size)
template<class t_VectorType, class t_RowVectorType>
void computeEqualityPrimalStep (t_VectorType &step_direction, const t_RowVectorType &ctr, const MatrixIndex active_set_size)
template<class t_VectorType0, class t_ActiveSet>
void computeInequalityPrimalStep (t_VectorType0 &primal_step_direction, const t_ActiveSet &active_set)
template<class t_VectorType, class t_MatrixType, class t_ActiveSet>
void computeInequalityDualStep (t_VectorType &dual_step_direction, const ChosenConstraint &chosen_ctr, const t_MatrixType &A, const t_ActiveSet &active_set)
template<class t_VectorType0, class t_VectorType1, class t_ActiveSet>
void updateStepsAfterPartialStep (t_VectorType0 &primal_step_direction, t_VectorType1 &dual_step_direction, const t_ActiveSet &active_set)
template<class t_VectorType0, class t_VectorType1, class t_ActiveSet>
void updateStepsAfterPureDualStep (t_VectorType0 &primal_step_direction, t_VectorType1 &dual_step_direction, const t_ActiveSet &active_set)

Public Attributes

Eigen::Matrix< t_Scalar, t_primal_size, t_primal_size > QLi_aka_J
Eigen::Matrix< t_Scalar, t_primal_size, Eigen::Dynamic==t_primal_size ? Eigen::Dynamic :t_primal_size+1 > R
MatrixIndex primal_size_
MatrixIndex length_nonzero_head_d_

Private Member Functions

template<class t_VectorType>
void computePrimalStepDirection (t_VectorType &step_direction, const MatrixIndex active_set_size)
template<class t_VectorType, class t_ActiveSet>
void computeDualStepDirection (t_VectorType &step_direction, const t_ActiveSet &active_set)

Detailed Description

template<typename t_Scalar, int t_primal_size>
class qpmad::FactorizationData< t_Scalar, t_primal_size >

Definition at line 17 of file factorization_data.h.

Member Function Documentation

◆ computeDualStepDirection()

template<typename t_Scalar, int t_primal_size>
template<class t_VectorType, class t_ActiveSet>
void qpmad::FactorizationData< t_Scalar, t_primal_size >::computeDualStepDirection ( t_VectorType & step_direction,
const t_ActiveSet & active_set )
inlineprivate

Definition at line 260 of file factorization_data.h.

◆ computeEqualityPrimalStep() [1/2]

template<typename t_Scalar, int t_primal_size>
template<class t_VectorType>
void qpmad::FactorizationData< t_Scalar, t_primal_size >::computeEqualityPrimalStep ( t_VectorType & step_direction,
const MatrixIndex simple_bound_index,
const MatrixIndex active_set_size )
inline

Definition at line 151 of file factorization_data.h.

◆ computeEqualityPrimalStep() [2/2]

template<typename t_Scalar, int t_primal_size>
template<class t_VectorType, class t_RowVectorType>
void qpmad::FactorizationData< t_Scalar, t_primal_size >::computeEqualityPrimalStep ( t_VectorType & step_direction,
const t_RowVectorType & ctr,
const MatrixIndex active_set_size )
inline

Definition at line 164 of file factorization_data.h.

◆ computeInequalityDualStep()

template<typename t_Scalar, int t_primal_size>
template<class t_VectorType, class t_MatrixType, class t_ActiveSet>
void qpmad::FactorizationData< t_Scalar, t_primal_size >::computeInequalityDualStep ( t_VectorType & dual_step_direction,
const ChosenConstraint & chosen_ctr,
const t_MatrixType & A,
const t_ActiveSet & active_set )
inline

Definition at line 185 of file factorization_data.h.

◆ computeInequalityPrimalStep()

template<typename t_Scalar, int t_primal_size>
template<class t_VectorType0, class t_ActiveSet>
void qpmad::FactorizationData< t_Scalar, t_primal_size >::computeInequalityPrimalStep ( t_VectorType0 & primal_step_direction,
const t_ActiveSet & active_set )
inline

Definition at line 177 of file factorization_data.h.

◆ computePrimalStepDirection()

template<typename t_Scalar, int t_primal_size>
template<class t_VectorType>
void qpmad::FactorizationData< t_Scalar, t_primal_size >::computePrimalStepDirection ( t_VectorType & step_direction,
const MatrixIndex active_set_size )
inlineprivate

Definition at line 251 of file factorization_data.h.

◆ downdate()

template<typename t_Scalar, int t_primal_size>
void qpmad::FactorizationData< t_Scalar, t_primal_size >::downdate ( const MatrixIndex R_col_index,
const MatrixIndex R_cols )
inline

Definition at line 133 of file factorization_data.h.

◆ initialize()

template<typename t_Scalar, int t_primal_size>
template<class t_MatrixType>
void qpmad::FactorizationData< t_Scalar, t_primal_size >::initialize ( t_MatrixType & H,
const SolverParameters::HessianType hessian_type,
const MatrixIndex primal_size,
const bool return_inverted_cholesky_factor )
inline

Definition at line 41 of file factorization_data.h.

◆ reserve()

template<typename t_Scalar, int t_primal_size>
void qpmad::FactorizationData< t_Scalar, t_primal_size >::reserve ( const MatrixIndex primal_size)
inline

Definition at line 30 of file factorization_data.h.

◆ update()

template<typename t_Scalar, int t_primal_size>
bool qpmad::FactorizationData< t_Scalar, t_primal_size >::update ( const MatrixIndex R_col,
const bool is_simple,
const double tolerance )
inline

Definition at line 73 of file factorization_data.h.

◆ updateStepsAfterPartialStep()

template<typename t_Scalar, int t_primal_size>
template<class t_VectorType0, class t_VectorType1, class t_ActiveSet>
void qpmad::FactorizationData< t_Scalar, t_primal_size >::updateStepsAfterPartialStep ( t_VectorType0 & primal_step_direction,
t_VectorType1 & dual_step_direction,
const t_ActiveSet & active_set )
inline

Definition at line 228 of file factorization_data.h.

◆ updateStepsAfterPureDualStep()

template<typename t_Scalar, int t_primal_size>
template<class t_VectorType0, class t_VectorType1, class t_ActiveSet>
void qpmad::FactorizationData< t_Scalar, t_primal_size >::updateStepsAfterPureDualStep ( t_VectorType0 & primal_step_direction,
t_VectorType1 & dual_step_direction,
const t_ActiveSet & active_set )
inline

Definition at line 239 of file factorization_data.h.

Member Data Documentation

◆ length_nonzero_head_d_

template<typename t_Scalar, int t_primal_size>
MatrixIndex qpmad::FactorizationData< t_Scalar, t_primal_size >::length_nonzero_head_d_

Definition at line 26 of file factorization_data.h.

◆ primal_size_

template<typename t_Scalar, int t_primal_size>
MatrixIndex qpmad::FactorizationData< t_Scalar, t_primal_size >::primal_size_

Definition at line 22 of file factorization_data.h.

◆ QLi_aka_J

template<typename t_Scalar, int t_primal_size>
Eigen::Matrix<t_Scalar, t_primal_size, t_primal_size> qpmad::FactorizationData< t_Scalar, t_primal_size >::QLi_aka_J

Definition at line 20 of file factorization_data.h.

◆ R

template<typename t_Scalar, int t_primal_size>
Eigen::Matrix<t_Scalar, t_primal_size, Eigen::Dynamic == t_primal_size ? Eigen::Dynamic : t_primal_size + 1> qpmad::FactorizationData< t_Scalar, t_primal_size >::R

Definition at line 21 of file factorization_data.h.


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