|
Monte Carlo Integration Library 1.0
High-performance Monte Carlo methods for numerical integration and optimization
|
N-dimensional hypercylinder. More...
#include <hypercylinder.hpp>
Public Member Functions | |
| HyperCylinder (double rad, double h) | |
| Construct a hypercylinder with given base radius and height. | |
| geom::Bounds< dim > | getBounds () const override |
| Get the axis-aligned bounding box (hypercube). | |
| double | getBoxVolume () const override |
| Get the volume of the bounding box. | |
| bool | isInside (const geom::Point< dim > &p) const override |
| Test if a point is inside the hypercylinder. | |
Public Member Functions inherited from mc::domains::IntegrationDomain< dim > | |
| virtual | ~IntegrationDomain ()=default |
| Virtual destructor for proper cleanup of derived classes. | |
N-dimensional hypercylinder.
| dim | Dimensionality (e.g., 2 for annulus, 3 for cylinder, N for hypercylinder). |
Represents a solid hypercylinder defined as an (N-1)-dimensional hypersphere of radius r extended (extruded) along the last dimension by height h: C = {x ∈ ℝⁿ : x₁² + ... + x_{n-1}² ≤ r², 0 ≤ xₙ ≤ h}
Bounding box: [-r, r]^(N-1) × [0, h].
Definition at line 28 of file hypercylinder.hpp.
| mc::domains::HyperCylinder< dim >::HyperCylinder | ( | double | rad, |
| double | h | ||
| ) |
Construct a hypercylinder with given base radius and height.
| rad | Radius of the (N-1)-dimensional hypersphere base (must be > 0). |
| h | Height along the last dimension (must be ≥ 0). |
|
overridevirtual |
Get the axis-aligned bounding box (hypercube).
Implements mc::domains::IntegrationDomain< dim >.
|
overridevirtual |
Get the volume of the bounding box.
Used for Monte Carlo weight normalization in sampling.
Implements mc::domains::IntegrationDomain< dim >.
|
overridevirtual |
Test if a point is inside the hypercylinder.
| p | Point to test. |
Implements mc::domains::IntegrationDomain< dim >.