Monte Carlo Integration Library 1.0
High-performance Monte Carlo methods for numerical integration and optimization
ISintegrator.hpp
Go to the documentation of this file.
1
8#ifndef MONTECARLO_DGL_ISINTEGRATOR_HPP
9#define MONTECARLO_DGL_ISINTEGRATOR_HPP
10
11#include "../domains/integration_domain.hpp"
12#include "../proposals/proposal.hpp"
13#include "../proposals/uniformProposal.hpp"
14#include "../proposals/gaussianProposal.hpp"
15#include "../proposals/mixtureProposal.hpp"
16#include "../mcmc/metropolisHastingsSampler.hpp"
17#include "../estimators/VolumeEstimatorMC.hpp"
18#include "../estimators/ISMeanEstimator.hpp"
19#include "../estimators/MCMeanEstimator.hpp"
20#include "../geometry.hpp"
21#include "integrator.hpp"
22#include <functional>
23
24namespace mc::integrators {
25
39template <std::size_t dim>
41public:
42
48
61 double integrate(const std::function<double(const mc::geom::Point<dim>&)>& f,
62 int n_samples,
63 const mc::proposals::Proposal<dim>& proposal,
64 std::uint32_t seed) override;
65
66};
67
68} // namespace mc::integrators
69
70#include "ISintegrator.tpp"
71
72#endif //MONTECARLO_DGL_ISINTEGRATOR_HPP
Abstract base class for N-dimensional integration domains.
N-dimensional point representation.
Definition geometry.hpp:32
Importance sampling Monte Carlo integrator.
double integrate(const std::function< double(const mc::geom::Point< dim > &)> &f, int n_samples, const mc::proposals::Proposal< dim > &proposal, std::uint32_t seed) override
Compute the integral using importance sampling.
ISMontecarloIntegrator(const mc::domains::IntegrationDomain< dim > &d)
Construct an importance sampling integrator.
Abstract base class for Monte Carlo integration in N dimensions.
Abstract proposal distribution interface.
Definition proposal.hpp:29
Abstract base class for numerical integration in N-dimensional spaces.