wip
This commit is contained in:
153
third_party/acados/include/qpOASES_e/Options.h
vendored
Normal file
153
third_party/acados/include/qpOASES_e/Options.h
vendored
Normal file
@@ -0,0 +1,153 @@
|
||||
/*
|
||||
* This file is part of qpOASES.
|
||||
*
|
||||
* qpOASES -- An Implementation of the Online Active Set Strategy.
|
||||
* Copyright (C) 2007-2015 by Hans Joachim Ferreau, Andreas Potschka,
|
||||
* Christian Kirches et al. All rights reserved.
|
||||
*
|
||||
* qpOASES is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* qpOASES is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with qpOASES; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* \file include/qpOASES_e/Options.h
|
||||
* \author Hans Joachim Ferreau, Andreas Potschka, Christian Kirches
|
||||
* \version 3.1embedded
|
||||
* \date 2007-2015
|
||||
*
|
||||
* Declaration of the Options class designed to manage user-specified
|
||||
* options for solving a QProblem.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef QPOASES_OPTIONS_H
|
||||
#define QPOASES_OPTIONS_H
|
||||
|
||||
|
||||
#include <qpOASES_e/Utils.h>
|
||||
|
||||
|
||||
BEGIN_NAMESPACE_QPOASES
|
||||
|
||||
|
||||
/**
|
||||
* \brief Manages all user-specified options for solving QPs.
|
||||
*
|
||||
* This class manages all user-specified options used for solving
|
||||
* quadratic programs.
|
||||
*
|
||||
* \author Hans Joachim Ferreau, Andreas Potschka, Christian Kirches
|
||||
* \version 3.1embedded
|
||||
* \date 2007-2015
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
PrintLevel printLevel; /**< Print level. */
|
||||
|
||||
BooleanType enableRamping; /**< Specifies whether ramping shall be enabled or not. */
|
||||
BooleanType enableFarBounds; /**< Specifies whether far bounds shall be used or not. */
|
||||
BooleanType enableFlippingBounds; /**< Specifies whether flipping bounds shall be used or not. */
|
||||
BooleanType enableRegularisation; /**< Specifies whether Hessian matrix shall be regularised in case semi-definiteness is detected. */
|
||||
BooleanType enableFullLITests; /**< Specifies whether condition-hardened LI test shall be used or not. */
|
||||
BooleanType enableNZCTests; /**< Specifies whether nonzero curvature tests shall be used. */
|
||||
int enableDriftCorrection; /**< Specifies the frequency of drift corrections (0 = off). */
|
||||
int enableCholeskyRefactorisation; /**< Specifies the frequency of full refactorisation of proj. Hessian (otherwise updates). */
|
||||
BooleanType enableEqualities; /**< Specifies whether equalities shall be always treated as active constraints. */
|
||||
|
||||
real_t terminationTolerance; /**< Termination tolerance. */
|
||||
real_t boundTolerance; /**< Lower/upper (constraints') bound tolerance (an inequality constraint whose lower and upper bounds differ by less is regarded to be an equality constraint). */
|
||||
real_t boundRelaxation; /**< Offset for relaxing (constraints') bounds at beginning of an initial homotopy. It is also as initial value for far bounds. */
|
||||
real_t epsNum; /**< Numerator tolerance for ratio tests. */
|
||||
real_t epsDen; /**< Denominator tolerance for ratio tests. */
|
||||
real_t maxPrimalJump; /**< Maximum allowed jump in primal variables in nonzero curvature tests. */
|
||||
real_t maxDualJump; /**< Maximum allowed jump in dual variables in linear independence tests. */
|
||||
|
||||
real_t initialRamping; /**< Start value for Ramping Strategy. */
|
||||
real_t finalRamping; /**< Final value for Ramping Strategy. */
|
||||
real_t initialFarBounds; /**< Initial size of Far Bounds. */
|
||||
real_t growFarBounds; /**< Factor to grow Far Bounds. */
|
||||
SubjectToStatus initialStatusBounds; /**< Initial status of bounds at first iteration. */
|
||||
real_t epsFlipping; /**< Tolerance of squared Cholesky diagonal factor which triggers flipping bound. */
|
||||
int numRegularisationSteps; /**< Maximum number of successive regularisation steps. */
|
||||
real_t epsRegularisation; /**< Scaling factor of identity matrix used for Hessian regularisation. */
|
||||
int numRefinementSteps; /**< Maximum number of iterative refinement steps. */
|
||||
real_t epsIterRef; /**< Early termination tolerance for iterative refinement. */
|
||||
real_t epsLITests; /**< Tolerance for linear independence tests. */
|
||||
real_t epsNZCTests; /**< Tolerance for nonzero curvature tests. */
|
||||
|
||||
BooleanType enableDropInfeasibles; /**< ... */
|
||||
int dropBoundPriority; /**< ... */
|
||||
int dropEqConPriority; /**< ... */
|
||||
int dropIneqConPriority; /**< ... */
|
||||
} Options;
|
||||
|
||||
|
||||
void OptionsCON( Options* _THIS
|
||||
);
|
||||
|
||||
/** Copies all members from given rhs object.
|
||||
* \return SUCCESSFUL_RETURN */
|
||||
void OptionsCPY( Options* FROM,
|
||||
Options* TO
|
||||
);
|
||||
|
||||
|
||||
/** Sets all options to default values.
|
||||
* \return SUCCESSFUL_RETURN */
|
||||
returnValue Options_setToDefault( Options* _THIS
|
||||
);
|
||||
|
||||
/** Sets all options to values resulting in maximum reliabilty.
|
||||
* \return SUCCESSFUL_RETURN */
|
||||
returnValue Options_setToReliable( Options* _THIS
|
||||
);
|
||||
|
||||
/** Sets all options to values resulting in minimum solution time.
|
||||
* \return SUCCESSFUL_RETURN */
|
||||
returnValue Options_setToMPC( Options* _THIS
|
||||
);
|
||||
|
||||
/** Same as setToMPC( ), for ensuring backwards compatibility.
|
||||
* \return SUCCESSFUL_RETURN */
|
||||
returnValue Options_setToFast( Options* _THIS
|
||||
);
|
||||
|
||||
|
||||
/** Ensures that all options have consistent values by automatically
|
||||
* adjusting inconsistent ones.
|
||||
* Note: This routine cannot (and does not try to) ensure that values
|
||||
* are set to reasonable values that make the QP solution work!
|
||||
* \return SUCCESSFUL_RETURN \n
|
||||
* RET_OPTIONS_ADJUSTED */
|
||||
returnValue Options_ensureConsistency( Options* _THIS
|
||||
);
|
||||
|
||||
|
||||
/** Prints values of all options.
|
||||
* \return SUCCESSFUL_RETURN */
|
||||
returnValue Options_print( Options* _THIS
|
||||
);
|
||||
|
||||
|
||||
END_NAMESPACE_QPOASES
|
||||
|
||||
|
||||
#endif /* QPOASES_OPTIONS_H */
|
||||
|
||||
|
||||
/*
|
||||
* end of file
|
||||
*/
|
||||
Reference in New Issue
Block a user