|
| template<typename INTEGER = uint64_t, typename RANDOM = std::default_random_engine> |
| constexpr INTEGER | integer (RANDOM &rng=::ghassanpl::random::default_random_engine) |
| | Returns a random integer of the given type.
|
| template<typename REAL = double, typename RANDOM = std::default_random_engine> |
| REAL | percentage (RANDOM &rng=::ghassanpl::random::default_random_engine) |
| | Returns a random value between 0 and 1 of the given floating-point type.
|
| template<typename REAL = double, typename RANDOM = std::default_random_engine> |
| REAL | normal (RANDOM &rng=::ghassanpl::random::default_random_engine) |
| | Returns a random value of the given floating-point type in a normal distribution.
|
| template<typename RANDOM = std::default_random_engine> |
| uint64_t | dice (uint64_t n_sided, RANDOM &rng=::ghassanpl::random::default_random_engine) |
| | Returns the result of throwing an n_sided die (1-N).
|
| template<typename RANDOM = std::default_random_engine> |
| uint64_t | dice (uint64_t n_dice, uint64_t n_sided, RANDOM &rng=::ghassanpl::random::default_random_engine) |
| | Returns the result of throwing n_dice number of n_sided dice.
|
| template<uint64_t N_SIDED, typename RANDOM = std::default_random_engine> |
| uint64_t | dice (RANDOM &rng=::ghassanpl::random::default_random_engine) |
| | Returns the result of throwing an N_SIDED die (1-N).
|
| template<uint64_t N_DICE, uint64_t N_SIDED, typename RANDOM = std::default_random_engine> |
| uint64_t | dice (RANDOM &rng=::ghassanpl::random::default_random_engine) |
| | Returns the result of throwing N_DICE number of N_SIDED dice.
|
| template<typename RANDOM = std::default_random_engine> |
| bool | coin (RANDOM &rng=::ghassanpl::random::default_random_engine) |
| | Returns true or false randomly.
|
| template<typename RANDOM = std::default_random_engine, std::integral T> |
| T | in_integer_range (T from, T to, RANDOM &rng=::ghassanpl::random::default_random_engine) |
| template<typename RANDOM = std::default_random_engine, std::integral T> |
| T | in_integer_range (T to, RANDOM &rng=::ghassanpl::random::default_random_engine) |
| template<typename RANDOM = std::default_random_engine, std::floating_point T> |
| T | in_real_range (T from, T to, RANDOM &rng=::ghassanpl::random::default_random_engine) |
| template<typename RANDOM = std::default_random_engine, std::floating_point T> |
| T | in_real_range (T to, RANDOM &rng=::ghassanpl::random::default_random_engine) |
| template<typename RANDOM = std::default_random_engine, typename T> |
| auto | in_range (T from, T to, RANDOM &rng=::ghassanpl::random::default_random_engine) |
| template<typename T = float> |
| constexpr T | halton_sequence (size_t index, size_t base=2) |
| template<typename RANDOM = std::default_random_engine> |
| bool | with_probability (double probability, RANDOM &rng=::ghassanpl::random::default_random_engine) |
| | Returns true with the given 0-1 probability, false otherwise.
|
| template<typename RANDOM = std::default_random_engine> |
| bool | with_probability (double probability, double &result, RANDOM &rng=::ghassanpl::random::default_random_engine) |
| | Returns true with the given 0-1 probability, false otherwise; stores the result of the 0-1 "roll" in result.
|
| template<typename RANDOM = std::default_random_engine> |
| bool | one_in (size_t n, RANDOM &rng=::ghassanpl::random::default_random_engine) |
| | Returns true with a one-in-n chance.
|
| template<typename RANDOM = std::default_random_engine, typename T> |
| void | shuffle (T &cont, RANDOM &rng=::ghassanpl::random::default_random_engine) |
| | Shuffles the cont container (as if by std::shuffle).
|
| template<typename RANDOM = std::default_random_engine, typename T> |
| auto | iterator (T &cont, RANDOM &rng=::ghassanpl::random::default_random_engine) |
| | Returns an iterator to a random element in cont.
|
| template<typename RANDOM = std::default_random_engine, typename T, typename PRED> |
| auto | iterator_if (T &cont, PRED &&pred, RANDOM &rng=::ghassanpl::random::default_random_engine) |
| | Returns an iterator to a random element in cont that matches pred.
|
| template<typename RANDOM = std::default_random_engine, typename T> |
| auto | index (T &cont, RANDOM &rng=::ghassanpl::random::default_random_engine) |
| | Returns an index of a random element in cont.
|
| template<typename RANDOM = std::default_random_engine, typename T, typename PRED> |
| auto | index_if (T &cont, PRED &&pred, RANDOM &rng=::ghassanpl::random::default_random_engine) |
| | Returns an index of a random element in cont that matches pred.
|
| template<typename RANDOM = std::default_random_engine, typename T> |
| auto * | element (T &cont, RANDOM &rng=::ghassanpl::random::default_random_engine) |
| | Returns an pointer to a random element in cont.
|
| template<typename RANDOM = std::default_random_engine, typename T, typename PRED> |
| auto * | element_if (T &cont, PRED &&pred, RANDOM &rng=::ghassanpl::random::default_random_engine) |
| | Returns an pointer to a random element in cont that matches pred.
|
| template<typename... T> |
| auto | one_of (T &&... values) |
| | Returns one of its arguments at random.
|
| template<typename RANDOM = std::default_random_engine, typename T> |
| auto | one_of (std::initializer_list< T > values, RANDOM &rng=::ghassanpl::random::default_random_engine) |
| | Returns one of the values in values at random.
|
| template<typename RANDOM = std::default_random_engine, typename T> |
| auto | make_bag_randomizer (T &container, RANDOM &rng=::ghassanpl::random::default_random_engine) |
| | Returns an object that represents a random "bag" of iterators to objects in container.
|
| template<typename T, typename RANDOM> |
| size_t | option_with_probability (span< T const > option_probabilities, RANDOM &rng=::ghassanpl::random::default_random_engine) |
| | Returns an index of one of the options in option_probabilities, where its elements are the probability weights of their specific options.
|
| template<typename RANGE, typename FUNC, typename RANDOM> |
| auto | iterator_with_probability (RANGE &&range, FUNC &&prob_func, RANDOM &rng=::ghassanpl::random::default_random_engine) |
| | Returns an iterator to a random object in range, with the probability weights of an object being chosen given by prob_func(obj).
|
| template<std::floating_point T = float, typename RANDOM = std::default_random_engine> |
| T | radians (RANDOM &rng=::ghassanpl::random::default_random_engine) |
| template<std::floating_point T = float, typename RANDOM = std::default_random_engine> |
| T | degrees (RANDOM &rng=::ghassanpl::random::default_random_engine) |
| template<std::floating_point T = float, typename RANDOM = std::default_random_engine> |
| glm::tvec2< T > | unit_vector (RANDOM &rng=::ghassanpl::random::default_random_engine) |
| template<typename T, typename RANDOM = std::default_random_engine> |
| glm::tvec2< T > | point_in (trec2< T > const &rect, RANDOM &rng=::ghassanpl::random::default_random_engine) |
| template<typename T, typename RANDOM = std::default_random_engine> |
| glm::tvec2< T > | point_in (glm::tvec2< T > const &max, RANDOM &rng=::ghassanpl::random::default_random_engine) |
| template<typename T, typename RANDOM = std::default_random_engine> |
| glm::tvec2< T > | point_in (geometry::tellipse< T > const &el, RANDOM &rng=::ghassanpl::random::default_random_engine) |
| | TODO: This doesn't seem uniform.
|
| template<typename T, typename RANDOM = std::default_random_engine> |
| glm::tvec2< T > | point_in (geometry::ttriangle< T > const &tr, RANDOM &rng=::ghassanpl::random::default_random_engine) |
| template<typename T, typename RANDOM = std::default_random_engine> |
| glm::tvec2< T > | point_in (geometry::immutable::tpolygon< T > const &poly, RANDOM &rng=::ghassanpl::random::default_random_engine) |
| template<typename T, geometry::shape< T > S, typename RANDOM = std::default_random_engine> |
| glm::tvec2< T > | point_on (S const &shape, RANDOM &rng=::ghassanpl::random::default_random_engine) |
| | Returns a random point on the edge of the shape.
|
| template<typename RANDOM = std::default_random_engine> |
| glm::ivec2 | neighbor (RANDOM &rng=::ghassanpl::random::default_random_engine) |
| template<typename RANDOM = std::default_random_engine> |
| glm::ivec2 | diagonal_neighbor (RANDOM &rng=::ghassanpl::random::default_random_engine) |
| template<typename RANDOM = std::default_random_engine> |
| glm::ivec2 | surrounding (RANDOM &rng=::ghassanpl::random::default_random_engine) |
| template<std::floating_point T = float> |
| constexpr glm::tvec2< T > | halton_sequence_2d (size_t index, size_t base_x=2, size_t base_y=3) |
| | Returns the nth quasi-random vector in the [0, 1]^2 space.
|
| constexpr uint64_t | xorshift64 (uint64_t &state) noexcept |
| constexpr uint64_t | numrep_hash (uint64_t index) |
| constexpr uint64_t | philox64 (uint64_t sequence_index, uint32_t sequence_key) |