Anaphe Home Page Reference Documentation

Main Page     Namespaces     Classes     Source Code    

IFunction.h

Go to the documentation of this file.
00001 
00009 # ifndef INTERFACE_IFUNCTION_H__included__
00010 # define INTERFACE_IFUNCTION_H__included__ 1
00011 
00012 # include <vector>
00013 # include <iostream>
00014 
00015 #ifdef AIDA_DONT_USE_STD
00016 typedef ostream std_ostream;
00017 #else
00018 typedef std::ostream std_ostream;
00019 #endif
00020 
00021 namespace Anaphe
00022 {
00023 
00024 /*************************************************************/
00030 class IFunction
00031 {
00032  public:
00033 
00037 #ifdef AIDA_DONT_USE_STD
00038   virtual double value(const      vector<double>& x) const = 0;
00039 #else
00040   virtual double value(const std::vector<double>& x) const = 0;
00041 #endif
00042 
00048 #ifdef AIDA_DONT_USE_STD
00049   virtual const      vector<double>& grad(const      vector<double>& x)  const = 0;
00050 #else
00051   virtual const std::vector<double>& grad(const std::vector<double>& x)  const = 0;
00052 #endif
00053 
00057   virtual bool hasGradient() const = 0;
00058 
00062   virtual int dimension() const = 0;
00063 
00067   virtual void toAscii(std_ostream &os) const = 0;
00068 
00073   virtual bool isEqual(const IFunction * f) const = 0;
00074 
00075   virtual ~IFunction() {}
00076 };
00077 
00078 } // end namespace Anaphe
00079 
00080 # endif


Anaphe documentation generated by Doxygen (www.doxygen.org)