diff options
| author | Mattias Andrée <maandree@kth.se> | 2016-03-25 13:21:19 +0100 |
|---|---|---|
| committer | Mattias Andrée <maandree@kth.se> | 2016-03-25 13:21:19 +0100 |
| commit | 8dc182ff87cafe3337490bc8db90a67449b9c837 (patch) | |
| tree | f23e6a63ec1a921270693ecd2b03ddb071ae412c /src | |
| parent | Rename zsplit_unsigned_fast_small_tainted to zsplit_unsigned_fast_small_auto (diff) | |
| download | libzahl-8dc182ff87cafe3337490bc8db90a67449b9c837.tar.gz libzahl-8dc182ff87cafe3337490bc8db90a67449b9c837.tar.bz2 libzahl-8dc182ff87cafe3337490bc8db90a67449b9c837.tar.xz | |
zrand: add MODUNIFORM and add tests for QUASIUNIFORM and MODUNIFORM
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to '')
| -rw-r--r-- | src/zrand.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/zrand.c b/src/zrand.c index 1bb1a90..17968af 100644 --- a/src/zrand.c +++ b/src/zrand.c @@ -94,6 +94,14 @@ zrand(z_t r, enum zranddev dev, enum zranddist dist, z_t n) while (unlikely(zcmpmag(r, n) > 0)); break; + case MODUNIFORM: + if (unlikely(znegative(n))) + libzahl_failure(-ZERROR_NEGATIVE); + zrand_get_random_bits(r, zbits(n), fd); + if (unlikely(zcmpmag(r, n) > 0)) + zsub(r, r, n); + break; + default: libzahl_failure(EINVAL); } |
