alpaka
Abstraction Library for Parallel Kernel Acceleration
Loading...
Searching...
No Matches
alpaka::rand::distribution::internal Namespace Reference

Classes

struct  BitLengthConformityAdapter
 Adapt the bit length of the engine output to match the target type. More...
struct  BitLengthConformityAdapter< T_Engine, 4u, 8u >
 Adapts a 32-bit engine output to a 64-bit value. More...
struct  BitLengthConformityAdapter< T_Engine, 8u, 4u >
 Adapt a 64-bit engine output to a 32-bit value. More...
struct  BoxMuller
 Scalar Box-Muller transform for floating-point types. More...
struct  Constants
 Contains some (constexpr-)constants for random bit integer to floating point conversion – which improve readability. More...
struct  IntervalAwareConversion
 Convert an integer RNG result to a floating-point value. More...
struct  IntervalAwareConversion< T_Engine, interval::CC, T_Integer, T_Floating >
 Converts an integer RNG output to a floating point type in the closed interval [0, 1]. More...
struct  IntervalAwareConversion< T_Engine, interval::CO, T_Integer, T_Floating >
 Converts an integer RNG output to a floating-point type in the interval [0, 1). More...
struct  IntervalAwareConversion< T_Engine, interval::OC, T_Integer, T_Floating >
 Convert an integer RNG output to a floating-point type in the interval (0, 1]. More...
struct  IntervalAwareConversion< T_Engine, interval::OO, T_Integer, T_Floating >
 Convert an integer RNG output to a floating-point type in the interval (0, 1). More...
class  UniformRealBase
struct  vectorDispatchWrapper
struct  vectorDispatchWrapper< T_Engine, 4u, TElemSize, TElems >
struct  vectorDispatchWrapper< T_Engine, 8u, 4u, TElems >
 Wrapper specialization enabling efficient generation of 64-bit values from vectorized engines without requiring two engine calls. More...

Functions

template<concepts::Interval T_Interval, std::floating_point T_Result, typename T_Engine>
constexpr auto getNormalizedUniformReal (T_Engine &engine) -> T_Result
 Generate a floating-point value in the requested interval.
template<std::floating_point T_Floating>
consteval T_Floating prevOne () noexcept
 Returns a constant, which is equivalent to std::nextafter(T_Floating{1}, T_Floating{0}) or more specifically: returns the highest floating-point value lower than one.

Function Documentation

◆ getNormalizedUniformReal()

template<concepts::Interval T_Interval, std::floating_point T_Result, typename T_Engine>
auto alpaka::rand::distribution::internal::getNormalizedUniformReal ( T_Engine & engine) -> T_Result
constexpr

Generate a floating-point value in the requested interval.

Adapts the engine output to the required bit length and converts the integer to a normalized floating point value in the requested interval

Definition at line 168 of file UniformReal.hpp.

◆ prevOne()

template<std::floating_point T_Floating>
T_Floating alpaka::rand::distribution::internal::prevOne ( )
constevalnoexcept

Returns a constant, which is equivalent to std::nextafter(T_Floating{1}, T_Floating{0}) or more specifically: returns the highest floating-point value lower than one.

There does not seem to exist a representation of this particular floating-point number in std::numerical_limits and std::nextafter is not constexpr(cpp20).

Definition at line 19 of file UniformReal.hpp.