|
Monte Carlo Integration Library 1.0
High-performance Monte Carlo methods for numerical integration and optimization
|
Abstract base class for N-dimensional integration domains. More...
#include <integration_domain.hpp>
Public Member Functions | |
| virtual mc::geom::Bounds< dim > | getBounds () 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. | |
Abstract base class for N-dimensional integration domains.
| dim | Dimensionality 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.
Definition at line 29 of file integration_domain.hpp.
|
virtualdefault |
Virtual destructor for proper cleanup of derived classes.
|
pure virtual |
Get the axis-aligned bounding box of the domain.
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 >.
|
pure virtual |
Compute the volume of the bounding box.
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 >.
|
pure virtual |
Test whether a point lies inside the domain.
| point | Point to test |
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 >.