qpmad
Eigen-based C++ QP solver.
Public Member Functions | Public Attributes | Private Member Functions | List of all members
qpmad::FactorizationData< t_Scalar, t_primal_size > Class Template Reference

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.

#include <factorization_data.h>

Public Member Functions

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)
 

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 255 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 146 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 159 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 180 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 172 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 246 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 128 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 31 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 68 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 223 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 234 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: