File indexing completed on 2025-04-19 09:09:48
0001 #ifndef ATOOLS_Math_Function_Base_H
0002 #define ATOOLS_Math_Function_Base_H
0003
0004 #include <string>
0005
0006 namespace ATOOLS {
0007
0008 class Function;
0009
0010 class Function_Base {
0011 protected :
0012
0013 double m_defval;
0014
0015 std::string m_type, m_name;
0016
0017 public:
0018
0019
0020 virtual ~Function_Base();
0021
0022
0023 virtual void SetParameters(double *parameters);
0024
0025 Function *GetAIFunction();
0026 Function *GetAIGMeanFunction();
0027
0028
0029 virtual std::string Type();
0030
0031
0032 virtual double GetValue(double x);
0033 virtual double operator()(double x);
0034 virtual double operator()();
0035
0036 double FindZero(double, double, int MAX_ITR=150, double precision=2.2e-16);
0037 double WDBSolve(const double &y,const double &xmin,const double &xmax,
0038 const double &precision=1.0e-12,const int maxit=100);
0039
0040 inline void SetType(const std::string &type) { m_type=type; }
0041
0042 inline std::string Name() const { return m_name; }
0043
0044 inline void SetDefault(const double &defval) { m_defval=defval; }
0045
0046 inline double Default() const { return m_defval; }
0047
0048 };
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085 }
0086
0087 #endif