Monte Carlo Integration Library 1.0
High-performance Monte Carlo methods for numerical integration and optimization
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
mc::integrators::Integrator< dim > Class Template Referenceabstract

Abstract base class for Monte Carlo integration in N dimensions. More...

#include <integrator.hpp>

Inheritance diagram for mc::integrators::Integrator< dim >:
Collaboration diagram for mc::integrators::Integrator< dim >:

Public Member Functions

 Integrator (const mc::domains::IntegrationDomain< dim > &d)
 Constructs an integrator for a specific domain.
 
virtual 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)=0
 
virtual ~Integrator ()=default
 Virtual destructor for proper polymorphic cleanup.
 

Protected Member Functions

std::vector< mc::geom::Point< dim > > initializeRandomizer (int numbers)
 Initializes random samples uniformly distributed in the domain.
 

Protected Attributes

const mc::domains::IntegrationDomain< dim > & domain
 Reference to the integration domain.
 
std::vector< std::mt19937 > randomizer
 Per-thread random number generators.
 

Detailed Description

template<size_t dim>
class mc::integrators::Integrator< dim >

Abstract base class for Monte Carlo integration in N dimensions.

Template Parameters
dimThe dimensionality of the integration domain.

Manages random number generation and provides utilities for initializing sample points within the integration domain. Subclasses implement specific integration algorithms (uniform sampling, importance sampling, MCMC).

Definition at line 34 of file integrator.hpp.

Constructor & Destructor Documentation

◆ Integrator()

template<size_t dim>
mc::integrators::Integrator< dim >::Integrator ( const mc::domains::IntegrationDomain< dim > &  d)
inlineexplicit

Constructs an integrator for a specific domain.

Parameters
dReference to the integration domain.

Definition at line 116 of file integrator.hpp.

◆ ~Integrator()

template<size_t dim>
virtual mc::integrators::Integrator< dim >::~Integrator ( )
virtualdefault

Virtual destructor for proper polymorphic cleanup.

Member Function Documentation

◆ initializeRandomizer()

template<size_t dim>
std::vector< mc::geom::Point< dim > > mc::integrators::Integrator< dim >::initializeRandomizer ( int  numbers)
inlineprotected

Initializes random samples uniformly distributed in the domain.

Parameters
numbersThe number of sample points to generate.
Returns
Vector of randomly sampled points within the domain bounds.

Generates points uniformly in the bounding box, writes to file for visualization (hsphere_samples.dat, cylinder_samples.dat, etc.), and returns as vector of Point<dim>.

Note
This helper was used in earlier development; modern code uses RngManager.

Definition at line 49 of file integrator.hpp.

Here is the call graph for this function:

◆ integrate()

template<size_t dim>
virtual double mc::integrators::Integrator< dim >::integrate ( const std::function< double(const mc::geom::Point< dim > &)> &  f,
int  n_samples,
const mc::proposals::Proposal< dim > &  proposal,
std::uint32_t  seed 
)
pure virtual

Member Data Documentation

◆ domain

template<size_t dim>
const mc::domains::IntegrationDomain<dim>& mc::integrators::Integrator< dim >::domain
protected

Reference to the integration domain.

Definition at line 37 of file integrator.hpp.

◆ randomizer

template<size_t dim>
std::vector<std::mt19937> mc::integrators::Integrator< dim >::randomizer
protected

Per-thread random number generators.

Definition at line 38 of file integrator.hpp.


The documentation for this class was generated from the following file: