| Did you know ... | Search Documentation: |
| Pack logtalk -- logtalk-3.101.0/docs/apis/_sources/fast_random_1.rst.txt |
.. index:: single: fast_random(Algorithm)
.. _fast_random/1:
.. rst-class:: right
object
fast_random(Algorithm)Algorithm - Random number generator algorithm. One of as183, splitmix64, xoshiro128pp, xoshiro128ss, xoshiro256pp, xoshiro256ss, well512a.
Fast portable random number generator predicates.
| Availability:
| logtalk_load(random(loader))
| Author: Paulo Moura | Version: 3:0:0 | Date: 2026-02-23
| Compilation flags:
| static, context_switching_calls
| Implements:
| public :ref:`pseudo_random_protocol <pseudo_random_protocol/0>`
| public :ref:`sampling_protocol <sampling_protocol/0>`
| Uses:
| :ref:`list <list/0>`
| Remarks:
random library object but does not support being extended to define multiple random number generators.as183: Algorithm AS 183 from Applied Statistics. 32-bit PRNG with period 2^60. Not cryptographically secure.xoshiro128pp: Xoshiro128++ random number generator. 32-bit state-of-the-art PRNG with period 2^128-1. Algorithm by David Blackman and Sebastiano Vigna.xoshiro128ss: Xoshiro128** random number generator. 32-bit PRNG with period 2^128-1. Algorithm by David Blackman and Sebastiano Vigna.xoshiro256pp: Xoshiro256++ random number generator. 64-bit state-of-the-art PRNG with period 2^256-1. Algorithm by David Blackman and Sebastiano Vigna.xoshiro256ss: Xoshiro256** random number generator. 64-bit PRNG with period 2^256-1. Algorithm by David Blackman and Sebastiano Vigna.splitmix64: SplitMix64 random number generator. 64-bit PRNG primarily used for seeding other generators. Algorithm by Guy L. Steele Jr. et al.well512a: WELL512a 16x32-bit state-of-the-art PRNG with period 2^512-1. Algorithm by by François Panneton, Pierre L'Ecuyer, and Makoto Matsumoto.
| Inherited public predicates:
| Â :ref:sampling_protocol/0::bernoulli/2 Â :ref:sampling_protocol/0::beta/3 Â :ref:random_protocol/0::between/3 Â :ref:sampling_protocol/0::binomial/3 Â :ref:sampling_protocol/0::chi_squared/2 Â :ref:sampling_protocol/0::circular_uniform_cartesian/3 Â :ref:sampling_protocol/0::circular_uniform_polar/3 Â :ref:sampling_protocol/0::dirichlet/2 Â :ref:random_protocol/0::enumerate/2 Â :ref:sampling_protocol/0::exponential/2 Â :ref:sampling_protocol/0::fisher/3 Â :ref:sampling_protocol/0::gamma/3 Â :ref:sampling_protocol/0::geometric/2 Â :ref:pseudo_random_protocol/0::get_seed/1 Â :ref:sampling_protocol/0::gumbel/3 Â :ref:sampling_protocol/0::hypergeometric/4 Â :ref:sampling_protocol/0::logistic/3 Â :ref:sampling_protocol/0::lognormal/3 Â :ref:sampling_protocol/0::logseries/2 Â :ref:random_protocol/0::maybe/0 Â :ref:random_protocol/0::maybe/1 Â :ref:random_protocol/0::maybe/2 Â :ref:random_protocol/0::maybe_call/1 Â :ref:random_protocol/0::maybe_call/2 Â :ref:random_protocol/0::member/2 Â :ref:sampling_protocol/0::normal/3 Â :ref:random_protocol/0::permutation/2 Â :ref:sampling_protocol/0::poisson/2 Â :ref:sampling_protocol/0::power/2 Â :ref:random_protocol/0::random/1 Â :ref:random_protocol/0::random/3 Â :ref:random_protocol/0::randseq/4 Â :ref:random_protocol/0::randset/4 Â :ref:random_protocol/0::select/3 Â :ref:random_protocol/0::select/4 Â :ref:random_protocol/0::sequence/4 Â :ref:random_protocol/0::set/4 Â :ref:pseudo_random_protocol/0::set_seed/1 Â :ref:sampling_protocol/0::standard_cauchy/3 Â :ref:sampling_protocol/0::standard_exponential/1 Â :ref:sampling_protocol/0::standard_gamma/2 Â :ref:sampling_protocol/0::standard_normal/1 Â :ref:sampling_protocol/0::standard_t/2 Â :ref:random_protocol/0::swap/2 Â :ref:random_protocol/0::swap_consecutive/2 Â :ref:sampling_protocol/0::triangular/4 Â :ref:sampling_protocol/0::uniform/1 Â :ref:sampling_protocol/0::uniform/3 Â :ref:sampling_protocol/0::von_mises/3 Â :ref:sampling_protocol/0::wald/3 Â :ref:sampling_protocol/0::weibull/3 Â
.. contents:: :local: :backlinks: top
.. index:: reset_seed/0 .. _fast_random/1::reset_seed/0:
reset_seed/0 ^^^^^^^^^^^^^^^^
Resets the random generator seed to its default value. Use get_seed/1 and set_seed/1 instead if you need reproducibility.
| Compilation flags:
| static, synchronized
| Mode and number of proofs:
| reset_seed - one
.. index:: randomize/1 .. _fast_random/1::randomize/1:
randomize/1 ^^^^^^^^^^^^^^^
Randomizes the random generator using a positive integer to compute a new seed. Use of a large integer is recommended. In alternative, when using a small integer argument, discard the first dozen random values.
| Compilation flags:
| static, synchronized
| Template:
| randomize(Seed)
| Mode and number of proofs:
| randomize(+positive_integer) - one
(no local declarations; see entity ancestors if any)
.. index:: seed_/2 .. _fast_random/1::seed_/2:
seed_/2
^^^^^^^^^^^
Stores the current random generator seed values (a ground but otherwise opaque term).
| Compilation flags:
| dynamic
| Template:
| seed_(Algorithm,Seed)
| Mode and number of proofs:
| seed_(+atom,-ground) - one
(none)
.. seealso::
:ref:`fast_random <fast_random/0>`, :ref:`random(Algorithm) <random/1>`, :ref:`random <random/0>`, :ref:`backend_random <backend_random/0>`