00001 #include <SyFi.h>
00002
00003 int main() {
00004
00005 symbol x0("x0"), x1("x1"), y0("y0"), y1("y1"), z0("z0"), z1("z1");
00006
00007 ex p0 = lst(x0,y0,z0);
00008 ex p1 = lst(x1,y0,z0);
00009 ex p2 = lst(x0,y1,z0);
00010 ex p3 = lst(x0,y0,z1);
00011
00012 Tetrahedron tetrahedron(p0,p1,p2,p3);
00013
00014 ex repr = tetrahedron.repr();
00015 cout <<"t.repr "<<repr<<endl;
00016 EQUAL_OR_DIE(repr, "{x==r*(x1-x0)+x0,y==y0+s*(-y0+y1),z==(z1-z0)*t+z0,{r,0,1},{s,0,1-r},{t,0,1-s-r}}");
00017
00018 ex f = x*y*z;
00019 ex intf = tetrahedron.integrate(f);
00020 cout <<"intf "<<intf<<endl;
00021 EQUAL_OR_DIE(intf, "19/720*y0*x1*z0+1/144*z1*x0*y1+19/720*x0*z0*y1+1/144*y0*x1*z1+1/720*x1*z1*y1+19/720*y0*z1*x0+1/144*x1*z0*y1+47/720*y0*x0*z0");
00022
00023
00024 return 0;
00025 }
00026