|
limes 3.1.0
Composable Calculus Expressions for C++20
|
Box integral with constraint for irregular regions. More...
#include <box_integral.hpp>
Public Types | |
| using | value_type = typename E::value_type |
| using | integrand_type = E |
| using | bounds_type = std::array< std::pair< value_type, value_type >, Dims > |
Public Member Functions | |
| constexpr | ConstrainedBoxIntegral (E e, bounds_type b, Constraint c) noexcept |
| algorithms::integration_result< value_type > | eval (methods::monte_carlo< value_type > const &method) const |
| Evaluate using Monte Carlo with rejection sampling. | |
| algorithms::integration_result< value_type > | eval () const |
| Evaluate with default Monte Carlo. | |
| algorithms::integration_result< value_type > | eval (std::size_t samples) const |
| Evaluate with sample count. | |
| std::string | to_string () const |
| String representation. | |
Public Attributes | |
| E | integrand |
| bounds_type | bounds |
| Constraint | constraint |
Static Public Attributes | |
| static constexpr std::size_t | dims_v = Dims |
| static constexpr std::size_t | arity_v = (E::arity_v > Dims) ? (E::arity_v - Dims) : 0 |
Box integral with constraint for irregular regions.
Uses rejection sampling to integrate over regions defined by a constraint function. Points are sampled from the bounding box and rejected if they don't satisfy the constraint.
| E | Integrand expression type |
| Dims | Number of dimensions |
| Constraint | Constraint predicate type |
Definition at line 253 of file box_integral.hpp.
| using limes::expr::ConstrainedBoxIntegral< E, Dims, Constraint >::bounds_type = std::array<std::pair<value_type, value_type>, Dims> |
Definition at line 256 of file box_integral.hpp.
| using limes::expr::ConstrainedBoxIntegral< E, Dims, Constraint >::integrand_type = E |
Definition at line 255 of file box_integral.hpp.
| using limes::expr::ConstrainedBoxIntegral< E, Dims, Constraint >::value_type = typename E::value_type |
Definition at line 254 of file box_integral.hpp.
|
inlineconstexprnoexcept |
Definition at line 265 of file box_integral.hpp.
|
inline |
Evaluate with default Monte Carlo.
Definition at line 311 of file box_integral.hpp.
References limes::expr::ConstrainedBoxIntegral< E, Dims, Constraint >::eval().
Referenced by limes::expr::ConstrainedBoxIntegral< E, Dims, Constraint >::eval(), and limes::expr::ConstrainedBoxIntegral< E, Dims, Constraint >::eval().
|
inline |
Evaluate using Monte Carlo with rejection sampling.
Definition at line 270 of file box_integral.hpp.
References limes::expr::ConstrainedBoxIntegral< E, Dims, Constraint >::bounds, limes::expr::ConstrainedBoxIntegral< E, Dims, Constraint >::integrand, limes::methods::monte_carlo< T >::samples, limes::methods::monte_carlo< T >::seed, limes::expr::sum(), and limes::expr::y.
|
inline |
Evaluate with sample count.
Definition at line 317 of file box_integral.hpp.
References limes::expr::ConstrainedBoxIntegral< E, Dims, Constraint >::eval().
|
inline |
String representation.
Definition at line 322 of file box_integral.hpp.
References limes::expr::ConstrainedBoxIntegral< E, Dims, Constraint >::bounds, and limes::expr::ConstrainedBoxIntegral< E, Dims, Constraint >::integrand.
|
staticconstexpr |
Definition at line 259 of file box_integral.hpp.
| bounds_type limes::expr::ConstrainedBoxIntegral< E, Dims, Constraint >::bounds |
Definition at line 262 of file box_integral.hpp.
Referenced by limes::expr::ConstrainedBoxIntegral< E, Dims, Constraint >::eval(), and limes::expr::ConstrainedBoxIntegral< E, Dims, Constraint >::to_string().
| Constraint limes::expr::ConstrainedBoxIntegral< E, Dims, Constraint >::constraint |
Definition at line 263 of file box_integral.hpp.
|
staticconstexpr |
Definition at line 258 of file box_integral.hpp.
| E limes::expr::ConstrainedBoxIntegral< E, Dims, Constraint >::integrand |
Definition at line 261 of file box_integral.hpp.
Referenced by limes::expr::ConstrainedBoxIntegral< E, Dims, Constraint >::eval(), and limes::expr::ConstrainedBoxIntegral< E, Dims, Constraint >::to_string().