2 #ifndef MCQMC_INTEGRATION_HPP 3 #define MCQMC_INTEGRATION_HPP 38 double delta = x - mean;
39 mean += delta /
static_cast<double>(n);
40 M2 += delta * (x - mean);
45 double absErr(
const int prob)
const;
46 double relErr(
const int prob)
const;
82 template<
typename I,
typename R,
typename D>
96 for (uint32_t j = 0; j < m; ++j) {
97 for (uint32_t i = 0; i < s; ++i) {
98 point[i] = dist(rand);
100 intsum.
addData(integrand(point));
106 eachintval.
absErr(probability)});
124 template<
typename I,
typename D>
128 int probability = 99)
130 uint32_t m = digitalNet.getM();
131 digitalNet.pointInitialize();
138 for (uint64_t j = 0; j < max; ++j) {
139 intsum.
addData(integrand(digitalNet.getPoint()));
140 digitalNet.nextPoint();
146 eachintval.
absErr(probability)});
179 for (uint64_t j = 0; j < max; ++j) {
187 eachintval.
absErr(probability)});
190 #endif // MCQMC_INTEGRATION_HPP double absErr(const int prob) const
MCQMCResult monte_carlo_integration(uint32_t s, uint32_t m, uint32_t N, I &integrand, R &rand, D &dist, int probability=99)
Definition: MCQMCIntegration.h:83
double getPoint(int i) const
get a component of a point vector.
Definition: DigitalNet.h:139
double unbiasedVar() const
double error
Definition: MCQMCIntegration.h:60
Definition: MCQMCIntegration.h:32
DigitalNet class for Quasi Monte-Carlo Method.
double relErr(const int prob) const
Definition: DigitalNet.h:30
void addData(const double x)
Definition: MCQMCIntegration.h:35
double value
Definition: MCQMCIntegration.h:59
MCQMCResult quasi_monte_carlo_integration(uint32_t N, I &integrand, D &digitalNet, int probability=99)
Definition: MCQMCIntegration.h:125
void pointInitialize()
(re-)initialize point.
DigitalNetID
ID of pre-defined Digital Net.
Definition: DigitalNet.h:34
void nextPoint()
state transition to next point.
Result Structure of Numeric Integration.
Definition: MCQMCIntegration.h:58
Digital Net class for Quasi Mote-Carlo Method.
Definition: DigitalNet.h:72