Monte Carlo Integration Library
1.0
High-performance Monte Carlo methods for numerical integration and optimization
src
montecarlo
proposals
uniformProposal.hpp
Go to the documentation of this file.
1
9
#ifndef MONTECARLO_1_UNIFORM_PROPOSAL_HPP
10
#define MONTECARLO_1_UNIFORM_PROPOSAL_HPP
11
12
#include "
proposal.hpp
"
13
#include "../domains/integration_domain.hpp"
14
15
#include <array>
16
#include <random>
17
#include <utility>
18
19
namespace
mc
{
20
namespace
proposals {
21
30
template
<
size_t
dim>
31
class
UniformProposal
:
public
Proposal
<dim>
32
{
33
public
:
38
explicit
UniformProposal
(
const
mc::domains::IntegrationDomain<dim>
& d);
39
45
mc::geom::Point<dim>
sample
(std::mt19937& rng)
const override
;
46
52
double
pdf
(
const
mc::geom::Point<dim>
&)
const override
;
53
54
private
:
55
const
mc::domains::IntegrationDomain<dim>
& domain;
56
mutable
std::array<std::uniform_real_distribution<double>,
dim
> dist{};
57
double
vol_box;
58
};
59
60
}
// namespace proposals
61
}
// namespace mc
62
63
#include "
uniformProposal.tpp
"
64
65
#endif
// MONTECARLO_1_UNIFORM_PROPOSAL_HPP
mc::domains::IntegrationDomain
Abstract base class for N-dimensional integration domains.
Definition
integration_domain.hpp:29
mc::geom::Point
N-dimensional point representation.
Definition
geometry.hpp:32
mc::proposals::Proposal
Abstract proposal distribution interface.
Definition
proposal.hpp:29
mc::proposals::UniformProposal
Uniform distribution over a domain.
Definition
uniformProposal.hpp:32
mc::proposals::UniformProposal::UniformProposal
UniformProposal(const mc::domains::IntegrationDomain< dim > &d)
Construct uniform proposal over domain.
mc::proposals::UniformProposal::pdf
double pdf(const mc::geom::Point< dim > &) const override
Evaluate uniform PDF.
mc::proposals::UniformProposal::sample
mc::geom::Point< dim > sample(std::mt19937 &rng) const override
Sample uniform point from domain.
dim
constexpr int dim
Default dimensionality for integration.
Definition
main.cpp:36
mc
Definition
hypercylinder.hpp:15
proposal.hpp
Abstract base for probability distributions used in importance sampling.
uniformProposal.tpp
Generated by
1.9.8