20#ifndef quantlib_math_multidimintegrator_hpp
21#define quantlib_math_multidimintegrator_hpp
42 const std::vector<ext::shared_ptr<Integrator> >& integrators);
49 const ext::function<
Real (
const std::vector<Real>&)>&
f,
50 const std::vector<Real>& a,
51 const std::vector<Real>&
b)
const
54 "Incompatible integration problem dimensions");
74 const ext::function<
Real (
const std::vector<Real>&)>&
f,
76 const std::vector<Real>& a,
77 const std::vector<Real>&
b)
const ;
81 const ext::function<
Real (
const std::vector<Real>&)>&
f,
82 const std::vector<Real>& a,
83 const std::vector<Real>&
b)
const;
99 mutable std::vector<ext::function<
Real (
101 const ext::function<
Real (
const std::vector<Real>&)>&,
102 const std::vector<Real>&,
103 const std::vector<Real>&)
116 Real inline MultidimIntegral::vectorBinder<0> (
117 const ext::function<
Real (
const std::vector<Real>&)>&
f,
119 const std::vector<Real>& a,
120 const std::vector<Real>&
b)
const
127 void inline MultidimIntegral::spawnFcts<1>()
const {
129 return this->integrate<0>(
f, a,
b);
135 const ext::function<
Real (
const std::vector<Real>&)>&
f,
136 const std::vector<Real>& a,
137 const std::vector<Real>&
b)
const
141 return this->vectorBinder<nT>(
f, z, a,
b);
147 const ext::function<
Real (
const std::vector<Real>&)>&
f,
149 const std::vector<Real>& a,
150 const std::vector<Real>&
b)
const
Integrates a vector or scalar function of vector domain.
Real vectorBinder(const ext::function< Real(const std::vector< Real > &)> &f, Real z, const std::vector< Real > &a, const std::vector< Real > &b) const
std::vector< Real > varBuffer_
Real operator()(const ext::function< Real(const std::vector< Real > &)> &f, const std::vector< Real > &a, const std::vector< Real > &b) const
std::vector< ext::function< Real(const ext::function< Real(const std::vector< Real > &)> &, const std::vector< Real > &, const std::vector< Real > &) > > integrationLevelEntries_
Real integrate(const ext::function< Real(const std::vector< Real > &)> &f, const std::vector< Real > &a, const std::vector< Real > &b) const
static const Size maxDimensions_
const std::vector< ext::shared_ptr< Integrator > > integrators_
Classes and functions for error handling.
#define QL_REQUIRE(condition, message)
throw an error if the given pre-condition is not verified
ext::function< Real(Real)> b
Maps function, bind and cref to either the boost or std implementation.
std::size_t Size
size of a container
Integrators base class definition.