qpOASES  3.2.1
An Implementation of the Online Active Set Strategy
Public Member Functions | List of all members
SolutionAnalysis Class Reference

Provides additional tools for analysing QP solutions. More...

#include <SolutionAnalysis.hpp>

Public Member Functions

 SolutionAnalysis ()
 
 SolutionAnalysis (const SolutionAnalysis &rhs)
 
 ~SolutionAnalysis ()
 
SolutionAnalysisoperator= (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)
 

Detailed Description

This class is intended to provide additional tools for analysing a QP solution obtained with qpOASES.

Author
Hans Joachim Ferreau (thanks to Boris Houska)
Version
3.2
Date
2008-2017

Constructor & Destructor Documentation

◆ SolutionAnalysis() [1/2]

BEGIN_NAMESPACE_QPOASES SolutionAnalysis::SolutionAnalysis ( )

Default constructor.

◆ SolutionAnalysis() [2/2]

SolutionAnalysis::SolutionAnalysis ( const SolutionAnalysis rhs)

Copy constructor (deep copy).

Parameters
rhsRhs object.

◆ ~SolutionAnalysis()

SolutionAnalysis::~SolutionAnalysis ( )

Destructor.

Member Function Documentation

◆ checkCurvatureOnStronglyActiveConstraints()

returnValue SolutionAnalysis::checkCurvatureOnStronglyActiveConstraints ( SQProblemSchur qp)

◆ getKktViolation() [1/3]

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.

Returns
Maximum violation of the KKT conditions (or INFTY on error).
Parameters
qpQProblemB to be analysed.
maxStatOutput: maximum value of stationarity condition residual.
maxFeasOutput: maximum value of primal feasibility violation.
maxCmplOutput: 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().

◆ getKktViolation() [2/3]

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.

Returns
Maximum violation of the KKT conditions (or INFTY on error).
Parameters
qpQProblem to be analysed.
maxStatOutput: maximum value of stationarity condition residual.
maxFeasOutput: maximum value of primal feasibility violation.
maxCmplOutput: 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.

◆ getKktViolation() [3/3]

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.

Returns
Maximum violation of the KKT conditions (or INFTY on error).
Parameters
qpSQProblem to be analysed.
maxStatOutput: maximum value of stationarity condition residual.
maxFeasOutput: maximum value of primal feasibility violation.
maxCmplOutput: maximum value of complementarity residual.

References getKktViolation().

◆ getVarianceCovariance() [1/3]

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.

Returns
SUCCESSFUL_RETURN
RET_HOTSTART_FAILED
RET_STEPDIRECTION_FAILED_TQ
RET_STEPDIRECTION_FAILED_CHOLESKY
Parameters
qpQProblemB to be analysed.
g_b_bA_VARInput: Variance-covariance of g, the bounds lb and ub, and lbA and ubA respectively. Dimension: 2nV x 2nV
Primal_Dual_VAROutput: 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().

◆ getVarianceCovariance() [2/3]

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.

Returns
SUCCESSFUL_RETURN
RET_HOTSTART_FAILED
RET_STEPDIRECTION_FAILED_TQ
RET_STEPDIRECTION_FAILED_CHOLESKY
Parameters
qpQProblem to be analysed.
g_b_bA_VARInput: Variance-covariance of g, the bounds lb and ub, and lbA and ubA respectively. Dimension: (2nV+nC) x (2nV+nC)
Primal_Dual_VAROutput: 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.

◆ getVarianceCovariance() [3/3]

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.

Returns
SUCCESSFUL_RETURN
RET_HOTSTART_FAILED
RET_STEPDIRECTION_FAILED_TQ
RET_STEPDIRECTION_FAILED_CHOLESKY
Parameters
qpSQProblem to be analysed.
g_b_bA_VARInput: Variance-covariance of g, the bounds lb and ub, and lbA and ubA respectively. Dimension: (2nV+nC) x (2nV+nC)
Primal_Dual_VAROutput: The result for the variance-covariance of the primal and dual variables. Dimension: (2nV+nC) x (2nV+nC)

References checkCurvatureOnStronglyActiveConstraints(), getVarianceCovariance(), and RET_INERTIA_CORRECTION_FAILED.

◆ operator=()

SolutionAnalysis & SolutionAnalysis::operator= ( const SolutionAnalysis rhs)

Assignment operator (deep copy).

Parameters
rhsRhs object.

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