X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=ETL%2Ftags%2F0.4.11%2FETL%2F_calculus.h;fp=ETL%2Ftags%2F0.4.11%2FETL%2F_calculus.h;h=0000000000000000000000000000000000000000;hb=3a6643238c67c043fc3592837a05d6d2861967f1;hp=a9c95edc8601e10b37c56d62d246cd4ea9b2ad3b;hpb=47fce282611fbba1044921d22ca887f9b53ad91a;p=synfig.git diff --git a/ETL/tags/0.4.11/ETL/_calculus.h b/ETL/tags/0.4.11/ETL/_calculus.h deleted file mode 100644 index a9c95ed..0000000 --- a/ETL/tags/0.4.11/ETL/_calculus.h +++ /dev/null @@ -1,89 +0,0 @@ -/*! ======================================================================== -** Extended Template and Library -** Calculus Functional Classes Implementation -** $Id$ -** -** Copyright (c) 2002 Robert B. Quattlebaum Jr. -** -** This package is free software; you can redistribute it and/or -** modify it under the terms of the GNU General Public License as -** published by the Free Software Foundation; either version 2 of -** the License, or (at your option) any later version. -** -** This package is distributed in the hope that it will be useful, -** but WITHOUT ANY WARRANTY; without even the implied warranty of -** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -** General Public License for more details. -** -** === N O T E S =========================================================== -** -** ========================================================================= */ - -/* === S T A R T =========================================================== */ - -#ifndef __ETL__CALCULUS_H -#define __ETL__CALCULUS_H - -/* === H E A D E R S ======================================================= */ - -#include - -/* === M A C R O S ========================================================= */ - -//#ifndef _EPSILON -//#define _EPSILON 0.0000001 -//#endif - -#define ETL_FIXED_DERIVATIVE 1 - -/* === T Y P E D E F S ===================================================== */ - -/* === C L A S S E S & S T R U C T S ======================================= */ - -_ETL_BEGIN_NAMESPACE - -template -class derivative : public std::unary_function -{ - T func; - typename T::argument_type epsilon; -public: - explicit derivative(const T &x, const typename T::argument_type &epsilon=0.000001):func(x),epsilon(epsilon) { } - - typename T::result_type - operator()(const typename T::argument_type &x)const - { -#ifdef ETL_FIXED_DERIVATIVE - return (func(x+epsilon)-func(x))/epsilon; -#else - return (func(x)-func(x+epsilon))/epsilon; -#endif - } -}; - -template -class integral : public std::binary_function -{ - T func; - int samples; -public: - explicit integral(const T &x, const int &samples=500):func(x),samples(samples) { } - - typename T::result_type - operator()(typename T::argument_type x,typename T::argument_type y)const - { - typename T::result_type ret=0; - int i=samples; - const typename T::argument_type increment=(y-x)/i; - - for(;i;i--,x+=increment) - ret+=(func(x)+func(x+increment))*increment/2; - return ret; - } -}; - -_ETL_END_NAMESPACE - -/* === E N D =============================================================== */ - -#endif