X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=ETL%2Ftrunk%2Ftest%2Fhermite.cpp;h=790505e19a054b565419658e1417f0c6f158bc00;hb=073e13b7c0b5456798b4aa1e0f0248af41c195c1;hp=26eca4e24c56521993221de75a2442ffb846b59d;hpb=65b2df90d49328a766e0ebd892c795ef3f5cf832;p=synfig.git diff --git a/ETL/trunk/test/hermite.cpp b/ETL/trunk/test/hermite.cpp index 26eca4e..790505e 100644 --- a/ETL/trunk/test/hermite.cpp +++ b/ETL/trunk/test/hermite.cpp @@ -1,7 +1,7 @@ /*! ======================================================================== ** Extended Template and Library Test Suite ** Hermite Curve Test -** $Id: hermite.cpp,v 1.1.1.1 2005/01/04 01:31:48 darco Exp $ +** $Id$ ** ** Copyright (c) 2002 Robert B. Quattlebaum Jr. ** @@ -25,6 +25,7 @@ #include #include #include +#include #include /* === M A C R O S ========================================================= */ @@ -40,21 +41,21 @@ int basic_test(void) { int ret=0; float f; - + hermite Hermie; etl::clock timer; double t; - + Hermie.p1()=0; Hermie.t1()=1; Hermie.p2()=0; Hermie.t2()=1; - + Hermie.sync(); - + integral > inte(Hermie); - + fprintf(stderr,"integral of curve() on [0,1] = %f\n",inte(0,1.0)); fprintf(stderr,"integral of curve() on [-1,3] = %f\n",inte(-1.0,3.0)); Hermie.set_rs(-1.0,7.0); @@ -62,8 +63,8 @@ int basic_test(void) fprintf(stderr,"integral of curve()[%f,%f] on [-1,7] = %f\n",Hermie.get_r(),Hermie.get_s(),inte(-1.0,7.0)); fprintf(stderr,"integral of curve()[%f,%f] on [0,1] = %f\n",Hermie.get_r(),Hermie.get_s(),inte(0,1.0)); Hermie.set_rs(0.0,1.0); - - + + for(f=0.0f,timer.reset();f<1.001f;f+=0.000005f) { t+=Hermie(f)+Hermie(f+0.1f); @@ -80,7 +81,7 @@ int basic_test(void) t+=Hermie(f)+Hermie(f+0.1f); } t=timer(); - + fprintf(stderr,"time=%f milliseconds\n",t*1000); return ret; } @@ -89,21 +90,21 @@ int angle_test(void) { int ret=0; float f; - + hermite Hermie; etl::clock timer; angle tmp; double t; - + Hermie.p1()=angle::degrees(0); Hermie.t1()=angle::degrees(45); Hermie.p2()=angle::degrees(-45); Hermie.t2()=angle::degrees(180); - Hermie.sync(); - - + Hermie.sync(); + + for(f=0.0f,timer.reset();f<1.001f;f+=0.000005f) { tmp+=Hermie(f)+Hermie(f+0.1f); @@ -120,7 +121,7 @@ int angle_test(void) tmp+=Hermie(f)+Hermie(f+0.1f); } t=timer(); - + fprintf(stderr,"angle time=%f milliseconds\n",t*1000); return ret; @@ -130,20 +131,20 @@ int fixed_test(void) { int ret=0; float f; - + hermite Hermie; etl::clock timer; double t; - + Hermie.p1()=0; Hermie.t1()=1; Hermie.p2()=0; Hermie.t2()=1; - + Hermie.sync(); - - - + + + for(f=0.0f,timer.reset();f<1.001f;f+=0.005f) { t+=Hermie(f)+Hermie(f+0.1f); @@ -160,7 +161,7 @@ int fixed_test(void) t+=Hermie(f)+Hermie(f+0.1f); } t=timer(); - + fprintf(stderr,"time=%f milliseconds\n",t*1000); return ret; } @@ -170,21 +171,21 @@ int anglefixed_test(void) { int ret=0; float f; - + hermite Hermie; etl::clock timer; angle tmp; double t; - + Hermie.p1()=angle::degrees(0); Hermie.t1()=angle::degrees(45); Hermie.p2()=angle::degrees(-45); Hermie.t2()=angle::degrees(180); - Hermie.sync(); - - + Hermie.sync(); + + for(f=0.0f,timer.reset();f<1.001f;f+=0.0005f) { tmp+=Hermie(f)+Hermie(f+0.1f); @@ -201,7 +202,7 @@ int anglefixed_test(void) tmp+=Hermie(f)+Hermie(f+0.1f); } t=timer(); - + fprintf(stderr,"angle fixed time=%f milliseconds\n",t*1000); return ret; @@ -220,7 +221,7 @@ int float_intersection_test() t2=curve2.intersect(curve1); d=curve1(t1)-curve2(t2); - + fprintf(stderr,"float:Intersection difference: %f (t1=%f, t2=%f)\n",d,t1,t2); if(d>0.01) @@ -237,7 +238,7 @@ int float_intersection_test() int main() { int error=0; - + error+=basic_test(); error+=angle_test(); error+=fixed_test();