summaryrefslogtreecommitdiffhomepage
path: root/docs
diff options
context:
space:
mode:
authorTyge Løvset <[email protected]>2021-03-03 11:19:44 +0100
committerTyge Løvset <[email protected]>2021-03-03 11:19:44 +0100
commit30cf6e3e080725539f7c09890a151d13eece7911 (patch)
tree3b3285b56519d97244b6ec9c2d73d03be97eff87 /docs
parent8e8234e98d5cdfebb8653b93d41cd7ae452fddb4 (diff)
downloadSTC-modified-30cf6e3e080725539f7c09890a151d13eece7911.tar.gz
STC-modified-30cf6e3e080725539f7c09890a151d13eece7911.zip
Last update for a while.
Diffstat (limited to 'docs')
-rw-r--r--docs/crandom_api.md14
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
![Random](pics/random.jpg)
-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.