diff options
| author | Tyge Løvset <[email protected]> | 2021-03-03 11:19:44 +0100 |
|---|---|---|
| committer | Tyge Løvset <[email protected]> | 2021-03-03 11:19:44 +0100 |
| commit | 30cf6e3e080725539f7c09890a151d13eece7911 (patch) | |
| tree | 3b3285b56519d97244b6ec9c2d73d03be97eff87 /docs/crandom_api.md | |
| parent | 8e8234e98d5cdfebb8653b93d41cd7ae452fddb4 (diff) | |
| download | STC-modified-30cf6e3e080725539f7c09890a151d13eece7911.tar.gz STC-modified-30cf6e3e080725539f7c09890a151d13eece7911.zip | |
Last update for a while.
Diffstat (limited to 'docs/crandom_api.md')
| -rw-r--r-- | docs/crandom_api.md | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/docs/crandom_api.md b/docs/crandom_api.md index 44f89809..60545188 100644 --- a/docs/crandom_api.md +++ b/docs/crandom_api.md @@ -1,18 +1,22 @@ # STC [crandom](../stc/crandom.h): Pseudo Random Number Generator  -This describes the API of module **crandom**. It features a *64-bit PRNG* named **stc64**, -and can generate bounded uniform and normal distributed random numbers. +This features a *64-bit PRNG* named **stc64**, and can generate bounded uniform and normal +distributed random numbers. See [random](https://en.cppreference.com/w/cpp/header/random) for similar c++ functionality. +## Description + **stc64** is a novel, extremely fast PRNG by Tyge Løvset, suited for parallel usage. It features a Weyl-sequence as part of the state. In general testing, **stc64** is the fastest among *pcg64*, *xoshiro256`**`*, *sfc64*, and *lehmer64*. On some platforms, *wyrand64* is faster, but it has only -128-bit state with no minimum period length guarantee. *stc64* does not require fast multiplication -or 128-bit integer operations. It has 256 bit state, but updates only 192 bit per generated number. +128-bit state with no minimum period length guarantee. + +**stc64** does not require fast multiplication or 128-bit integer operations. It has 256 bit state, +but updates only 192 bit per generated number. -There is no *jump function*, but each odd number Weyl-increment (state[3]), starts a new +There is no *jump function*, but each odd number Weyl-increment (state[3]) starts a new unique 2^64 *minimum* length period. For a single thread, a minimum period of 2^127 is generated when the Weyl-increment is incremented by 2 every 2^64 output. |
