00001
00008 # ifndef INTERFACE_IMODELFUNCTION_H__included__
00009 # define INTERFACE_IMODELFUNCTION_H__included__ 1
00010
00011 # include "IFunction.h"
00012 # include <string>
00013
00014 namespace Anaphe
00015 {
00016
00017
00028 class IModelFunction : virtual public IFunction
00029 {
00030 public:
00034 #ifdef AIDA_DONT_USE_STD
00035 virtual void setParameters(const vector<double>& params) = 0;
00036 #else
00037 virtual void setParameters(const std::vector<double>& params) = 0;
00038 #endif
00039
00043 #ifdef AIDA_DONT_USE_STD
00044 virtual const vector<double>& parameters() const = 0;
00045 #else
00046 virtual const std::vector<double>& parameters() const = 0;
00047 #endif
00048
00052 #ifdef AIDA_DONT_USE_STD
00053 virtual const vector<double>& parameterGradient(const vector<double>& x) const = 0;
00054 #else
00055 virtual const std::vector<double>& parameterGradient(const std::vector<double>& x) const = 0;
00056 #endif
00057
00061 virtual bool hasParameterGradient() const = 0;
00062
00066 virtual int numberOfParameters() const = 0;
00067
00075 virtual std::string nameOfParameter(int ix) const = 0;
00076 };
00077
00078 }
00079
00080 # endif