Skip to content

Commit

Permalink
deploy: 12625b8
Browse files Browse the repository at this point in the history
  • Loading branch information
zoj613 committed May 6, 2024
1 parent 3a92bb1 commit 857e7ed
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 1 deletion.
19 changes: 19 additions & 0 deletions bitgenerators/Bitgen/EFIIX64x48/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>EFIIX64x48 (bitgenerators.Bitgen.EFIIX64x48)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../odoc.support/odoc.css"/><meta name="generator" content="odoc 2.4.2"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../odoc.support/highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script><link rel="stylesheet" href="../../../odoc.support/katex.min.css"/><script src="../../../odoc.support/katex.min.js"></script><script>
//<![CDATA[

document.addEventListener("DOMContentLoaded", function () {
var elements = Array.from(document.getElementsByClassName("odoc-katex-math"));
for (var i = 0; i < elements.length; i++) {
var el = elements[i];
var content = el.textContent;
var new_el = document.createElement("span");
new_el.setAttribute("class", "odoc-katex-math-rendered");
var display = el.classList.contains("display");
katex.render(content, new_el, { throwOnError: false, displayMode: display });
el.replaceWith(new_el);
}
});

//]]>
</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a><a href="../../index.html">bitgenerators</a> &#x00BB; <a href="../index.html">Bitgen</a> &#x00BB; EFIIX64x48</nav><header class="odoc-preamble"><h1>Module <code><span>Bitgen.EFIIX64x48</span></code></h1><p>EFIIX64x48 is a 64-bit PRNG that uses a set of tables to generate random values. This produces a fast PRNG with statistical quality similar to cryptographic generators but faster.</p><p>The EFIIX64x48 state vector consists of a 16-element array of 64-bit unsigned integers and a 32-element array of 64-bit unsigned integers. In addition, 3 constant values and a counter are used in the update.</p><p>The initial state of the bitgenerator is provided using <a href="../SeedSequence/index.html#type-t"><code>SeedSequence.t</code></a>.</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec type anchored" id="type-t"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span></code></div><div class="spec-doc"><p><code>t</code> is the state of the bitgenerator.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-next_uint64"><a href="#val-next_uint64" class="anchor"></a><code><span><span class="keyword">val</span> next_uint64 : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span class="xref-unresolved">Stdint</span>.uint64 * <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>next_uint64 t</code> Generates a random unsigned 64-bit integer and a state of the generator advanced forward by one step.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-next_uint32"><a href="#val-next_uint32" class="anchor"></a><code><span><span class="keyword">val</span> next_uint32 : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span class="xref-unresolved">Stdint</span>.uint32 * <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>next_uint32 t</code> Generates a random unsigned 32-bit integer and a state of the generator advanced forward by one step.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-next_bounded_uint64"><a href="#val-next_bounded_uint64" class="anchor"></a><code><span><span class="keyword">val</span> next_bounded_uint64 : <span><span class="xref-unresolved">Stdint</span>.uint64 <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span class="xref-unresolved">Stdint</span>.uint64 * <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>next_bounded_uint64 b t</code> Generates a random unsigned 64-bit integer in the interval <code class="odoc-katex-math">[0, b)</code>. It returns the integer as well as the state of the generator advanced forward. To generate an integer in the range <code class="odoc-katex-math">[a, b)</code>, one should generate an integer in <code class="odoc-katex-math">[0, b - a)</code> using <code>next_bounded_uint64 (b - a) t</code> and then add <code>a</code> to the resulting integer to get the output in the desired range.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-next_double"><a href="#val-next_double" class="anchor"></a><code><span><span class="keyword">val</span> next_double : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> float * <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>next_double t</code> Generates a random 64 bit float and a state of the generator advanced forward by one step.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-initialize"><a href="#val-initialize" class="anchor"></a><code><span><span class="keyword">val</span> initialize : <span><span class="xref-unresolved">Bitgen__.Seed.SeedSequence.t</span> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>initialize s</code> Returns the initial state of the generator. The random stream is determined by the initialization of the seed sequence <code>s</code> of <a href="../SeedSequence/index.html#type-t"><code>SeedSequence.t</code></a> type.</p></div></div></div></body></html>
2 changes: 1 addition & 1 deletion bitgenerators/Bitgen/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,4 @@
[0.227336022467169663; 0.316758339709752867; 0.797365457332734118;
0.676254670750974562; 0.391109550601909; 0.332813927866384529;
0.598308753587189823; 0.186734185603713354; 0.672756044014621302;
0.941802865269937173] *)</code></pre></header><div class="odoc-content"><div class="odoc-spec"><div class="spec module anchored" id="module-SeedSequence"><a href="#module-SeedSequence" class="anchor"></a><code><span><span class="keyword">module</span> <a href="SeedSequence/index.html">SeedSequence</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>SeedSequence mixes sources of entropy in a reproducible way to set the initial state for independent and very probably non-overlapping BitGenerators.</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-SFC64"><a href="#module-SFC64" class="anchor"></a><code><span><span class="keyword">module</span> <a href="SFC64/index.html">SFC64</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>SFC64 is a 256-bit implementation of Chris Doty-Humphrey's Small Fast Chaotic PRNG. It has a few different cycles that one might be on, depending on the seed; the expected period will be about <code class="odoc-katex-math">2^{255}</code>.</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-PCG64"><a href="#module-PCG64" class="anchor"></a><code><span><span class="keyword">module</span> <a href="PCG64/index.html">PCG64</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>PCG-64 is a 128-bit implementation of O'Neill's permutation congruential generator. PCG-64 has a period of <code class="odoc-katex-math">2^{128}</code> and supports advancing an arbitrary number of steps as well as <code class="odoc-katex-math">2^{127}</code> streams.</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Xoshiro256"><a href="#module-Xoshiro256" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Xoshiro256/index.html">Xoshiro256</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>Xoshiro256** is a 64-bit PRNG that uses a carefully constructed linear transformation. This produces a fast PRNG with excellent statistical quality. Xoshiro256** has a period of <code class="odoc-katex-math">2^{256} - 1</code> and supports jumping the sequence in increments of <code class="odoc-katex-math">2^{128}</code> which allows multiple non-overlapping subsequences to be generated.</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Philox4x64"><a href="#module-Philox4x64" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Philox4x64/index.html">Philox4x64</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>Philox4x64 (a mnemonic for Product HI LO Xor) is a 64-bit PRNG that uses a counter-based design based on weaker (and faster) versions of cryptographic functions. Instances using different values of the key produce independent sequences. Philox has a period of <code class="odoc-katex-math">2^{256} - 1</code> and supports arbitrary advancing and jumping the sequence in increments of <code class="odoc-katex-math">2^{128}</code>. These features allow multiple non-overlapping sequences to be generated. Philox's round function is applied 10 times each time the PRNG is advanced forward.</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-ChaCha"><a href="#module-ChaCha" class="anchor"></a><code><span><span class="keyword">module</span> <a href="ChaCha/index.html">ChaCha</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>ChaCha is a 64-bit PRNG that uses a counter-based design based on the ChaCha cipher. Instances using different values of the key produce sequences. ChaCha has a period of <code class="odoc-katex-math">2^{128}</code> and supports arbitrary advancing and jumping the sequence in increments of <code class="odoc-katex-math">2^{64}</code>. These features allow multiple non-overlapping sequences to be generated.</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-LXM"><a href="#module-LXM" class="anchor"></a><code><span><span class="keyword">module</span> <a href="LXM/index.html">LXM</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>The LXM generator combines two simple generators with an optional additional hashing of the output. The first generator is a LCG of with and update <code class="odoc-katex-math">s = a s + b \mod 2^{64}</code> where <code class="odoc-katex-math">a</code> is <code class="odoc-katex-math">2862933555777941757</code> and <code class="odoc-katex-math">b</code> is settable. The default value of <code class="odoc-katex-math">b</code> is <code class="odoc-katex-math">3037000493</code>. The second is the standard 64-bit xorshift generator.</p></div></div></div></body></html>
0.941802865269937173] *)</code></pre></header><div class="odoc-content"><div class="odoc-spec"><div class="spec module anchored" id="module-SeedSequence"><a href="#module-SeedSequence" class="anchor"></a><code><span><span class="keyword">module</span> <a href="SeedSequence/index.html">SeedSequence</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>SeedSequence mixes sources of entropy in a reproducible way to set the initial state for independent and very probably non-overlapping BitGenerators.</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-SFC64"><a href="#module-SFC64" class="anchor"></a><code><span><span class="keyword">module</span> <a href="SFC64/index.html">SFC64</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>SFC64 is a 256-bit implementation of Chris Doty-Humphrey's Small Fast Chaotic PRNG. It has a few different cycles that one might be on, depending on the seed; the expected period will be about <code class="odoc-katex-math">2^{255}</code>.</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-PCG64"><a href="#module-PCG64" class="anchor"></a><code><span><span class="keyword">module</span> <a href="PCG64/index.html">PCG64</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>PCG-64 is a 128-bit implementation of O'Neill's permutation congruential generator. PCG-64 has a period of <code class="odoc-katex-math">2^{128}</code> and supports advancing an arbitrary number of steps as well as <code class="odoc-katex-math">2^{127}</code> streams.</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Xoshiro256"><a href="#module-Xoshiro256" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Xoshiro256/index.html">Xoshiro256</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>Xoshiro256** is a 64-bit PRNG that uses a carefully constructed linear transformation. This produces a fast PRNG with excellent statistical quality. Xoshiro256** has a period of <code class="odoc-katex-math">2^{256} - 1</code> and supports jumping the sequence in increments of <code class="odoc-katex-math">2^{128}</code> which allows multiple non-overlapping subsequences to be generated.</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Philox4x64"><a href="#module-Philox4x64" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Philox4x64/index.html">Philox4x64</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>Philox4x64 (a mnemonic for Product HI LO Xor) is a 64-bit PRNG that uses a counter-based design based on weaker (and faster) versions of cryptographic functions. Instances using different values of the key produce independent sequences. Philox has a period of <code class="odoc-katex-math">2^{256} - 1</code> and supports arbitrary advancing and jumping the sequence in increments of <code class="odoc-katex-math">2^{128}</code>. These features allow multiple non-overlapping sequences to be generated. Philox's round function is applied 10 times each time the PRNG is advanced forward.</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-ChaCha"><a href="#module-ChaCha" class="anchor"></a><code><span><span class="keyword">module</span> <a href="ChaCha/index.html">ChaCha</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>ChaCha is a 64-bit PRNG that uses a counter-based design based on the ChaCha cipher. Instances using different values of the key produce sequences. ChaCha has a period of <code class="odoc-katex-math">2^{128}</code> and supports arbitrary advancing and jumping the sequence in increments of <code class="odoc-katex-math">2^{64}</code>. These features allow multiple non-overlapping sequences to be generated.</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-LXM"><a href="#module-LXM" class="anchor"></a><code><span><span class="keyword">module</span> <a href="LXM/index.html">LXM</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>The LXM generator combines two simple generators with an optional additional hashing of the output. The first generator is a LCG of with and update <code class="odoc-katex-math">s = a s + b \mod 2^{64}</code> where <code class="odoc-katex-math">a</code> is <code class="odoc-katex-math">2862933555777941757</code> and <code class="odoc-katex-math">b</code> is settable. The default value of <code class="odoc-katex-math">b</code> is <code class="odoc-katex-math">3037000493</code>. The second is the standard 64-bit xorshift generator.</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-EFIIX64x48"><a href="#module-EFIIX64x48" class="anchor"></a><code><span><span class="keyword">module</span> <a href="EFIIX64x48/index.html">EFIIX64x48</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>EFIIX64x48 is a 64-bit PRNG that uses a set of tables to generate random values. This produces a fast PRNG with statistical quality similar to cryptographic generators but faster.</p></div></div></div></body></html>

0 comments on commit 857e7ed

Please sign in to comment.