Prev Next Index-> contents reference index search external Up-> CppAD utility RombergOne CppAD-> Install Introduction AD ADFun preprocessor multi_thread utility ipopt_solve Example speed Appendix utility-> ErrorHandler NearEqual speed_test SpeedTest time_test test_boolofvoid NumericType CheckNumericType SimpleVector CheckSimpleVector nan pow_int Poly LuDetAndSolve RombergOne RombergMul Runge45 Rosen34 OdeErrControl OdeGear OdeGearControl CppAD_vector thread_alloc index_sort to_string set_union sparse_rc sparse_rcv RombergOne-> romberg_one.cpp Headings-> Syntax Description Include r F a b n p e Float Example Source Code

One DimensionalRomberg Integration

Syntax
# include <cppad/utility/romberg_one.hpp>  r = RombergOne(F, a, b, n, e)

Description
Returns the Romberg integration estimate $r$ for a one dimensional integral $$r = \int_a^b F(x) {\bf d} x + O \left[ (b - a) / 2^{n-1} \right]^{2(p+1)}$$

Include
The file cppad/romberg_one.hpp is included by cppad/cppad.hpp but it can also be included separately with out the rest of the CppAD routines.

r
The return value r has prototype       Float r  It is the estimate computed by RombergOne for the integral above.

F
The object F can be of any type, but it must support the operation       F(x)  The argument x to F has prototype       const Float &x  The return value of F is a Float object (see description of Float below).

a
The argument a has prototype       const Float &a  It specifies the lower limit for the integration.

b
The argument b has prototype       const Float &b  It specifies the upper limit for the integration.

n
The argument n has prototype       size_t n  A total number of $2^{n-1} + 1$ evaluations of F(x) are used to estimate the integral.

p
The argument p has prototype       size_t p  It must be less than or equal $n$ and determines the accuracy order in the approximation for the integral that is returned by RombergOne. To be specific $$r = \int_a^b F(x) {\bf d} x + O \left[ (b - a) / 2^{n-1} \right]^{2(p+1)}$$

e
The argument e has prototype       Float &e  The input value of e does not matter and its output value is an approximation for the error in the integral estimates; i.e., $$e \approx \left| r - \int_a^b F(x) {\bf d} x \right|$$

Float
The type Float must satisfy the conditions for a NumericType type. The routine CheckNumericType will generate an error message if this is not the case. In addition, if x and y are Float objects,       x < y  returns the bool value true if x is less than y and false otherwise.

Example
The file romberg_one.cpp contains an example and test a test of using this routine. It returns true if it succeeds and false otherwise.

Source Code
The source code for this routine is in the file cppad/romberg_one.hpp.