00001 #include <FunDef.h>
00002
00003 using namespace std;
00004
00005 int main() {
00006
00007 Sym x = SymVar(0);
00008 Sym y = SymVar(1);
00009
00010 Sym f = y + x*x;
00011
00012 Sym l = SymLambda(f);
00013
00014 SymVec args = l.args();
00015 args[0] = x;
00016 args[1] = y;
00017 l = Sym(l.token(), args);
00018
00019 vector<double> v(3);
00020 v[0] = 2.0;
00021 v[1] = 3.0;
00022 v[2] = 4.0;
00023
00024 double v1 = eval(f,v);
00025 double v2 = eval(l,v);
00026
00027 cout << v1 << ' ' << v2 << endl;
00028 cout << f << endl;
00029 cout << l << endl;
00030
00031 if (v1 != 7.0) return 1;
00032 if (v2 != 11.0) return 1;
00033 }
00034