This website is no longer maintained. Its content may be obsolete. Please visit http://home.cern/ for current CERN information.
00001 // -*- C++ -*- 00002 // AID-GENERATED 00003 // ========================================================================= 00004 // This class was generated by AID - Abstract Interface Definition 00005 // DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. 00006 // ========================================================================= 00007 #ifndef AIDA_IFUNCTION_H 00008 #define AIDA_IFUNCTION_H 1 00009 00010 // This file is part of the AIDA library 00011 // Copyright (C) 2002 by the AIDA team. All rights reserved. 00012 // This library is free software and under the terms of the 00013 // GNU Library General Public License described in the LGPL.txt 00014 00015 #include <string> 00016 #include <vector> 00017 00018 namespace AIDA { 00019 00020 class IAnnotation; 00021 00035 class IFunction { 00036 00037 public: 00039 virtual ~IFunction() { /* nop */; } 00040 00044 virtual double value(const std::vector<double> & x) const = 0; 00045 00049 virtual int dimension() const = 0; 00050 00055 virtual bool isEqual(const IFunction * f) const = 0; 00056 00062 virtual const std::vector<double> & gradient(const std::vector<double> & x) const = 0; 00063 00067 virtual bool providesGradient() const = 0; 00068 00072 virtual std::string variableName(int i) const = 0; 00073 00077 virtual const std::vector<std::string> & variableNames() const = 0; 00078 00082 virtual void setParameters(const std::vector<double> & params) = 0; 00083 00087 virtual const std::vector<double> & parameters() const = 0; 00088 00092 virtual int numberOfParameters() const = 0; 00093 00101 virtual const std::vector<std::string> & parameterNames() const = 0; 00102 00110 virtual bool setParameter(std::string name, double x) = 0; 00111 00112 virtual double parameter(std::string name) const = 0; 00113 00118 virtual int indexOfParameter(std::string name) const = 0; 00119 00120 virtual IAnnotation & annotation() = 0; 00121 00122 virtual const IAnnotation & annotation() const = 0; 00123 00163 virtual std::string codeletString() const = 0; 00164 00166 /*# IAnnotation lnkIAnnotation; */ 00167 }; // class 00168 }; // namespace AIDA 00169 #endif /* ifndef AIDA_IFUNCTION_H */