Prev | Next |
# include <cppad/utility/romberg_mul.hpp>
RombergMul<Fun, SizeVector, FloatVector, m> R
r = R(F, a, b, n, p, e)
cppad/utility/romberg_mul.hpp
is included by cppad/cppad.hpp
but it can also be included separately with out the rest of
the CppAD
routines.
m
must be convertible to a size_t
object with a value that can be determined at compile time; for example
2
.
It determines the dimension of the domain space for the integration.
r
has prototype
Float r
It is the estimate computed by RombergMul
for the integral above
(see description of Float
below).
F
has the prototype
Fun &F
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
a
has prototype
const FloatVector &a
It specifies the lower limit for the integration
(see description of FloatVector
below).
b
has prototype
const FloatVector &b
It specifies the upper limit for the integration.
n
has prototype
const SizeVector &n
A total number of @(@
2^{n[i]-1} + 1
@)@
evaluations of
F(x)
are used to estimate the integral
with respect to @(@
{\bf d} x_i
@)@.
p
has prototype
const SizeVector &p
For @(@
i = 0 , \ldots , m-1
@)@,
@(@
n[i]
@)@ determines the accuracy order in the
approximation for the integral
that is returned by RombergMul
.
The values in
p
must be less than or equal
n
; i.e.,
p[i] <= n[i]
.
e
has prototype
Float &e
The input value of
e
does not matter
and its output value is an approximation for the absolute error in
the integral estimate.
Float
is defined as the type of the elements of
FloatVector
.
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.
FloatVector
must be a SimpleVector
class.
The routine CheckSimpleVector
will generate an error message
if this is not the case.
cppad/romberg_mul.hpp
.