miser

Result!Real
miser
(
Func
Real
)
(
scope Func f
,
in Area!Real area
,
Real epsRel = cast(Real)1e-6
,
Real epsAbs = cast(Real)0
,
size_t npoints = 1000
)

Examples

import std.math : PI, pow;
import std.stdio : writeln;
auto func = function( double[] xs )
{
    if (pow(xs[0],2)+pow(xs[1],2)<= 1.0)
        return 1.0;
    return 0.0;
};

auto result = integrate( func, [-1.0,-1], [1.0,1.0], 1e-5, 0 );
result.writeln;
assert( result.value <= PI + 1e-2 );
assert( result.value >= PI - 1e-2 );

Meta