00001 #ifndef Function_h
00002 #define Function_h
00003 #include "Cartesian_c.h"
00004 using namespace std;
00005
00006 namespace cart
00007 {
00008 class Function
00009 {
00010 public:
00011 Function() {}
00012 Function(uint numArgs) {}
00013 virtual ~Function() {}
00014
00018 virtual void evaluate(voidP inputs, void* result) = 0;
00019
00020 string getName()
00021 {
00022 return name_;
00023 }
00024
00025 uint getNumOfArgs()
00026 {
00027 return numOfArgs_;
00028 }
00029
00030 protected:
00031 string name_;
00032 uint numOfArgs_;
00033 };
00034
00035 typedef boost::shared_ptr<Function> FunctionP;
00036 }
00037
00038
00039 #endif