33 #include <EXTRAS/SolutionAnalysis.hpp> 81 register int run1, run2, run3;
83 register int nFR, nFX;
101 for( run1 = 0; run1 <
NVMAX; run1++ )
104 for( run1 = 0; run1 <
NVMAX; run1++ )
107 for( run1 = 0; run1 <
NVMAX; run1++ )
110 for( run1 = 0; run1 <
NCMAX; run1++ )
113 for( run1 = 0; run1 <
NCMAX; run1++ )
132 for( run3 = 0; run3 <
NVMAX; run3++ )
141 Delta_bC_isZero, Delta_bB_isZero,
150 for( run1 = 0; run1 < nFR; run1++ )
154 hessianInverse[run3 * NVMAX + run2] =
delta_xFR[ run1 ];
157 for( run1 = 0; run1 < nFX; run1++ )
161 hessianInverse[run3 * NVMAX + run2] =
delta_xFX[ run1 ];
181 register int run1, run2, run3;
183 register int nFR, nFX;
198 for( run1 = 0; run1 <
NVMAX; run1++ )
201 for( run1 = 0; run1 <
NVMAX; run1++ )
204 for( run1 = 0; run1 <
NVMAX; run1++ )
223 for( run3 = 0; run3 <
NVMAX; run3++ )
241 for( run1 = 0; run1 < nFR; run1++ )
245 hessianInverse[run3 * NVMAX + run2] =
delta_xFR[ run1 ];
248 for( run1 = 0; run1 < nFX; run1++ )
252 hessianInverse[run3 * NVMAX + run2] =
delta_xFX[ run1 ];
268 #if QPOASES_USE_OLD_VERSION 272 int run1, run2, run3;
299 for( run1 = 0; run1 < KKT_DIM * KKT_DIM; run1++ )
302 Primal_Dual_VAR[run1] = 0.0;
314 for( run3 = 0; run3 < KKT_DIM; run3++ )
317 for( run1 = 0; run1 <
NVMAX; run1++ )
319 delta_g_cov [run1] = g_b_bA_VAR[run3*KKT_DIM+run1];
320 delta_lb_cov [run1] = g_b_bA_VAR[run3*KKT_DIM+NVMAX+run1];
321 delta_ub_cov [run1] = g_b_bA_VAR[run3*KKT_DIM+NVMAX+run1];
323 for( run1 = 0; run1 <
NCMAX; run1++ )
325 delta_lbA_cov [run1] = g_b_bA_VAR[run3*KKT_DIM+2*NVMAX+run1];
326 delta_ubA_cov [run1] = g_b_bA_VAR[run3*KKT_DIM+2*NVMAX+run1];
351 for( run1=0; run1<nFR; run1++ )
356 for( run1=0; run1<nFX; run1++ )
360 K[run3*KKT_DIM+NVMAX+run2] =
delta_yFX[run1];
362 for( run1=0; run1<nAC; run1++ )
365 K[run3*KKT_DIM+2*NVMAX+run2] =
delta_yAC[run1];
377 for( run3 = 0; run3 < KKT_DIM; run3++ )
380 for( run1 = 0; run1 <
NVMAX; run1++ )
386 for( run1 = 0; run1 <
NCMAX; run1++ )
413 for( run1=0; run1<nFR; run1++ )
416 Primal_Dual_VAR[run3+run2*KKT_DIM] =
delta_xFR[run1];
418 for( run1=0; run1<nFX; run1++ )
421 Primal_Dual_VAR[run3+run2*KKT_DIM ] =
delta_xFX[run1];
422 Primal_Dual_VAR[run3+(NVMAX+run2)*KKT_DIM] =
delta_yFX[run1];
424 for( run1=0; run1<nAC; run1++ )
427 Primal_Dual_VAR[run3+(2*NVMAX+run2)*KKT_DIM] =
delta_yAC[run1];
returnValue hotstart_determineStepDirection(const int *const FR_idx, const int *const FX_idx, const int *const AC_idx, 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)
Implements the online active set strategy for box-constrained QPs.
returnValue getNumberArray(int *const numberarray) const
SolutionAnalysis & operator=(const SolutionAnalysis &rhs)
Allows to pass back messages to the calling function.
#define THROWERROR(retval)
real_t delta_ubA_cov[NCMAX_ALLOC]
returnValue getHessianInverse(QProblem *qp, real_t *hessianInverse)
real_t delta_lbA_cov[NCMAX_ALLOC]
Provides additional tools for analysing QP solutions.
real_t delta_ub_cov[NVMAX]
real_t delta_g_cov[NVMAX]
void rhs(const real_t *x, real_t *f)
real_t delta_lb_cov[NVMAX]
returnValue getVarianceCovariance(QProblemB *qp, real_t *g_b_bA_VAR, real_t *Primal_Dual_VAR) const
returnValue hotstart_determineStepDirection(const int *const FR_idx, const int *const FX_idx, const real_t *const delta_g, const real_t *const delta_lb, const real_t *const delta_ub, BooleanType Delta_bB_isZero, real_t *const delta_xFX, real_t *const delta_xFR, real_t *const delta_yFX)
Implements the online active set strategy for QPs with general constraints.