#include "hep/mc.hpp"
#include <cstddef>
#include <fstream>
#include <random>
#include <vector>
template <typename T>
{
T const x = point.point().at(0);
T const v = T(2.0) * x;
projector.add(0, x, v);
return v;
}
int main()
{
std::cout << ">>> loading checkpoint from `chkpt2` ...\n\n";
std::ifstream in("chkpt2");
auto const chkpt_from_disk = hep::make_plain_chkpt<double, std::mt19937>(in);
in.close();
hep::make_integrand<double>(
function<double>,
1,
hep::make_dist_params<double>(10, 0.0, 1.0, "distribution #1")
),
std::vector<std::size_t>(5, 100000),
chkpt_from_disk
);
std::cout << ">>> overwriting checkpoint ...\n";
std::ofstream out("chkpt2");
chkpt.serialize(out);
std::cout << ">>> - restart this program as often as you like to improve the result\n";
std::cout << ">>> - remove the file `chkpt2` to reset\n";
}