8#ifndef MONTECARLO_DGL_MHINTEGRATOR_HPP
9#define MONTECARLO_DGL_MHINTEGRATOR_HPP
12#include "../domains/integration_domain.hpp"
13#include "../proposals/proposal.hpp"
14#include "../mcmc/metropolisHastingsSampler.hpp"
15#include "../estimators/VolumeEstimatorMC.hpp"
16#include "../geometry.hpp"
42template <std::
size_t dim>
68 std::uint32_t seed)
override;
83 std::size_t thinning_,
84 std::size_t n_samples_volume_,
91 bool configured =
false;
94 std::size_t burn_in = 0;
96 std::size_t thinning = 1;
98 std::size_t n_samples_volume = 0;
100 double deviation = 1.0;
103 std::function<double(
const Point&)> p;
Abstract base class for N-dimensional integration domains.
N-dimensional point representation.
Abstract base class for Monte Carlo integration in N dimensions.
Metropolis-Hastings MCMC integrator for complex domains.
std::function< double(const Point &)> Func
void setConfig(std::size_t burn_in_, std::size_t thinning_, std::size_t n_samples_volume_, double deviation_, Func p_, Point x0_)
Configure the MCMC sampler parameters.
MHMontecarloIntegrator(const mc::domains::IntegrationDomain< dim > &d)
Construct an MH-based integrator for a domain.
double integrate(const Func &f, int n_samples, const mc::proposals::Proposal< dim > &proposal, std::uint32_t seed) override
Compute the integral using MH sampling combined with volume estimation.
Abstract proposal distribution interface.
Abstract base class for numerical integration in N-dimensional spaces.