Remove .gitignore do nothing is ignored.
[synfig.git] / ETL / trunk / test / hermite.cpp
index 26eca4e..25a6278 100644 (file)
@@ -1,9 +1,10 @@
 /*! ========================================================================
 ** 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.
+** Copyright (c) 2007 Chris Moore
 **
 ** This package is free software; you can redistribute it and/or
 ** modify it under the terms of the GNU General Public License as
@@ -25,6 +26,7 @@
 #include <ETL/angle>
 #include <ETL/clock>
 #include <ETL/calculus>
+#include <ETL/fixed>
 #include <stdio.h>
 
 /* === M A C R O S ========================================================= */
@@ -40,21 +42,21 @@ int basic_test(void)
 {
        int ret=0;
        float f;
-       
+
        hermite<float> Hermie;
        etl::clock timer;
        double t;
-       
+
        Hermie.p1()=0;
        Hermie.t1()=1;
        Hermie.p2()=0;
        Hermie.t2()=1;
-       
+
        Hermie.sync();
-       
+
        integral<hermite<float> > 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 +64,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 +82,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 +91,21 @@ int angle_test(void)
 {
        int ret=0;
        float f;
-       
+
        hermite<angle> 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 +122,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 +132,20 @@ int fixed_test(void)
 {
        int ret=0;
        float f;
-       
+
        hermite<float,fixed> 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 +162,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 +172,21 @@ int anglefixed_test(void)
 {
        int ret=0;
        float f;
-       
+
        hermite<angle,fixed> 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 +203,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 +222,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 +239,7 @@ int float_intersection_test()
 int main()
 {
        int error=0;
-       
+
        error+=basic_test();
        error+=angle_test();
        error+=fixed_test();