CMWC is an advanced pseudo-random number generator invented by George Marsaglia. It uses a large state array (4096 values) with multiply-and-carry operations, achieving an extraordinary period of 2^131104. The complementary aspect returns the bitwise complement of computed values, improving randomness quality.
| Property | Value |
|---|---|
| Category | Random Number Generators |
| Sub-category | Deterministic PRNG |
| Security status | π Educational Only |
| Complexity | Intermediate |
| Inventor | George Marsaglia |
| Year | 2003 |
| Origin | πΊπΈ United States |
| Source | algorithms/random/cmwc.js |
| Parameter | Supported values |
|---|---|
| Seed sizes | 1 byte (8 bits) to 8 bytes (64 bits) |
| Flag | Value |
|---|---|
IsDeterministic |
Yes |
IsCryptographicallySecure |
No |
Status: π Educational Only
No vulnerabilities are recorded for this implementation.
5 vectors ship with this algorithm and run in the test suite. Byte values are hexadecimal.
Vector 1 β Seed 0: First 5 outputs (40 bytes) - verified against C# reference
Source: X:\Coding\Working Copies\Hawkynt.git\Randomizer\RandomNumberGenerators\Deterministic\ComplementaryMultiplyWithCarry.cs
| Field | Value |
|---|---|
seed |
0000000000000000 |
outputSize |
40 |
input |
null |
expected |
8b912eacca47b64c238592b521f4679e 5aa031f54b2dde8ceaa62edfe6338250 f333513179fbd3ec |
Vector 2 β Seed 1: First 5 outputs (40 bytes)
Source: X:\Coding\Working Copies\Hawkynt.git\Randomizer\RandomNumberGenerators\Deterministic\ComplementaryMultiplyWithCarry.cs
| Field | Value |
|---|---|
seed |
0000000000000001 |
outputSize |
40 |
input |
null |
expected |
c108910a0e5eb78a710077017762a450 17f2258dea636a1960cde049597dfdfe 76dfd35b7206acfd |
Vector 3 β Seed 42: First 5 outputs (40 bytes)
Source: X:\Coding\Working Copies\Hawkynt.git\Randomizer\RandomNumberGenerators\Deterministic\ComplementaryMultiplyWithCarry.cs
| Field | Value |
|---|---|
seed |
000000000000002a |
outputSize |
40 |
input |
null |
expected |
8211488f4151822e08142692d53eebf4 3ed2ac69afb32196b7937d066ece679c f68f0e03de311c72 |
Vector 4 β Seed 1234567: First 8 outputs (64 bytes)
Source: X:\Coding\Working Copies\Hawkynt.git\Randomizer\RandomNumberGenerators\Deterministic\ComplementaryMultiplyWithCarry.cs
| Field | Value |
|---|---|
seed |
000000000012d687 |
outputSize |
64 |
input |
null |
expected |
3e8eecf519743031bedf18e3222799cd eb8f9b725b43854f8a91e2002dedf10b 9eae5ee7c03cad416a6574def1b8840f e939516b2f6a4f743d4da6c4c5b8eb73 |
Vector 5 β Seed 987654321: First 8 outputs (64 bytes)
Source: X:\Coding\Working Copies\Hawkynt.git\Randomizer\RandomNumberGenerators\Deterministic\ComplementaryMultiplyWithCarry.cs
| Field | Value |
|---|---|
seed |
000000003ade68b1 |
outputSize |
64 |
input |
null |
expected |
1ac7b2559be4d603ea2c816307a5144a a700d67e836ecb7604e9a7352e91d212 05c4820e5877a6d359613d5949c1e7de 07b44a075e6ceb68c305ea20312d2bca |