/usr/include/openturns/SQP.hxx is in libopenturns-dev 0.15-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 | // -*- C++ -*-
/**
* @file SQP.hxx
* @brief SQP is an actual implementation for
* NearestPointAlgorithm using the SQP algorithm.
*
* (C) Copyright 2005-2011 EDF-EADS-Phimeca
*
* This library 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.
*
* This library 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* @author: $LastChangedBy: schueller $
* @date: $LastChangedDate: 2011-04-11 12:32:27 +0200 (Mon, 11 Apr 2011) $
* Id: $Id: SQP.hxx 1866 2011-04-11 10:32:27Z schueller $
*/
#ifndef OPENTURNS_SQP_HXX
#define OPENTURNS_SQP_HXX
#include "OTprivate.hxx"
#include "SQPSpecificParameters.hxx"
#include "NearestPointAlgorithmImplementation.hxx"
#include "NumericalPoint.hxx"
namespace OpenTURNS
{
namespace Base
{
namespace Optim
{
/**
* @class SQP
* SQP is an actual implementation for
* NearestPointAlgorithm
*/
class SQP :
public NearestPointAlgorithmImplementation
{
CLASSNAME;
public:
typedef Base::Common::InvalidArgumentException InvalidArgumentException;
typedef NearestPointAlgorithmImplementation::NumericalMathFunction NumericalMathFunction;
typedef NearestPointAlgorithmImplementation::InternalException InternalException;
typedef Type::NumericalPoint NumericalPoint;
typedef Type::SymmetricMatrix SymmetricMatrix;
typedef Type::IdentityMatrix IdentityMatrix;
typedef Type::MatrixImplementation MatrixImplementation;
typedef Type::SquareMatrix SquareMatrix;
typedef Base::Optim::SQPSpecificParameters SQPSpecificParameters;
/** Default constructor */
SQP();
/** Constructor with parameters */
SQP(const SQPSpecificParameters & specificParameters,
const NumericalMathFunction & levelFunction,
const Bool verbose = false);
/** Virtual constructor */
virtual SQP * clone() const;
/** Performs the actual computation. Must be overloaded by the actual optimisation algorithm */
void run()
/* throw(InternalException) */;
/** Specific parameters accessor */
SQPSpecificParameters getSpecificParameters() const;
/** Specific parameters accessor */
void setSpecificParameters(const SQPSpecificParameters & specificParameters);
/** String converter */
String __repr__() const;
/** Method save() stores the object through the StorageManager */
void save(StorageManager::Advocate & adv) const;
/** Method load() reloads the object from the StorageManager */
void load(StorageManager::Advocate & adv);
private:
/** Perform a line search in the given direction */
NumericalScalar computeLineSearch();
/** SQP specific parameters */
SQPSpecificParameters specificParameters_;
/** SQP current penalization factor */
NumericalScalar currentSigma_;
/** SQP current point */
NumericalPoint currentPoint_;
/** SQP current direction */
NumericalPoint currentDirection_;
/** SQP current level value */
NumericalScalar currentLevelValue_;
/** SQP current gradient as a column vector */
NumericalPoint currentGradient_;
/** SQP current hessian as a symmetric tensor */
SymmetricMatrix currentHessian_;
/** SQP current system matrix as a symmetric matrix */
SymmetricMatrix currentSystemMatrix_;
/** SQP current system second member as a column vector */
NumericalPoint currentSecondMember_;
/** SQP current Lagrange multiplier */
NumericalScalar currentLambda_;
}; /* class SQP */
} /* namespace Optim */
} /* namespace Base */
} /* namespace OpenTURNS */
#endif /* OPENTURNS_SQP_HXX */
|