00001 #ifndef FunctionSet_h
00002 #define FunctionSet_h
00003 #include "Function.h"
00004
00005
00006 #include "Add.h"
00007 #include "Sub.h"
00008 #include "Mul.h"
00009 #include "Div.h"
00010 #include "Sin.h"
00011 #include "Cos.h"
00012 #include "And.h"
00013 #include "Or.h"
00014 #include "Not.h"
00015 #include "Xor.h"
00016 #include "Xnor.h"
00017
00018 namespace cart
00019 {
00020 class FunctionSet : public vector<FunctionP>
00021 {
00022 public:
00026 FunctionSet(string gettype);
00030 bool addFunction(string name);
00034 bool addFunction(string name, uint numArgs);
00038 void evaluate(voidP inputs, void* result, uint funcNum);
00039 ~FunctionSet() {}
00040
00041 map<string, bool> existFunc;
00042 protected:
00043 string type;
00044
00045 };
00046
00047 typedef boost::shared_ptr<FunctionSet> FunctionSetP;
00048 }
00049
00050
00051 #endif