/*! ========================================================================
** Extended Template and Library
** Calculus Functional Classes Implementation
-** $Id: _calculus.h,v 1.1.1.1 2005/01/04 01:31:46 darco Exp $
+** $Id$
**
** Copyright (c) 2002 Robert B. Quattlebaum Jr.
**
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
{
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;