#include "hep/mc.hpp"
#include <cstddef>
#include <iostream>
#include <vector>
double const max = 3.0;
double const min = -3.0;
double gauss(
) {
double const range = max - min;
double const x = range * point.
point()[0] + min;
double const y = range * point.
point()[1] + min;
double const value = std::exp(-(x * x + y * y));
projector.
add(0, x, y, value);
return value;
}
int main()
{
auto integrand = hep::make_integrand<double>(
gauss,
2,
);
auto const chkpt =
hep::plain(integrand, std::vector<std::size_t>(1, 10000000));
auto const result = chkpt.results().back();
std::cout << "integral is I = " << result.value() << " +- " << result.error() << "\n\n";
auto const& distribution = result.distributions()[0];
std::cout.setf(std::ios_base::scientific);
{
<< distribution.results()[i].value() << '\t'
<< distribution.results()[i].error() << '\n';
}
}