7 #ifndef AIDA_IFUNCTION_H
8 #define AIDA_IFUNCTION_H 1
46 virtual std::string
title()
const = 0;
59 virtual double value(
const std::vector<double> & x)
const = 0;
77 virtual const std::vector<double> &
gradient(
const std::vector<double> & x)
const = 0;
97 virtual bool setParameters(
const std::vector<double> & params) = 0;
102 virtual const std::vector<double> &
parameters()
const = 0;
125 virtual bool setParameter(
const std::string & name,
double x) = 0;
127 virtual double parameter(
const std::string & name)
const = 0;
137 virtual const IAnnotation & annotation()
const = 0;
185 virtual void *
cast(
const std::string & className)
const = 0;
Principal user-level function interface.
Definition: IFunction.h:35
virtual std::string variableName(int i) const =0
Get the symbolic name of i-th variable.
virtual const std::vector< double > & gradient(const std::vector< double > &x) const =0
Gradient of the function.
virtual void * cast(const std::string &className) const =0
See IManagedObject for a description.
virtual std::string codeletString() const =0
String describing the metatype and implementation of the function.
virtual bool providesGradient() const =0
Determine whether function is able to compute gradient.
virtual int indexOfParameter(const std::string &name) const =0
Return -1 if parameter not found (name undefined).
virtual std::vector< std::string > variableNames() const =0
Get all the names in a vector.
virtual int dimension() const =0
Dimensionality of the domain space.
virtual const std::vector< double > & parameters() const =0
Retrieve current vector of parameters.
virtual bool isEqual(const IFunction &f) const =0
Compare if functions are the same.
virtual ~IFunction()
Destructor.
Definition: IFunction.h:39
virtual bool setParameter(const std::string &name, double x)=0
Set parameter's value by name.
virtual std::string title() const =0
Get the Function's title.
virtual int numberOfParameters() const =0
Number of parameters.
virtual bool setTitle(const std::string &title)=0
Set the histogram title.
virtual double value(const std::vector< double > &x) const =0
Scalar value of the function.
virtual std::vector< std::string > parameterNames() const =0
Names of paramaters.
virtual bool setParameters(const std::vector< double > ¶ms)=0
Set new vector of parameters.
The annotation holds arbitrary information represented with (key,value) pairs of strings.
Definition: IAnnotation.h:28