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

Abstract base class for N-dimensional integration domains. More...

#include <integration_domain.hpp>

Inheritance diagram for mc::domains::IntegrationDomain< dim >:
Collaboration diagram for mc::domains::IntegrationDomain< dim >:

Public Member Functions

virtual mc::geom::Bounds< dimgetBounds () const =0
 Get the axis-aligned bounding box of the domain.
 
virtual double getBoxVolume () const =0
 Compute the volume of the bounding box.
 
virtual bool isInside (const mc::geom::Point< dim > &point) const =0
 Test whether a point lies inside the domain.
 
virtual ~IntegrationDomain ()=default
 Virtual destructor for proper cleanup of derived classes.
 

Detailed Description

template<size_t dim>
class mc::domains::IntegrationDomain< dim >

Abstract base class for N-dimensional integration domains.

Template Parameters
dimDimensionality of the domain

Provides the interface required by Monte Carlo integrators to sample and evaluate points within geometric regions. All domain types must implement bounding box, volume, and point containment queries.

Note
This is a pure virtual interface requiring concrete implementations.

Definition at line 29 of file integration_domain.hpp.

Constructor & Destructor Documentation

◆ ~IntegrationDomain()

template<size_t dim>
virtual mc::domains::IntegrationDomain< dim >::~IntegrationDomain ( )
virtualdefault

Virtual destructor for proper cleanup of derived classes.

Member Function Documentation

◆ getBounds()

template<size_t dim>
virtual mc::geom::Bounds< dim > mc::domains::IntegrationDomain< dim >::getBounds ( ) const
pure virtual

Get the axis-aligned bounding box of the domain.

Returns
Bounds object containing min/max extents along each axis

Used by samplers to generate candidate points uniformly within a hyperrectangle enclosing the actual domain.

Implemented in DroneArmDomain, mc::domains::HyperCylinder< dim >, mc::domains::HyperRectangle< dim >, mc::domains::Hypersphere< dim >, and mc::domains::PolyTope< dim >.

◆ getBoxVolume()

template<size_t dim>
virtual double mc::domains::IntegrationDomain< dim >::getBoxVolume ( ) const
pure virtual

Compute the volume of the bounding box.

Returns
Volume of the hyperrectangular bounding region

Required for acceptance-rejection sampling and Hit-or-Miss volume estimation. Returns the product of extents along all axes.

Implemented in DroneArmDomain, mc::domains::HyperCylinder< dim >, mc::domains::HyperRectangle< dim >, mc::domains::Hypersphere< dim >, and mc::domains::PolyTope< dim >.

◆ isInside()

template<size_t dim>
virtual bool mc::domains::IntegrationDomain< dim >::isInside ( const mc::geom::Point< dim > &  point) const
pure virtual

Test whether a point lies inside the domain.

Parameters
pointPoint to test
Returns
true if point ∈ domain, false otherwise

This is the core containment predicate used during Monte Carlo sampling. Should be implemented efficiently as it's called millions of times.

Implemented in mc::domains::HyperCylinder< dim >, mc::domains::PolyTope< dim >, mc::domains::HyperRectangle< dim >, and mc::domains::Hypersphere< dim >.


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