Interior-point-optimisation  1.0-1
Interior-pointoptimisationlibrary
LinearCombination.hpp
Go to the documentation of this file.
1 /*
2  * $Id: LinearCombination.hpp 118 2013-06-16 15:35:57Z jdl3 $
3  * Copyright (C) 2013 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_CONCRETE_LINEARCOMBINATION_HPP
21 #define IPO_FUNCTION_CONCRETE_LINEARCOMBINATION_HPP
22 
23 #include<ccgsl/blas.hpp>
24 #include"../Function.hpp"
25 #include"../DerivativesEstimates.hpp"
26 #include"../../ipo/IPOException.hpp"
27 
28 namespace ipo_function {
29  namespace concrete {
38  public:
47  LinearCombination( size_t const size = 0 );
52  void resize( size_t const size );
59  void setCoefficient( size_t const index, double const value );
66  double getCoefficient( size_t const index ) const ;
71  gsl::vector const& getCoefficients() const;
76  void setCoefficients( gsl::vector const& vector );
82  virtual double operator()( gsl::vector const& vector );
89  virtual gsl::vector gradient( gsl::vector const& vector );
96  virtual gsl::matrix hessian( gsl::vector const& vector );
101  virtual void setVector( gsl::vector const& vector );
102  protected:
106  gsl::vector coefficients;
107  };
108 
109  }
110 }
111 
112 #endif
void setCoefficient(size_t const index, double const value)
Set the value of a coefficient.
gsl::vector coefficients
The vector of coefficients;.
virtual gsl::matrix hessian() const
virtual gsl::vector gradient() const
virtual double value() const
This class provides function objects representing linear combinations of the elements of their vector...
Base class for derivative estimates with Hessian.
virtual void setVector(gsl::vector const &vector)
Set a vector and compute function value, gradient and Hessian efficiently.
virtual double operator()(gsl::vector const &vector)
The function operator: computes the sum of the vector entries.
Namespace for functions that can be used by ipo::Objective and ipo::Constraint.
double getCoefficient(size_t const index) const
Get the value of a coefficient.
This class computes a function at a vector.
Definition: Function.hpp:38
void setCoefficients(gsl::vector const &vector)
Set coefficients from a vector.
void resize(size_t const size)
Resize the vector of coefficients.
LinearCombination(size_t const size=0)
The constructor sets up function as a linear combination of size entries.
size_t const size
Size of vector arguments to supply to subclass functions.
gsl::vector const & getCoefficients() const
Get the coefficients as a vector by reference.