Interior-point-optimisation  1.0-1
Interior-pointoptimisationlibrary
PhaseIFunctionAndDerivatives.hpp
Go to the documentation of this file.
1 /*
2  * $Id: PhaseIFunctionAndDerivatives.hpp 236 2014-11-30 14:09:06Z jdl3 $
3  * Copyright (C) 2013–2014 John D Lamb
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or (at
8  * your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18  */
19 
20 #ifndef IPO_FUNCTION_DETAIL_PHASEIFUNCTIONANDDERIVATIVES_HPP
21 #define IPO_FUNCTION_DETAIL_PHASEIFUNCTIONANDDERIVATIVES_HPP
22 
23 #include"../Function.hpp"
24 #include"../DerivativesEstimates.hpp"
25 
26 namespace ipo_function {
27  namespace detail {
39  public DerivativesEstimates {
40  public:
50  PhaseIFunctionAndDerivatives( Function& function, double const b, bool const upperBound );
57  double operator()( gsl::vector const& vector );
63  gsl::vector gradient( gsl::vector const& vector );
69  gsl::matrix hessian( gsl::vector const& vector );
74  void setVector( gsl::vector const& vector );
75  private:
79  Function& function;
83  double const b;
88  bool const upperBound;
89  };
90 
91  }
92 }
93 
94 #endif
double operator()(gsl::vector const &vector)
The function operator: computes or according as is an upper or lower bound.
virtual gsl::matrix hessian() const
virtual gsl::vector gradient() const
Base class for derivative estimates with Hessian.
Namespace for functions that can be used by ipo::Objective and ipo::Constraint.
PhaseIFunctionAndDerivatives(Function &function, double const b, bool const upperBound)
Construct from a function and bound.
Function for Phase I (feasibility) of interior-point optimisation.
This class computes a function at a vector.
Definition: Function.hpp:38
bool const upperBound
A boolean value: true or false according as b is an upper bound or lower.
void setVector(gsl::vector const &vector)
Set a vector and compute function value, gradient and Hessian efficiently.