| 
    qpOASES
    3.2.1
    
   An Implementation of the Online Active Set Strategy 
   | 
  
  
  
 
Provides additional tools for analysing QP solutions. More...
#include <SolutionAnalysis.hpp>
Public Member Functions | |
| SolutionAnalysis () | |
| SolutionAnalysis (const SolutionAnalysis &rhs) | |
| ~SolutionAnalysis () | |
| SolutionAnalysis & | operator= (const SolutionAnalysis &rhs) | 
| real_t | getKktViolation (QProblemB *const qp, real_t *const maxStat=0, real_t *const maxFeas=0, real_t *const maxCmpl=0) const | 
| real_t | getKktViolation (QProblem *const qp, real_t *const maxStat=0, real_t *const maxFeas=0, real_t *const maxCmpl=0) const | 
| real_t | getKktViolation (SQProblem *const qp, real_t *const maxStat=0, real_t *const maxFeas=0, real_t *const maxCmpl=0) const | 
| returnValue | getVarianceCovariance (QProblemB *const qp, const real_t *const g_b_bA_VAR, real_t *const Primal_Dual_VAR) const | 
| returnValue | getVarianceCovariance (QProblem *const qp, const real_t *const g_b_bA_VAR, real_t *const Primal_Dual_VAR) const | 
| returnValue | getVarianceCovariance (SQProblem *const qp, const real_t *const g_b_bA_VAR, real_t *const Primal_Dual_VAR) const | 
| returnValue | checkCurvatureOnStronglyActiveConstraints (SQProblemSchur *qp) | 
| returnValue | checkCurvatureOnStronglyActiveConstraints (SQProblem *qp) | 
This class is intended to provide additional tools for analysing a QP solution obtained with qpOASES.
Default constructor.
| SolutionAnalysis::SolutionAnalysis | ( | const SolutionAnalysis & | rhs | ) | 
Copy constructor (deep copy).
| rhs | Rhs object. | 
Destructor.
Checks if a direction of negative curvature shows up if we remove all bounds that just recently became active
References QProblemB::bounds, BT_FALSE, getAbs(), QProblemB::getBounds(), Bounds::getFixed(), QProblem::getNAC(), SparseSolver::getNegativeEigenvalues(), QProblemB::getNFX(), Indexlist::getNumberArray(), SubjectTo::getStatus(), QProblemB::getStatus(), Bounds::moveFixedToFree(), Bounds::moveFreeToFixed(), QPS_PERFORMINGHOMOTOPY, real_t, SQProblemSchur::resetSchurComplement(), RET_INERTIA_CORRECTION_FAILED, RET_REMOVEBOUND_FAILED, SQProblemSchur::sparseSolver, ST_INACTIVE, QProblemB::status, SUCCESSFUL_RETURN, THROWERROR, and QProblemB::x.
| real_t SolutionAnalysis::getKktViolation | ( | QProblemB *const | qp, | 
| real_t *const | maxStat = 0,  | 
        ||
| real_t *const | maxFeas = 0,  | 
        ||
| real_t *const | maxCmpl = 0  | 
        ||
| ) | const | 
Computes the maximum violation of the KKT optimality conditions of the current iterate within the QProblemB object.
| qp | QProblemB to be analysed. | 
| maxStat | Output: maximum value of stationarity condition residual. | 
| maxFeas | Output: maximum value of primal feasibility violation. | 
| maxCmpl | Output: maximum value of complementarity residual. | 
References BT_FALSE, BT_TRUE, Matrix::full(), QProblemB::g, QProblemB::getHessianType(), getMax(), QProblemB::getNV(), QProblemB::getWorkingSetBounds(), QProblemB::H, HST_IDENTITY, HST_ZERO, INFTY, QProblemB::lb, real_t, REFER_NAMESPACE_QPOASES, QProblemB::regVal, SUCCESSFUL_RETURN, THROWERROR, QProblemB::ub, QProblemB::usingRegularisation(), QProblemB::x, and QProblemB::y.
Referenced by getKktViolation(), and main().
| real_t SolutionAnalysis::getKktViolation | ( | QProblem *const | qp, | 
| real_t *const | maxStat = 0,  | 
        ||
| real_t *const | maxFeas = 0,  | 
        ||
| real_t *const | maxCmpl = 0  | 
        ||
| ) | const | 
Computes the maximum violation of the KKT optimality conditions of the current iterate within the QProblem object.
| qp | QProblem to be analysed. | 
| maxStat | Output: maximum value of stationarity condition residual. | 
| maxFeas | Output: maximum value of primal feasibility violation. | 
| maxCmpl | Output: maximum value of complementarity residual. | 
References QProblem::A, BT_FALSE, BT_TRUE, Matrix::full(), QProblemB::g, QProblemB::getHessianType(), getKktViolation(), getMax(), QProblem::getNC(), QProblemB::getNV(), QProblem::getWorkingSetBounds(), QProblem::getWorkingSetConstraints(), QProblemB::H, HST_IDENTITY, HST_ZERO, INFTY, QProblemB::lb, QProblem::lbA, real_t, REFER_NAMESPACE_QPOASES, QProblemB::regVal, SUCCESSFUL_RETURN, THROWERROR, QProblemB::ub, QProblem::ubA, QProblemB::usingRegularisation(), QProblemB::x, and QProblemB::y.
| real_t SolutionAnalysis::getKktViolation | ( | SQProblem *const | qp, | 
| real_t *const | maxStat = 0,  | 
        ||
| real_t *const | maxFeas = 0,  | 
        ||
| real_t *const | maxCmpl = 0  | 
        ||
| ) | const | 
Computes the maximum violation of the KKT optimality conditions of the current iterate within the SQProblem object.
| qp | SQProblem to be analysed. | 
| maxStat | Output: maximum value of stationarity condition residual. | 
| maxFeas | Output: maximum value of primal feasibility violation. | 
| maxCmpl | Output: maximum value of complementarity residual. | 
References getKktViolation().
| returnValue SolutionAnalysis::getVarianceCovariance | ( | QProblemB *const | qp, | 
| const real_t *const | g_b_bA_VAR, | ||
| real_t *const | Primal_Dual_VAR | ||
| ) | const | 
Computes the variance-covariance matrix of the QP output for uncertain inputs.
| qp | QProblemB to be analysed. | 
| g_b_bA_VAR | Input: Variance-covariance of g, the bounds lb and ub, and lbA and ubA respectively. Dimension: 2nV x 2nV | 
| Primal_Dual_VAR | Output: The result for the variance-covariance of the primal and dual variables. Dimension: 2nV x 2nV | 
References RET_NOT_YET_IMPLEMENTED, and THROWERROR.
Referenced by getVarianceCovariance(), and main().
| returnValue SolutionAnalysis::getVarianceCovariance | ( | QProblem *const | qp, | 
| const real_t *const | g_b_bA_VAR, | ||
| real_t *const | Primal_Dual_VAR | ||
| ) | const | 
Computes the variance-covariance matrix of the QP output for uncertain inputs.
| qp | QProblem to be analysed. | 
| g_b_bA_VAR | Input: Variance-covariance of g, the bounds lb and ub, and lbA and ubA respectively. Dimension: (2nV+nC) x (2nV+nC) | 
| Primal_Dual_VAR | Output: The result for the variance-covariance of the primal and dual variables. Dimension: (2nV+nC) x (2nV+nC) | 
References QProblemB::bounds, BT_FALSE, QProblem::constraints, QProblem::determineStepDirection(), Constraints::getActive(), Bounds::getFixed(), Bounds::getFree(), QProblem::getNAC(), QProblem::getNC(), QProblemB::getNFR(), QProblemB::getNFX(), Indexlist::getNumberArray(), QProblemB::getNV(), real_t, RET_HOTSTART_FAILED, RET_STEPDIRECTION_DETERMINATION_FAILED, SUCCESSFUL_RETURN, and THROWERROR.
| returnValue SolutionAnalysis::getVarianceCovariance | ( | SQProblem *const | qp, | 
| const real_t *const | g_b_bA_VAR, | ||
| real_t *const | Primal_Dual_VAR | ||
| ) | const | 
Computes the variance-covariance matrix of the QP output for uncertain inputs.
| qp | SQProblem to be analysed. | 
| g_b_bA_VAR | Input: Variance-covariance of g, the bounds lb and ub, and lbA and ubA respectively. Dimension: (2nV+nC) x (2nV+nC) | 
| Primal_Dual_VAR | Output: The result for the variance-covariance of the primal and dual variables. Dimension: (2nV+nC) x (2nV+nC) | 
References getVarianceCovariance().
| SolutionAnalysis & SolutionAnalysis::operator= | ( | const SolutionAnalysis & | rhs | ) | 
Assignment operator (deep copy).
| rhs | Rhs object. | 
 1.7.6.1