#include <gsl_miser.h>
Definition at line 74 of file gsl_miser.h.
Public Member Functions | |
virtual int | allocate (size_t ldim) |
Allocate memory. | |
virtual int | free () |
Free allocated memory. | |
virtual int | miser_minteg_err (func_t &func, size_t ndim, const vec_t &xl, const vec_t &xu, size_t calls, param_t &pa, double &res, double &err) |
Integrate function func over the hypercube from ![]() ![]() ![]() | |
virtual int | minteg_err (func_t &func, size_t ndim, const vec_t &a, const vec_t &b, param_t &pa, double &res, double &err) |
Integrate function func from x=a to x=b. | |
virtual double | minteg (func_t &func, size_t ndim, const vec_t &a, const vec_t &b, param_t &pa) |
Integrate function func over the hypercube from ![]() ![]() ![]() | |
virtual const char * | type () |
Return string denoting type ("gsl_miser"). | |
Data Fields | |
double | dither |
Introduce random variation into bisection (default 0.0). | |
double | estimate_frac |
Specify fraction of function calls for estimating variance (default 0.1). | |
double | alpha |
How estimated variances for two sub-regions are combined (default 2.0). | |
size_t | min_calls |
Minimum number of calls to estimate the variance. | |
size_t | min_calls_per_bisection |
Minimum number of calls required to proceed with bisection. | |
Protected Member Functions | |
virtual int | estimate_corrmc (func_t &func, size_t ndim, const vec_t &xl, const vec_t &xu, param_t &pa, size_t calls, double &res, double &err, const double lxmid[], double lsigma_l[], double lsigma_r[]) |
Esimate the variance. | |
Protected Attributes | |
size_t | dim |
The number of dimensions. | |
alloc_t | ao |
Memory allocator. | |
alloc_vec_t | x |
The most recent integration point. | |
Arrays which contain a value for each dimension | |
double * | xmid |
The current midpoint. | |
double * | sigma_l |
The left variance. | |
double * | sigma_r |
The right variance. | |
double * | fmax_l |
The maximum function value in the left half. | |
double * | fmax_r |
The maximum function value in the right half. | |
double * | fmin_l |
The minimum function value in the left half. | |
double * | fmin_r |
The minimum function value in the right half. | |
double * | fsum_l |
The sum in the left half. | |
double * | fsum_r |
The sum in the right half. | |
double * | fsum2_l |
The sum of the squares in the left half. | |
double * | fsum2_r |
The sum of the squares in the right half. | |
size_t * | hits_l |
The number of evaluation points in the left half. | |
size_t * | hits_r |
The number of evaluation points in the right half. |
virtual double minteg | ( | func_t & | func, | |
size_t | ndim, | |||
const vec_t & | a, | |||
const vec_t & | b, | |||
param_t & | pa | |||
) | [inline, virtual] |
This function is just a wrapper to minteg_err() which allocates the memory, sets min_calls and min_calls_per_bisection, calls miser_minteg_err(), and then frees the previously allocated memory.
Reimplemented from multi_inte.
Definition at line 642 of file gsl_miser.h.
virtual int minteg_err | ( | func_t & | func, | |
size_t | ndim, | |||
const vec_t & | a, | |||
const vec_t & | b, | |||
param_t & | pa, | |||
double & | res, | |||
double & | err | |||
) | [inline, virtual] |
This function is just a wrapper to miser_minteg_err() which allocates the memory, sets min_calls and min_calls_per_bisection, calls miser_minteg_err(), and then frees the previously allocated memory.
Implements multi_inte.
Definition at line 622 of file gsl_miser.h.
virtual int miser_minteg_err | ( | func_t & | func, | |
size_t | ndim, | |||
const vec_t & | xl, | |||
const vec_t & | xu, | |||
size_t | calls, | |||
param_t & | pa, | |||
double & | res, | |||
double & | err | |||
) | [inline, virtual] |
Definition at line 381 of file gsl_miser.h.
double alpha |
From GSL documentation:
This parameter controls how the estimated variances for the two sub-regions of a bisection are combined when allocating points. With recursive sampling the overall variance should scale better than 1/N, since the values from the sub-regions will be obtained using a procedure which explicitly minimizes their variance. To accommodate this behavior the MISER algorithm allows the total variance to depend on a scaling parameter \alpha, \Var(f) = {\sigma_a \over N_a^\alpha} + {\sigma_b \over N_b^\alpha}. The authors of the original paper describing MISER recommend the value \alpha = 2 as a good choice, obtained from numerical experiments, and this is used as the default value in this implementation.
Definition at line 129 of file gsl_miser.h.
double dither |
From GSL documentation:
This parameter introduces a random fractional variation of size DITHER into each bisection, which can be used to break the symmetry of integrands which are concentrated near the exact center of the hypercubic integration region. The default value of dither is zero, so no variation is introduced. If needed, a typical value of DITHER is 0.1.
Definition at line 92 of file gsl_miser.h.
double estimate_frac |
From GSL documentation:
This parameter specifies the fraction of the currently available number of function calls which are allocated to estimating the variance at each recursive step. The default value is 0.1.
Definition at line 105 of file gsl_miser.h.
size_t min_calls |
This is set by minteg() and minteg_err() to be 16 times the number of dimensions in the problem (the GSL default).
From GSL documentation:
This parameter specifies the minimum number of function calls required for each estimate of the variance. If the number of function calls allocated to the estimate using ESTIMATE_FRAC falls below MIN_CALLS then MIN_CALLS are used instead. This ensures that each estimate maintains a reasonable level of accuracy. The default value of MIN_CALLS is `16 * dim'.
Definition at line 147 of file gsl_miser.h.
size_t min_calls_per_bisection |
This is set by minteg() and minteg_err() to be 512 times the number of dimensions in the problem (the GSL default).
From GSL documentation:
This parameter specifies the minimum number of function calls required to proceed with a bisection step. When a recursive step has fewer calls available than MIN_CALLS_PER_BISECTION it performs a plain Monte Carlo estimate of the current sub-region and terminates its branch of the recursion. The default value of this parameter is `32 * min_calls'.
Definition at line 165 of file gsl_miser.h.
Documentation generated with Doxygen and provided under the GNU Free Documentation License. See License Information for details.
Project hosting provided by
,
O2scl Sourceforge Project Page