00001 #ifndef FUNCTION_H 00002 #define FUNCTION_H 00003 00004 using namespace std; 00005 00006 namespace glot { 00007 00008 class function { 00009 00010 public: 00011 00018 typedef double (*double_function)(double x); 00019 00024 typedef double (*double_2d_1d_function)(double x, double y); 00025 00029 function(double_function f) : func(f) {}; 00030 00031 function(double_2d_1d_function f) : f2(f) {}; 00032 00036 double eval(double x) const { 00037 return func(x); 00038 }; 00039 00040 double eval(double x, double y) const { 00041 return f2(x, y); 00042 }; 00043 00044 private: 00045 00046 double_function func; 00047 double_2d_1d_function f2; 00048 00049 }; 00050 00051 } 00052 00053 #endif