Object-oriented Scientific Computing Library: Version 0.910
Public Member Functions | Data Fields | Protected Member Functions | Protected Attributes
composite_inte< func_t, vec_t, alloc_vec_t, alloc_t > Class Template Reference

Naive multi-dimensional integration over a hypercube. More...

#include <composite_inte.h>

Inheritance diagram for composite_inte< func_t, vec_t, alloc_vec_t, alloc_t >:
multi_inte< func_t, vec_t >

Detailed Description

template<class func_t = multi_funct<>, class vec_t = ovector_base, class alloc_vec_t = ovector, class alloc_t = ovector_alloc>
class composite_inte< func_t, vec_t, alloc_vec_t, alloc_t >

Naively combine several one-dimensional integration objects from class inte in order to perform a multi-dimensional integration over a region defined by constant limits. For more general regions of integration, use children of the class gen_inte.

The 1-dimensional integration routines are specified in the function set_oned_inte().

The integration routines are called in order of the index specified in the function set_oned_inte(). For n-dimensional integration, n one-dimensional integration objects should be specified, with indexes 0 through n-1. The integration routines are called in order of their index, so that the outermost integration is done by the routine specified with index 0.

\[ \int_{x_0=a_0}^{x_0=b_0} \int_{x_1=a_1}^{x_1=b_1} ... \int_{x_{\mathrm{n}-1}=a_{\mathrm{n}-1}}^ {x_{\mathrm{n}-1}=b_{\mathrm{n}-1}} f(x_0,x_1,...,x_{\mathrm{n}}) \]

No error estimate is performed. Error estimation for multiple dimension integrals is provided by the Monte Carlo integration classes (see mcarlo_inte).

Idea for Future:
Create a function to set an entire array of one-dimensional integration objects at once

Definition at line 69 of file composite_inte.h.

Public Member Functions

int set_oned_inte (inte< funct > &it, size_t i)
 Set the one-dimensional integration object with index i.
virtual int minteg_err (func_t &func, size_t n, const vec_t &a, const vec_t &b, double &res, double &err)
 Integrate function func over the hypercube from $ x_i=a_i $ to $ x_i=b_i $ for $ 0<i< $ ndim-1.
virtual const char * type ()
 Return string denoting type ("composite_inte")

Data Fields

size_t max_dim
 The maxiumum number of integration dimensions (default 100)

Protected Member Functions

double odfunc (double x, size_t &ix)
 The one-dimensional integration function.

Protected Attributes

const vec_t * ax
 The user-specified upper limits.
const vec_t * bx
 The user-specified lower limits.
alloc_vec_t * cx
 The independent variable vector.
func_t * mf
 The user-specified function.
size_t ndim
 The user-specified number of dimensions.
alloc_t ao
 Memory allocator for objects of type alloc_vec_t.
size_t nint
 The size of the integration object arrays.
inte< funct > ** iptrs
 Pointers to the integration objects.
bool * tptrs
 Flag indicating if integration object has been set.

Member Function Documentation

template<class func_t = multi_funct<>, class vec_t = ovector_base, class alloc_vec_t = ovector, class alloc_t = ovector_alloc>
virtual int composite_inte< func_t, vec_t, alloc_vec_t, alloc_t >::minteg_err ( func_t &  func,
size_t  n,
const vec_t &  a,
const vec_t &  b,
double &  res,
double &  err 
) [inline, virtual]

The function set_oned_inte() must be used first to set the one-dimensional routines to use.

Implements multi_inte< func_t, vec_t >.

Definition at line 155 of file composite_inte.h.

template<class func_t = multi_funct<>, class vec_t = ovector_base, class alloc_vec_t = ovector, class alloc_t = ovector_alloc>
double composite_inte< func_t, vec_t, alloc_vec_t, alloc_t >::odfunc ( double  x,
size_t &  ix 
) [inline, protected]

This function to send to the integrators

Definition at line 209 of file composite_inte.h.


The documentation for this class was generated from the following file:
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Documentation generated with Doxygen. Provided under the GNU Free Documentation License (see License Information).

Get Object-oriented Scientific Computing
Lib at SourceForge.net. Fast, secure and Free Open Source software
downloads.