38 #ifndef QPOASES_SQPROBLEMSCHUR_HPP 39 #define QPOASES_SQPROBLEMSCHUR_HPP 42 #include <qpOASES/SQProblem.hpp> 45 #ifdef __USE_SINGLE_PRECISION__ 87 void dtrtrs_(
const char *UPLO,
const char *
TRANS,
const char *DIAG,
const unsigned long *
N,
const unsigned long *NRHS,
88 double *
A,
const unsigned long *LDA,
double *B,
const unsigned long *LDB,
long *INFO );
90 void strtrs_(
const char *UPLO,
const char *TRANS,
const char *DIAG,
const unsigned long *N,
const unsigned long *NRHS,
91 float *A,
const unsigned long *LDA,
float *B,
const unsigned long *LDB,
long *INFO );
94 void dtrcon_(
const char *NORM,
const char *UPLO,
const char *DIAG,
const unsigned long *N,
double *A,
const unsigned long *LDA,
95 double *RCOND,
double *
WORK,
const unsigned long *IWORK,
long *INFO );
97 void strcon_(
const char *NORM,
const char *UPLO,
const char *DIAG,
const unsigned long *N,
float *A,
const unsigned long *LDA,
98 float *RCOND,
float *WORK,
const unsigned long *IWORK,
long *INFO );
135 int_t maxSchurUpdates = 75
329 const real_t*
const delta_lbA,
330 const real_t*
const delta_ubA,
331 const real_t*
const delta_lb,
332 const real_t*
const delta_ub,
342 const real_t*
const delta_lbA,
343 const real_t*
const delta_ubA,
344 const real_t*
const delta_lb,
345 const real_t*
const delta_ub,
411 const real_t*
const delta_lbA,
const real_t*
const delta_ubA,
412 const real_t*
const delta_lb,
const real_t*
const delta_ub,
468 #include <qpOASES/SQProblemSchur.ipp>
returnValue stepCalcBacksolveSchur(int_t nFR, int_t nFX, int_t nAC, int_t *FR_idx, int_t *FX_idx, int_t *AC_idx, int_t dim, real_t *rhs, real_t *sol)
virtual returnValue addBound(int_t number, SubjectToStatus B_status, BooleanType updateCholesky, BooleanType ensureLI=BT_TRUE)
Manages working sets of constraints.
virtual returnValue setupTQfactorisation()
returnValue deleteFromSchurComplement(int_t idx, BooleanType allowUndo=BT_FALSE)
virtual returnValue backsolveT(const real_t *const b, BooleanType transposed, real_t *const a) const
returnValue undoDeleteFromSchurComplement(int_t idx)
Implements the online active set strategy for QPs with varying matrices.
Allows to pass back messages to the calling function.
virtual returnValue addConstraint_checkLI(int_t number)
virtual returnValue computeProjectedCholesky()
returnValue resetSchurComplement(BooleanType allowInertiaCorrection)
returnValue computeMTimes(real_t alpha, const real_t *const x, real_t beta, real_t *const y)
SparseSolver * sparseSolver
void dtrcon_(const char *NORM, const char *UPLO, const char *DIAG, const unsigned long *N, double *A, const unsigned long *LDA, double *RCOND, double *WORK, const unsigned long *IWORK, long *INFO)
void strtrs_(const char *UPLO, const char *TRANS, const char *DIAG, const unsigned long *N, const unsigned long *NRHS, float *A, const unsigned long *LDA, float *B, const unsigned long *LDB, long *INFO)
virtual returnValue determineStepDirection2(const real_t *const delta_g, const real_t *const delta_lbA, const real_t *const delta_ubA, const real_t *const delta_lb, const real_t *const delta_ub, BooleanType Delta_bC_isZero, BooleanType Delta_bB_isZero, real_t *const delta_xFX, real_t *const delta_xFR, real_t *const delta_yAC, real_t *const delta_yFX)
real_t calcDetSchur(int_t idxDel)
virtual returnValue reset()
returnValue addToSchurComplement(int_t number, SchurUpdateType update, int_t numNonzerosM, const sparse_int_t *M_pos, const real_t *const M_vals, int_t numNonzerosN, const sparse_int_t *Npos, const real_t *const Nvals, real_t N_diag)
returnValue correctInertia()
virtual returnValue addBound_ensureLI(int_t number, SubjectToStatus B_status)
virtual SQProblemSchur & operator=(const SQProblemSchur &rhs)
virtual returnValue addBound_checkLI(int_t number)
returnValue updateSchurQR(int_t idxDel)
Indexlist constraintsActiveStart
virtual ~SQProblemSchur()
returnValue stepCalcRhs(int_t nFR, int_t nFX, int_t nAC, int_t *FR_idx, int_t *FX_idx, int_t *AC_idx, real_t &rhs_max, const real_t *const delta_g, const real_t *const delta_lbA, const real_t *const delta_ubA, const real_t *const delta_lb, const real_t *const delta_ub, BooleanType Delta_bC_isZero, BooleanType Delta_bB_isZero, real_t *const delta_xFX, real_t *const delta_xFR, real_t *const delta_yAC, real_t *const delta_yFX)
returnValue repairSingularWorkingSet()
returnValue stepCalcResid(int_t nFR, int_t nFX, int_t nAC, int_t *FR_idx, int_t *FX_idx, int_t *AC_idx, BooleanType Delta_bC_isZero, real_t *const delta_xFX, real_t *const delta_xFR, real_t *const delta_yAC, const real_t *const delta_g, const real_t *const delta_lbA, const real_t *const delta_ubA, real_t &rnrm)
virtual returnValue addConstraint_ensureLI(int_t number, SubjectToStatus C_status)
Provides additional tools for analysing QP solutions.
virtual returnValue addConstraint(int_t number, SubjectToStatus C_status, BooleanType updateCholesky, BooleanType ensureLI=BT_TRUE)
SchurUpdateType * schurUpdate
returnValue addConstraint_checkLISchur(int_t number, real_t *const xiC, real_t *const xiX)
Abstract base class for interfacing tailored matrix-vector operations.
virtual returnValue setupAuxiliaryWorkingSet(const Bounds *const auxiliaryBounds, const Constraints *const auxiliaryConstraints, BooleanType setupAfresh)
BEGIN_NAMESPACE_QPOASES const char *const TRANS
virtual returnValue determineStepDirection(const real_t *const delta_g, const real_t *const delta_lbA, const real_t *const delta_ubA, const real_t *const delta_lb, const real_t *const delta_ub, BooleanType Delta_bC_isZero, BooleanType Delta_bB_isZero, real_t *const delta_xFX, real_t *const delta_xFR, real_t *const delta_yAC, real_t *const delta_yFX)
void rhs(const real_t *x, real_t *f)
#define END_NAMESPACE_QPOASES
returnValue stepCalcReorder2(int_t nFR, int_t nAC, int_t *FR_idx, int_t *AC_idx, int_t nFRStart, int_t nACStart, int_t *FR_idxStart, int_t *AC_idxStart, int_t *FR_iSort, int_t *FR_iSortStart, int_t *AC_iSort, int_t *AC_iSortStart, real_t *sol, real_t *const delta_xFR, real_t *const delta_yAC)
virtual returnValue removeConstraint(int_t number, BooleanType updateCholesky, BooleanType allowFlipping=BT_FALSE, BooleanType ensureNZC=BT_FALSE)
returnValue computeMTransTimes(real_t alpha, const real_t *const x, real_t beta, real_t *const y)
returnValue copy(const SQProblemSchur &rhs)
Generic interface for sparse solvers to be coupled with ACADO Toolkit.
Stores and manages index lists.
virtual returnValue setupAuxiliaryQP(SymmetricMatrix *H_new, Matrix *A_new, const real_t *lb_new, const real_t *ub_new, const real_t *lbA_new, const real_t *ubA_new)
Indexlist boundsFreeStart
virtual returnValue backsolveR(const real_t *const b, BooleanType transposed, real_t *const a) const
virtual returnValue removeBound(int_t number, BooleanType updateCholesky, BooleanType allowFlipping=BT_FALSE, BooleanType ensureNZC=BT_FALSE)
virtual returnValue computeInitialCholesky()
returnValue addBound_checkLISchur(int_t number, real_t *const xiC, real_t *const xiX)
Manages working sets of bounds (= box constraints).
Implements the online active set strategy for QPs with varying, sparse matrices.
#define BEGIN_NAMESPACE_QPOASES
void strcon_(const char *NORM, const char *UPLO, const char *DIAG, const unsigned long *N, float *A, const unsigned long *LDA, float *RCOND, float *WORK, const unsigned long *IWORK, long *INFO)
returnValue stepCalcDeltayFx(int_t nFR, int_t nFX, int_t nAC, int_t *FX_idx, const real_t *const delta_g, real_t *const delta_xFX, real_t *const delta_xFR, real_t *const delta_yAC, real_t *const delta_yFX)
int_t getNumFactorizations() const
void dtrtrs_(const char *UPLO, const char *TRANS, const char *DIAG, const unsigned long *N, const unsigned long *NRHS, double *A, const unsigned long *LDA, double *B, const unsigned long *LDB, long *INFO)
returnValue backsolveSchurQR(int_t dimS, const real_t *const rhs, int_t dimRhs, real_t *const sol)
returnValue stepCalcReorder(int_t nFR, int_t nAC, int_t *FR_idx, int_t *AC_idx, int_t nFRStart, int_t nACStart, int_t *FR_idxStart, int_t *AC_idxStart, int_t *FR_iSort, int_t *FR_iSortStart, int_t *AC_iSort, int_t *AC_iSortStart, real_t *rhs)
Abstract base class for interfacing matrix-vector operations tailored to symmetric matrices...