Helios Engine
A modular ECS based data-oriented C++23 game engine framework
Loading...
Searching...
No Matches
random.hpp File Reference
#include <helios/utils/common_traits.hpp>
#include <concepts>
#include <cstdint>
#include <functional>
#include <limits>
#include <random>
#include <type_traits>

Go to the source code of this file.

Classes

class  helios::utils::RandomGenerator< Engine >
 Random number utilities with a user-provided engine. More...

Namespaces

namespace  helios
namespace  helios::utils

Concepts

concept  helios::utils::RandomEngine
 Concept for random number engines compatible with std distributions.
concept  helios::utils::Distribution
 Concept for standard-like distributions.

Typedefs

using helios::utils::DefaultRandomEngine = std::mt19937_64
 Default engine type used by random utilities.
using helios::utils::FastRandomEngine = std::minstd_rand
 Fast but lower-quality engine type used by random utilities.
using helios::utils::DefaultRandomGenerator = RandomGenerator<DefaultRandomEngine>
 Convenience alias for a generator using the default-quality engine.
using helios::utils::FastRandomGeneratorType = RandomGenerator<FastRandomEngine>
 Convenience alias for a generator using the fast engine.

Functions

uint64_t helios::utils::RandomDeviceSeed ()
 Internal helper to obtain seed from std::random_device.
DefaultRandomEngine helios::utils::MakeDefaultEngine ()
 Creates a default-quality random engine seeded with std::random_device.
FastRandomEngine helios::utils::MakeFastEngine ()
 Creates a fast linear random engine seeded with std::random_device.
DefaultRandomEnginehelios::utils::DefaultEngine ()
 Thread-local default-quality engine.
FastRandomEnginehelios::utils::FastEngineInstance ()
 Thread-local fast engine.
DefaultRandomGeneratorhelios::utils::RandomDefault ()
 Provides access to a thread-local default-quality random generator.
FastRandomGeneratorTypehelios::utils::RandomFast ()
 Provides access to a thread-local fast random generator.
template<utils::ArithmeticTrait T>
helios::utils::RandomValue ()
 Convenience function to generate a default-distribution value using the default engine.
template<utils::ArithmeticTrait T, utils::ArithmeticTrait U>
auto helios::utils::RandomValueFromRange (T min, U max) -> std::common_type_t< T, U >
 Convenience function to generate a value in range using the default engine.
template<utils::ArithmeticTrait T>
helios::utils::RandomFastValue ()
 Convenience function to generate a default-distribution value using the fast engine.
template<utils::ArithmeticTrait T, utils::ArithmeticTrait U>
auto helios::utils::RandomFastValueFromRange (T min, U max) -> std::common_type_t< T, U >
 Convenience function to generate a value in range using the fast engine.