diff options
| author | mattip <matti.picus@gmail.com> | 2019-04-10 00:50:42 +0300 |
|---|---|---|
| committer | mattip <matti.picus@gmail.com> | 2019-05-20 18:45:27 +0300 |
| commit | c53b2eb729bae1f248a2654dfcfa4a3dd3e2902b (patch) | |
| tree | eed1d982201dc892984feaca355565217069eb20 /numpy | |
| parent | 7e8e19f9a3b452fdbd992568348b393c31fba005 (diff) | |
| download | numpy-c53b2eb729bae1f248a2654dfcfa4a3dd3e2902b.tar.gz | |
BENCH: convert bencmarks to asv format
remove files that were part of the origal repo
rework randomgen docs to integrate with numpy and fix some links
remove convenience functions, require explicit call to gen.brng
move code out of numpy.random.randomgen into numpy.random
Diffstat (limited to 'numpy')
| -rw-r--r-- | numpy/random/LICENSE.md (renamed from numpy/random/randomgen/LICENSE.md) | 0 | ||||
| -rw-r--r-- | numpy/random/__init__.py | 36 | ||||
| -rw-r--r-- | numpy/random/_mtrand/Python.pxi (renamed from numpy/random/mtrand/Python.pxi) | 0 | ||||
| -rw-r--r-- | numpy/random/_mtrand/distributions.c (renamed from numpy/random/mtrand/distributions.c) | 0 | ||||
| -rw-r--r-- | numpy/random/_mtrand/distributions.h (renamed from numpy/random/mtrand/distributions.h) | 0 | ||||
| -rw-r--r-- | numpy/random/_mtrand/generate_mtrand_c.py | 42 | ||||
| -rw-r--r-- | numpy/random/_mtrand/initarray.c (renamed from numpy/random/mtrand/initarray.c) | 0 | ||||
| -rw-r--r-- | numpy/random/_mtrand/initarray.h (renamed from numpy/random/mtrand/initarray.h) | 0 | ||||
| -rw-r--r-- | numpy/random/_mtrand/mtrand.pyx (renamed from numpy/random/mtrand/mtrand.pyx) | 0 | ||||
| -rw-r--r-- | numpy/random/_mtrand/mtrand_py_helper.h (renamed from numpy/random/mtrand/mtrand_py_helper.h) | 0 | ||||
| -rw-r--r-- | numpy/random/_mtrand/numpy.pxd (renamed from numpy/random/mtrand/numpy.pxd) | 0 | ||||
| -rw-r--r-- | numpy/random/_mtrand/randint_helpers.pxi.in (renamed from numpy/random/mtrand/randint_helpers.pxi.in) | 0 | ||||
| -rw-r--r-- | numpy/random/_mtrand/randomkit.c (renamed from numpy/random/mtrand/randomkit.c) | 0 | ||||
| -rw-r--r-- | numpy/random/_mtrand/randomkit.h (renamed from numpy/random/mtrand/randomkit.h) | 0 | ||||
| -rw-r--r-- | numpy/random/_pickle.py (renamed from numpy/random/randomgen/_pickle.py) | 0 | ||||
| -rw-r--r-- | numpy/random/bounded_integers.pxd.in (renamed from numpy/random/randomgen/bounded_integers.pxd.in) | 0 | ||||
| -rw-r--r-- | numpy/random/bounded_integers.pyx.in (renamed from numpy/random/randomgen/bounded_integers.pyx.in) | 0 | ||||
| -rw-r--r-- | numpy/random/common.pxd (renamed from numpy/random/randomgen/common.pxd) | 0 | ||||
| -rw-r--r-- | numpy/random/common.pyx (renamed from numpy/random/randomgen/common.pyx) | 0 | ||||
| -rw-r--r-- | numpy/random/distributions.pxd (renamed from numpy/random/randomgen/distributions.pxd) | 0 | ||||
| -rw-r--r-- | numpy/random/dsfmt.pyx (renamed from numpy/random/randomgen/dsfmt.pyx) | 0 | ||||
| -rw-r--r-- | numpy/random/entropy.pyx (renamed from numpy/random/randomgen/entropy.pyx) | 0 | ||||
| -rw-r--r-- | numpy/random/examples/cython/extending.pyx (renamed from numpy/random/randomgen/examples/cython/extending.pyx) | 0 | ||||
| -rw-r--r-- | numpy/random/examples/cython/extending_distributions.pyx (renamed from numpy/random/randomgen/examples/cython/extending_distributions.pyx) | 0 | ||||
| -rw-r--r-- | numpy/random/examples/cython/setup.py (renamed from numpy/random/randomgen/examples/cython/setup.py) | 0 | ||||
| -rw-r--r-- | numpy/random/examples/numba/extending.py (renamed from numpy/random/randomgen/examples/numba/extending.py) | 0 | ||||
| -rw-r--r-- | numpy/random/examples/numba/extending_distributions.py (renamed from numpy/random/randomgen/examples/numba/extending_distributions.py) | 0 | ||||
| -rw-r--r-- | numpy/random/generator.pyx (renamed from numpy/random/randomgen/generator.pyx) | 74 | ||||
| -rw-r--r-- | numpy/random/legacy/__init__.py (renamed from numpy/random/randomgen/legacy/__init__.py) | 0 | ||||
| -rw-r--r-- | numpy/random/legacy/legacy_distributions.pxd (renamed from numpy/random/randomgen/legacy/legacy_distributions.pxd) | 0 | ||||
| -rw-r--r-- | numpy/random/mt19937.pyx (renamed from numpy/random/randomgen/mt19937.pyx) | 0 | ||||
| -rw-r--r-- | numpy/random/mtrand.pyx (renamed from numpy/random/randomgen/mtrand.pyx) | 0 | ||||
| -rw-r--r-- | numpy/random/pcg32.pyx (renamed from numpy/random/randomgen/pcg32.pyx) | 0 | ||||
| -rw-r--r-- | numpy/random/pcg64.pyx (renamed from numpy/random/randomgen/pcg64.pyx) | 0 | ||||
| -rw-r--r-- | numpy/random/philox.pyx (renamed from numpy/random/randomgen/philox.pyx) | 0 | ||||
| -rw-r--r-- | numpy/random/randomgen/__init__.py | 21 | ||||
| -rw-r--r-- | numpy/random/randomgen/_version.py | 520 | ||||
| -rw-r--r-- | numpy/random/randomgen/setup.py | 191 | ||||
| -rw-r--r-- | numpy/random/randomgen/tests/data/__init__.py | 0 | ||||
| -rw-r--r-- | numpy/random/setup.py | 153 | ||||
| -rw-r--r-- | numpy/random/src/aligned_malloc/aligned_malloc.c (renamed from numpy/random/randomgen/src/aligned_malloc/aligned_malloc.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/aligned_malloc/aligned_malloc.h (renamed from numpy/random/randomgen/src/aligned_malloc/aligned_malloc.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/common/LICENSE.md (renamed from numpy/random/randomgen/src/common/LICENSE.md) | 0 | ||||
| -rw-r--r-- | numpy/random/src/common/inttypes.h (renamed from numpy/random/randomgen/src/common/inttypes.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/common/stdint.h (renamed from numpy/random/randomgen/src/common/stdint.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/distributions/LICENSE.md (renamed from numpy/random/randomgen/src/distributions/LICENSE.md) | 0 | ||||
| -rw-r--r-- | numpy/random/src/distributions/binomial.h (renamed from numpy/random/randomgen/src/distributions/binomial.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/distributions/distributions.c (renamed from numpy/random/randomgen/src/distributions/distributions.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/distributions/distributions.h (renamed from numpy/random/randomgen/src/distributions/distributions.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/distributions/ziggurat.h (renamed from numpy/random/randomgen/src/distributions/ziggurat.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/distributions/ziggurat_constants.h (renamed from numpy/random/randomgen/src/distributions/ziggurat_constants.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/dsfmt/128-bit-jump.poly.txt (renamed from numpy/random/randomgen/src/dsfmt/128-bit-jump.poly.txt) | 0 | ||||
| -rw-r--r-- | numpy/random/src/dsfmt/96-bit-jump.poly.txt (renamed from numpy/random/randomgen/src/dsfmt/96-bit-jump.poly.txt) | 0 | ||||
| -rw-r--r-- | numpy/random/src/dsfmt/LICENSE.md (renamed from numpy/random/randomgen/src/dsfmt/LICENSE.md) | 0 | ||||
| -rw-r--r-- | numpy/random/src/dsfmt/calc-jump.cpp (renamed from numpy/random/randomgen/src/dsfmt/calc-jump.cpp) | 0 | ||||
| -rw-r--r-- | numpy/random/src/dsfmt/dSFMT-benchmark.c (renamed from numpy/random/randomgen/src/dsfmt/dSFMT-benchmark.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/dsfmt/dSFMT-calc-jump.hpp (renamed from numpy/random/randomgen/src/dsfmt/dSFMT-calc-jump.hpp) | 0 | ||||
| -rw-r--r-- | numpy/random/src/dsfmt/dSFMT-common.h (renamed from numpy/random/randomgen/src/dsfmt/dSFMT-common.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/dsfmt/dSFMT-jump.c (renamed from numpy/random/randomgen/src/dsfmt/dSFMT-jump.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/dsfmt/dSFMT-jump.h (renamed from numpy/random/randomgen/src/dsfmt/dSFMT-jump.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/dsfmt/dSFMT-params.h (renamed from numpy/random/randomgen/src/dsfmt/dSFMT-params.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/dsfmt/dSFMT-params19937.h (renamed from numpy/random/randomgen/src/dsfmt/dSFMT-params19937.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/dsfmt/dSFMT-poly.h (renamed from numpy/random/randomgen/src/dsfmt/dSFMT-poly.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/dsfmt/dSFMT-test-gen.c (renamed from numpy/random/randomgen/src/dsfmt/dSFMT-test-gen.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/dsfmt/dSFMT.c (renamed from numpy/random/randomgen/src/dsfmt/dSFMT.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/dsfmt/dSFMT.h (renamed from numpy/random/randomgen/src/dsfmt/dSFMT.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/entropy/LICENSE.md (renamed from numpy/random/randomgen/src/entropy/LICENSE.md) | 0 | ||||
| -rw-r--r-- | numpy/random/src/entropy/entropy.c (renamed from numpy/random/randomgen/src/entropy/entropy.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/entropy/entropy.h (renamed from numpy/random/randomgen/src/entropy/entropy.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/legacy/LICENSE.md (renamed from numpy/random/randomgen/src/legacy/LICENSE.md) | 0 | ||||
| -rw-r--r-- | numpy/random/src/legacy/distributions-boxmuller.c (renamed from numpy/random/randomgen/src/legacy/distributions-boxmuller.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/legacy/distributions-boxmuller.h (renamed from numpy/random/randomgen/src/legacy/distributions-boxmuller.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/mt19937/LICENSE.md (renamed from numpy/random/randomgen/src/mt19937/LICENSE.md) | 0 | ||||
| -rw-r--r-- | numpy/random/src/mt19937/mt19937-benchmark.c (renamed from numpy/random/randomgen/src/mt19937/mt19937-benchmark.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/mt19937/mt19937-jump.c (renamed from numpy/random/randomgen/src/mt19937/mt19937-jump.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/mt19937/mt19937-jump.h (renamed from numpy/random/randomgen/src/mt19937/mt19937-jump.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/mt19937/mt19937-poly.h (renamed from numpy/random/randomgen/src/mt19937/mt19937-poly.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/mt19937/mt19937-test-data-gen.c (renamed from numpy/random/randomgen/src/mt19937/mt19937-test-data-gen.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/mt19937/mt19937.c (renamed from numpy/random/randomgen/src/mt19937/mt19937.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/mt19937/mt19937.h (renamed from numpy/random/randomgen/src/mt19937/mt19937.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/mt19937/randomkit.c (renamed from numpy/random/randomgen/src/mt19937/randomkit.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/mt19937/randomkit.h (renamed from numpy/random/randomgen/src/mt19937/randomkit.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/pcg32/LICENSE.md (renamed from numpy/random/randomgen/src/pcg32/LICENSE.md) | 0 | ||||
| -rw-r--r-- | numpy/random/src/pcg32/pcg-advance-64.c (renamed from numpy/random/randomgen/src/pcg32/pcg-advance-64.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/pcg32/pcg32-test-data-gen.c (renamed from numpy/random/randomgen/src/pcg32/pcg32-test-data-gen.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/pcg32/pcg32.c (renamed from numpy/random/randomgen/src/pcg32/pcg32.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/pcg32/pcg32.h (renamed from numpy/random/randomgen/src/pcg32/pcg32.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/pcg32/pcg_variants.h (renamed from numpy/random/randomgen/src/pcg32/pcg_variants.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/pcg64/LICENSE.md (renamed from numpy/random/randomgen/src/pcg64/LICENSE.md) | 0 | ||||
| -rw-r--r-- | numpy/random/src/pcg64/pcg64-benchmark.c (renamed from numpy/random/randomgen/src/pcg64/pcg64-benchmark.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/pcg64/pcg64-test-data-gen.c (renamed from numpy/random/randomgen/src/pcg64/pcg64-test-data-gen.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/pcg64/pcg64.c (renamed from numpy/random/randomgen/src/pcg64/pcg64.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/pcg64/pcg64.h (renamed from numpy/random/randomgen/src/pcg64/pcg64.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/pcg64/pcg64.orig.c (renamed from numpy/random/randomgen/src/pcg64/pcg64.orig.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/pcg64/pcg64.orig.h (renamed from numpy/random/randomgen/src/pcg64/pcg64.orig.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/philox/LICENSE.md (renamed from numpy/random/randomgen/src/philox/LICENSE.md) | 0 | ||||
| -rw-r--r-- | numpy/random/src/philox/philox-benchmark.c (renamed from numpy/random/randomgen/src/philox/philox-benchmark.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/philox/philox-test-data-gen.c (renamed from numpy/random/randomgen/src/philox/philox-test-data-gen.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/philox/philox.c (renamed from numpy/random/randomgen/src/philox/philox.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/philox/philox.h (renamed from numpy/random/randomgen/src/philox/philox.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/splitmix64/LICENSE.md (renamed from numpy/random/randomgen/src/splitmix64/LICENSE.md) | 0 | ||||
| -rw-r--r-- | numpy/random/src/splitmix64/splitmix64.c (renamed from numpy/random/randomgen/src/splitmix64/splitmix64.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/splitmix64/splitmix64.h (renamed from numpy/random/randomgen/src/splitmix64/splitmix64.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/splitmix64/splitmix64.orig.c (renamed from numpy/random/randomgen/src/splitmix64/splitmix64.orig.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/threefry/LICENSE.md (renamed from numpy/random/randomgen/src/threefry/LICENSE.md) | 0 | ||||
| -rw-r--r-- | numpy/random/src/threefry/threefry-benchmark.c (renamed from numpy/random/randomgen/src/threefry/threefry-benchmark.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/threefry/threefry-orig.c (renamed from numpy/random/randomgen/src/threefry/threefry-orig.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/threefry/threefry-test-data-gen.c (renamed from numpy/random/randomgen/src/threefry/threefry-test-data-gen.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/threefry/threefry.c (renamed from numpy/random/randomgen/src/threefry/threefry.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/threefry/threefry.h (renamed from numpy/random/randomgen/src/threefry/threefry.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/threefry32/LICENSE.md (renamed from numpy/random/randomgen/src/threefry32/LICENSE.md) | 0 | ||||
| -rw-r--r-- | numpy/random/src/threefry32/threefry32-test-data-gen.c (renamed from numpy/random/randomgen/src/threefry32/threefry32-test-data-gen.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/threefry32/threefry32.c (renamed from numpy/random/randomgen/src/threefry32/threefry32.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/threefry32/threefry32.h (renamed from numpy/random/randomgen/src/threefry32/threefry32.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/xoroshiro128/LICENSE.md (renamed from numpy/random/randomgen/src/xoroshiro128/LICENSE.md) | 0 | ||||
| -rw-r--r-- | numpy/random/src/xoroshiro128/xoroshiro128-benchmark.c (renamed from numpy/random/randomgen/src/xoroshiro128/xoroshiro128-benchmark.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/xoroshiro128/xoroshiro128-test-data-gen.c (renamed from numpy/random/randomgen/src/xoroshiro128/xoroshiro128-test-data-gen.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/xoroshiro128/xoroshiro128.c (renamed from numpy/random/randomgen/src/xoroshiro128/xoroshiro128.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/xoroshiro128/xoroshiro128.h (renamed from numpy/random/randomgen/src/xoroshiro128/xoroshiro128.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/xoroshiro128/xoroshiro128plus.orig.c (renamed from numpy/random/randomgen/src/xoroshiro128/xoroshiro128plus.orig.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/xoroshiro128/xoroshiro128plus.orig.h (renamed from numpy/random/randomgen/src/xoroshiro128/xoroshiro128plus.orig.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/xorshift1024/LICENSE.md (renamed from numpy/random/randomgen/src/xorshift1024/LICENSE.md) | 0 | ||||
| -rw-r--r-- | numpy/random/src/xorshift1024/xorshift1024-benchmark.c (renamed from numpy/random/randomgen/src/xorshift1024/xorshift1024-benchmark.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/xorshift1024/xorshift1024-test-data-gen.c (renamed from numpy/random/randomgen/src/xorshift1024/xorshift1024-test-data-gen.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/xorshift1024/xorshift1024.c (renamed from numpy/random/randomgen/src/xorshift1024/xorshift1024.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/xorshift1024/xorshift1024.h (renamed from numpy/random/randomgen/src/xorshift1024/xorshift1024.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/xorshift1024/xorshift1024.orig.c (renamed from numpy/random/randomgen/src/xorshift1024/xorshift1024.orig.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/xorshift1024/xorshift1024.orig.h (renamed from numpy/random/randomgen/src/xorshift1024/xorshift1024.orig.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/xoshiro256starstar/LICENSE.md (renamed from numpy/random/randomgen/src/xoshiro256starstar/LICENSE.md) | 0 | ||||
| -rw-r--r-- | numpy/random/src/xoshiro256starstar/xoshiro256starstar-test-data-gen.c (renamed from numpy/random/randomgen/src/xoshiro256starstar/xoshiro256starstar-test-data-gen.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/xoshiro256starstar/xoshiro256starstar.c (renamed from numpy/random/randomgen/src/xoshiro256starstar/xoshiro256starstar.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/xoshiro256starstar/xoshiro256starstar.h (renamed from numpy/random/randomgen/src/xoshiro256starstar/xoshiro256starstar.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/xoshiro256starstar/xoshiro256starstar.orig.c (renamed from numpy/random/randomgen/src/xoshiro256starstar/xoshiro256starstar.orig.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/xoshiro256starstar/xoshiro256starstar.orig.h (renamed from numpy/random/randomgen/src/xoshiro256starstar/xoshiro256starstar.orig.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/xoshiro512starstar/LICENSE.md (renamed from numpy/random/randomgen/src/xoshiro512starstar/LICENSE.md) | 0 | ||||
| -rw-r--r-- | numpy/random/src/xoshiro512starstar/xoshiro512starstar-test-data-gen.c (renamed from numpy/random/randomgen/src/xoshiro512starstar/xoshiro512starstar-test-data-gen.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/xoshiro512starstar/xoshiro512starstar.c (renamed from numpy/random/randomgen/src/xoshiro512starstar/xoshiro512starstar.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/xoshiro512starstar/xoshiro512starstar.h (renamed from numpy/random/randomgen/src/xoshiro512starstar/xoshiro512starstar.h) | 0 | ||||
| -rw-r--r-- | numpy/random/src/xoshiro512starstar/xoshiro512starstar.orig.c (renamed from numpy/random/randomgen/src/xoshiro512starstar/xoshiro512starstar.orig.c) | 0 | ||||
| -rw-r--r-- | numpy/random/src/xoshiro512starstar/xoshiro512starstar.orig.h (renamed from numpy/random/randomgen/src/xoshiro512starstar/xoshiro512starstar.orig.h) | 0 | ||||
| -rw-r--r-- | numpy/random/tests/data/__init__.py (renamed from numpy/random/randomgen/tests/__init__.py) | 0 | ||||
| -rw-r--r-- | numpy/random/tests/data/dSFMT-testset-1.csv (renamed from numpy/random/randomgen/tests/data/dSFMT-testset-1.csv) | 0 | ||||
| -rw-r--r-- | numpy/random/tests/data/dSFMT-testset-2.csv (renamed from numpy/random/randomgen/tests/data/dSFMT-testset-2.csv) | 0 | ||||
| -rw-r--r-- | numpy/random/tests/data/mt19937-testset-1.csv (renamed from numpy/random/randomgen/tests/data/mt19937-testset-1.csv) | 0 | ||||
| -rw-r--r-- | numpy/random/tests/data/mt19937-testset-2.csv (renamed from numpy/random/randomgen/tests/data/mt19937-testset-2.csv) | 0 | ||||
| -rw-r--r-- | numpy/random/tests/data/pcg32-testset-1.csv (renamed from numpy/random/randomgen/tests/data/pcg32-testset-1.csv) | 0 | ||||
| -rw-r--r-- | numpy/random/tests/data/pcg32-testset-2.csv (renamed from numpy/random/randomgen/tests/data/pcg32-testset-2.csv) | 0 | ||||
| -rw-r--r-- | numpy/random/tests/data/pcg64-testset-1.csv (renamed from numpy/random/randomgen/tests/data/pcg64-testset-1.csv) | 0 | ||||
| -rw-r--r-- | numpy/random/tests/data/pcg64-testset-2.csv (renamed from numpy/random/randomgen/tests/data/pcg64-testset-2.csv) | 0 | ||||
| -rw-r--r-- | numpy/random/tests/data/philox-testset-1.csv (renamed from numpy/random/randomgen/tests/data/philox-testset-1.csv) | 0 | ||||
| -rw-r--r-- | numpy/random/tests/data/philox-testset-2.csv (renamed from numpy/random/randomgen/tests/data/philox-testset-2.csv) | 0 | ||||
| -rw-r--r-- | numpy/random/tests/data/threefry-testset-1.csv (renamed from numpy/random/randomgen/tests/data/threefry-testset-1.csv) | 0 | ||||
| -rw-r--r-- | numpy/random/tests/data/threefry-testset-2.csv (renamed from numpy/random/randomgen/tests/data/threefry-testset-2.csv) | 0 | ||||
| -rw-r--r-- | numpy/random/tests/data/threefry32-testset-1.csv (renamed from numpy/random/randomgen/tests/data/threefry32-testset-1.csv) | 0 | ||||
| -rw-r--r-- | numpy/random/tests/data/threefry32-testset-2.csv (renamed from numpy/random/randomgen/tests/data/threefry32-testset-2.csv) | 0 | ||||
| -rw-r--r-- | numpy/random/tests/data/xoroshiro128-testset-1.csv (renamed from numpy/random/randomgen/tests/data/xoroshiro128-testset-1.csv) | 0 | ||||
| -rw-r--r-- | numpy/random/tests/data/xoroshiro128-testset-2.csv (renamed from numpy/random/randomgen/tests/data/xoroshiro128-testset-2.csv) | 0 | ||||
| -rw-r--r-- | numpy/random/tests/data/xorshift1024-testset-1.csv (renamed from numpy/random/randomgen/tests/data/xorshift1024-testset-1.csv) | 0 | ||||
| -rw-r--r-- | numpy/random/tests/data/xorshift1024-testset-2.csv (renamed from numpy/random/randomgen/tests/data/xorshift1024-testset-2.csv) | 0 | ||||
| -rw-r--r-- | numpy/random/tests/data/xoshiro256starstar-testset-1.csv (renamed from numpy/random/randomgen/tests/data/xoshiro256starstar-testset-1.csv) | 0 | ||||
| -rw-r--r-- | numpy/random/tests/data/xoshiro256starstar-testset-2.csv (renamed from numpy/random/randomgen/tests/data/xoshiro256starstar-testset-2.csv) | 0 | ||||
| -rw-r--r-- | numpy/random/tests/data/xoshiro512starstar-testset-1.csv (renamed from numpy/random/randomgen/tests/data/xoshiro512starstar-testset-1.csv) | 0 | ||||
| -rw-r--r-- | numpy/random/tests/data/xoshiro512starstar-testset-2.csv (renamed from numpy/random/randomgen/tests/data/xoshiro512starstar-testset-2.csv) | 0 | ||||
| -rw-r--r-- | numpy/random/tests/test_against_numpy.py (renamed from numpy/random/randomgen/tests/test_against_numpy.py) | 38 | ||||
| -rw-r--r-- | numpy/random/tests/test_direct.py (renamed from numpy/random/randomgen/tests/test_direct.py) | 108 | ||||
| -rw-r--r-- | numpy/random/tests/test_generator_mt19937.py (renamed from numpy/random/randomgen/tests/test_generator_mt19937.py) | 169 | ||||
| -rw-r--r-- | numpy/random/tests/test_generator_mt19937_regressions.py (renamed from numpy/random/randomgen/tests/test_generator_mt19937_regressions.py) | 26 | ||||
| -rw-r--r-- | numpy/random/tests/test_randomstate.py (renamed from numpy/random/randomgen/tests/test_randomstate.py) | 2 | ||||
| -rw-r--r-- | numpy/random/tests/test_randomstate_regression.py (renamed from numpy/random/randomgen/tests/test_randomstate_regression.py) | 2 | ||||
| -rw-r--r-- | numpy/random/tests/test_smoke.py (renamed from numpy/random/randomgen/tests/test_smoke.py) | 228 | ||||
| -rw-r--r-- | numpy/random/threefry.pyx (renamed from numpy/random/randomgen/threefry.pyx) | 0 | ||||
| -rw-r--r-- | numpy/random/threefry32.pyx (renamed from numpy/random/randomgen/threefry32.pyx) | 0 | ||||
| -rw-r--r-- | numpy/random/xoroshiro128.pyx (renamed from numpy/random/randomgen/xoroshiro128.pyx) | 0 | ||||
| -rw-r--r-- | numpy/random/xorshift1024.pyx (renamed from numpy/random/randomgen/xorshift1024.pyx) | 0 | ||||
| -rw-r--r-- | numpy/random/xoshiro256starstar.pyx (renamed from numpy/random/randomgen/xoshiro256starstar.pyx) | 0 | ||||
| -rw-r--r-- | numpy/random/xoshiro512starstar.pyx (renamed from numpy/random/randomgen/xoshiro512starstar.pyx) | 0 |
176 files changed, 508 insertions, 1102 deletions
diff --git a/numpy/random/randomgen/LICENSE.md b/numpy/random/LICENSE.md index caa665373..caa665373 100644 --- a/numpy/random/randomgen/LICENSE.md +++ b/numpy/random/LICENSE.md diff --git a/numpy/random/__init__.py b/numpy/random/__init__.py index 53e947797..89015d6a2 100644 --- a/numpy/random/__init__.py +++ b/numpy/random/__init__.py @@ -83,6 +83,22 @@ get_state Get tuple representing internal state of generator. set_state Set state of generator. ==================== ========================================================= +==================== ========================================================= +Random Number Streams that work with RandomGenerator +============================================================================== +MT19937 +DSFMT +PCG32 +PCG64 +Philox +ThreeFry +ThreeFry32 +Xoroshiro128 +Xoroshift1024 +Xoshiro256StarStar +Xoshiro512StarStar +==================== ========================================================= + """ from __future__ import division, absolute_import, print_function @@ -136,8 +152,24 @@ __all__ = [ 'zipf' ] -from .randomgen import mtrand -from .randomgen.mtrand import * +from . import mtrand +from .mtrand import * +from .dsfmt import DSFMT +from .generator import RandomGenerator +from .mt19937 import MT19937 +from .pcg32 import PCG32 +from .pcg64 import PCG64 +from .philox import Philox +from .threefry import ThreeFry +from .threefry32 import ThreeFry32 +from .xoroshiro128 import Xoroshiro128 +from .xorshift1024 import Xorshift1024 +from .xoshiro256starstar import Xoshiro256StarStar +from .xoshiro512starstar import Xoshiro512StarStar +from .mtrand import RandomState +__all__ += ['RandomGenerator', 'DSFMT', 'MT19937', 'PCG64', 'PCG32', 'Philox', + 'ThreeFry', 'ThreeFry32', 'Xoroshiro128', 'Xorshift1024', + 'Xoshiro256StarStar', 'Xoshiro512StarStar', 'RandomState'] # Some aliases: ranf = random = sample = random_sample diff --git a/numpy/random/mtrand/Python.pxi b/numpy/random/_mtrand/Python.pxi index 08aadbaa1..08aadbaa1 100644 --- a/numpy/random/mtrand/Python.pxi +++ b/numpy/random/_mtrand/Python.pxi diff --git a/numpy/random/mtrand/distributions.c b/numpy/random/_mtrand/distributions.c index 1b410db57..1b410db57 100644 --- a/numpy/random/mtrand/distributions.c +++ b/numpy/random/_mtrand/distributions.c diff --git a/numpy/random/mtrand/distributions.h b/numpy/random/_mtrand/distributions.h index 0b42bc794..0b42bc794 100644 --- a/numpy/random/mtrand/distributions.h +++ b/numpy/random/_mtrand/distributions.h diff --git a/numpy/random/_mtrand/generate_mtrand_c.py b/numpy/random/_mtrand/generate_mtrand_c.py new file mode 100644 index 000000000..ec935e6dd --- /dev/null +++ b/numpy/random/_mtrand/generate_mtrand_c.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python +from __future__ import division, absolute_import, print_function + +import sys +import re +import os + +unused_internal_funcs = ['__Pyx_PrintItem', + '__Pyx_PrintNewline', + '__Pyx_ReRaise', + #'__Pyx_GetExcValue', + '__Pyx_ArgTypeTest', + '__Pyx_SetVtable', + '__Pyx_GetVtable', + '__Pyx_CreateClass'] + +if __name__ == '__main__': + # Use cython here so that long docstrings are broken up. + # This is needed for some VC++ compilers. + os.system('cython mtrand.pyx') + mtrand_c = open('mtrand.c', 'r') + processed = open('mtrand_pp.c', 'w') + unused_funcs_str = '(' + '|'.join(unused_internal_funcs) + ')' + uifpat = re.compile(r'static \w+ \*?'+unused_funcs_str+r'.*/\*proto\*/') + linepat = re.compile(r'/\* ".*/mtrand.pyx":') + for linenum, line in enumerate(mtrand_c): + m = re.match(r'^(\s+arrayObject\w*\s*=\s*[(])[(]PyObject\s*[*][)]', + line) + if m: + line = '%s(PyArrayObject *)%s' % (m.group(1), line[m.end():]) + m = uifpat.match(line) + if m: + line = '' + m = re.search(unused_funcs_str, line) + if m: + print("%s was declared unused, but is used at line %d" % (m.group(), + linenum+1), file=sys.stderr) + line = linepat.sub(r'/* "mtrand.pyx":', line) + processed.write(line) + mtrand_c.close() + processed.close() + os.rename('mtrand_pp.c', 'mtrand.c') diff --git a/numpy/random/mtrand/initarray.c b/numpy/random/_mtrand/initarray.c index beff78510..beff78510 100644 --- a/numpy/random/mtrand/initarray.c +++ b/numpy/random/_mtrand/initarray.c diff --git a/numpy/random/mtrand/initarray.h b/numpy/random/_mtrand/initarray.h index f5e5e5332..f5e5e5332 100644 --- a/numpy/random/mtrand/initarray.h +++ b/numpy/random/_mtrand/initarray.h diff --git a/numpy/random/mtrand/mtrand.pyx b/numpy/random/_mtrand/mtrand.pyx index 329d5cd68..329d5cd68 100644 --- a/numpy/random/mtrand/mtrand.pyx +++ b/numpy/random/_mtrand/mtrand.pyx diff --git a/numpy/random/mtrand/mtrand_py_helper.h b/numpy/random/_mtrand/mtrand_py_helper.h index 266847cbe..266847cbe 100644 --- a/numpy/random/mtrand/mtrand_py_helper.h +++ b/numpy/random/_mtrand/mtrand_py_helper.h diff --git a/numpy/random/mtrand/numpy.pxd b/numpy/random/_mtrand/numpy.pxd index e146054b1..e146054b1 100644 --- a/numpy/random/mtrand/numpy.pxd +++ b/numpy/random/_mtrand/numpy.pxd diff --git a/numpy/random/mtrand/randint_helpers.pxi.in b/numpy/random/_mtrand/randint_helpers.pxi.in index 894a25167..894a25167 100644 --- a/numpy/random/mtrand/randint_helpers.pxi.in +++ b/numpy/random/_mtrand/randint_helpers.pxi.in diff --git a/numpy/random/mtrand/randomkit.c b/numpy/random/_mtrand/randomkit.c index 6371ebe33..6371ebe33 100644 --- a/numpy/random/mtrand/randomkit.c +++ b/numpy/random/_mtrand/randomkit.c diff --git a/numpy/random/mtrand/randomkit.h b/numpy/random/_mtrand/randomkit.h index a24dabebf..a24dabebf 100644 --- a/numpy/random/mtrand/randomkit.h +++ b/numpy/random/_mtrand/randomkit.h diff --git a/numpy/random/randomgen/_pickle.py b/numpy/random/_pickle.py index 1c365b0c7..1c365b0c7 100644 --- a/numpy/random/randomgen/_pickle.py +++ b/numpy/random/_pickle.py diff --git a/numpy/random/randomgen/bounded_integers.pxd.in b/numpy/random/bounded_integers.pxd.in index 4ab389fd9..4ab389fd9 100644 --- a/numpy/random/randomgen/bounded_integers.pxd.in +++ b/numpy/random/bounded_integers.pxd.in diff --git a/numpy/random/randomgen/bounded_integers.pyx.in b/numpy/random/bounded_integers.pyx.in index 03068a8fd..03068a8fd 100644 --- a/numpy/random/randomgen/bounded_integers.pyx.in +++ b/numpy/random/bounded_integers.pyx.in diff --git a/numpy/random/randomgen/common.pxd b/numpy/random/common.pxd index f6748e5aa..f6748e5aa 100644 --- a/numpy/random/randomgen/common.pxd +++ b/numpy/random/common.pxd diff --git a/numpy/random/randomgen/common.pyx b/numpy/random/common.pyx index ebd2e60d1..ebd2e60d1 100644 --- a/numpy/random/randomgen/common.pyx +++ b/numpy/random/common.pyx diff --git a/numpy/random/randomgen/distributions.pxd b/numpy/random/distributions.pxd index ddb7a84bf..ddb7a84bf 100644 --- a/numpy/random/randomgen/distributions.pxd +++ b/numpy/random/distributions.pxd diff --git a/numpy/random/randomgen/dsfmt.pyx b/numpy/random/dsfmt.pyx index 9a7199e85..9a7199e85 100644 --- a/numpy/random/randomgen/dsfmt.pyx +++ b/numpy/random/dsfmt.pyx diff --git a/numpy/random/randomgen/entropy.pyx b/numpy/random/entropy.pyx index 0e429e9f2..0e429e9f2 100644 --- a/numpy/random/randomgen/entropy.pyx +++ b/numpy/random/entropy.pyx diff --git a/numpy/random/randomgen/examples/cython/extending.pyx b/numpy/random/examples/cython/extending.pyx index b472312b4..b472312b4 100644 --- a/numpy/random/randomgen/examples/cython/extending.pyx +++ b/numpy/random/examples/cython/extending.pyx diff --git a/numpy/random/randomgen/examples/cython/extending_distributions.pyx b/numpy/random/examples/cython/extending_distributions.pyx index 26d749b10..26d749b10 100644 --- a/numpy/random/randomgen/examples/cython/extending_distributions.pyx +++ b/numpy/random/examples/cython/extending_distributions.pyx diff --git a/numpy/random/randomgen/examples/cython/setup.py b/numpy/random/examples/cython/setup.py index d7a04f75a..d7a04f75a 100644 --- a/numpy/random/randomgen/examples/cython/setup.py +++ b/numpy/random/examples/cython/setup.py diff --git a/numpy/random/randomgen/examples/numba/extending.py b/numpy/random/examples/numba/extending.py index 72e903b1f..72e903b1f 100644 --- a/numpy/random/randomgen/examples/numba/extending.py +++ b/numpy/random/examples/numba/extending.py diff --git a/numpy/random/randomgen/examples/numba/extending_distributions.py b/numpy/random/examples/numba/extending_distributions.py index 17ba2704c..17ba2704c 100644 --- a/numpy/random/randomgen/examples/numba/extending_distributions.py +++ b/numpy/random/examples/numba/extending_distributions.py diff --git a/numpy/random/randomgen/generator.pyx b/numpy/random/generator.pyx index a244bca57..e68edb98a 100644 --- a/numpy/random/randomgen/generator.pyx +++ b/numpy/random/generator.pyx @@ -49,7 +49,7 @@ cdef class RandomGenerator: Notes ----- - The Python stdlib module "random" contains pseudo-random number generator + The Python stdlib module `random` contains pseudo-random number generator with a number of methods that are similar to the ones available in ``RandomGenerator``. It uses Mersenne Twister, and this basic RNG can be accessed using ``MT19937``. ``RandomGenerator``, besides being @@ -72,7 +72,7 @@ cdef class RandomGenerator: >>> rg = MT19937().generator >>> rg.standard_normal() """ - cdef public object _basicrng + cdef public object brng cdef brng_t *_brng cdef binomial_t *_binomial cdef object lock @@ -81,7 +81,7 @@ cdef class RandomGenerator: def __init__(self, brng=None): if brng is None: brng = Xoroshiro128() - self._basicrng = brng + self.brng = brng capsule = brng.capsule cdef const char *name = "BasicRNG" @@ -99,79 +99,21 @@ cdef class RandomGenerator: def __str__(self): _str = self.__class__.__name__ - _str += '(' + self._basicrng.__class__.__name__ + ')' + _str += '(' + self.brng.__class__.__name__ + ')' return _str # Pickling support: def __getstate__(self): - return self.state + return self.brng.state def __setstate__(self, state): - self.state = state + self.brng.state = state def __reduce__(self): from ._pickle import __generator_ctor return (__generator_ctor, - (self.state['brng'],), - self.state) - - def seed(self, *args, **kwargs): - """ - Reseed the basic RNG. - - Parameters depend on the basic RNG used. - - Notes - ----- - Arguments are directly passed to the basic RNG. This is a convenience - function. - - The best method to access seed is to directly use a basic RNG instance. - This example demonstrates this best practice. - - >>> from numpy.random.randomgen import RandomGenerator, PCG64 - >>> brng = PCG64(1234567891011) - >>> rg = brng.generator - >>> brng.seed(1110987654321) - - The method used to create the generator is not important. - - >>> brng = PCG64(1234567891011) - >>> rg = RandomGenerator(brng) - >>> brng.seed(1110987654321) - - These best practice examples are equivalent to - - >>> rg = RandomGenerator(PCG64(1234567891011)) - >>> rg.seed(1110987654321) - - """ - # TODO: Should this remain - self._basicrng.seed(*args, **kwargs) - return self - - @property - def state(self): - """ - Get or set the Basic RNG's state - - Returns - ------- - state : dict - Dictionary containing the information required to describe the - state of the Basic RNG - - Notes - ----- - This is a trivial pass-through function. RandomGenerator does not - directly contain or manipulate the basic RNG's state. - - """ - return self._basicrng.state - - @state.setter - def state(self, value): - self._basicrng.state = value + (self.brng.state['brng'],), + self.brng.state) def random_sample(self, size=None, dtype=np.float64, out=None): """ diff --git a/numpy/random/randomgen/legacy/__init__.py b/numpy/random/legacy/__init__.py index 9ce1f665d..9ce1f665d 100644 --- a/numpy/random/randomgen/legacy/__init__.py +++ b/numpy/random/legacy/__init__.py diff --git a/numpy/random/randomgen/legacy/legacy_distributions.pxd b/numpy/random/legacy/legacy_distributions.pxd index bc00994db..bc00994db 100644 --- a/numpy/random/randomgen/legacy/legacy_distributions.pxd +++ b/numpy/random/legacy/legacy_distributions.pxd diff --git a/numpy/random/randomgen/mt19937.pyx b/numpy/random/mt19937.pyx index 306ce23e2..306ce23e2 100644 --- a/numpy/random/randomgen/mt19937.pyx +++ b/numpy/random/mt19937.pyx diff --git a/numpy/random/randomgen/mtrand.pyx b/numpy/random/mtrand.pyx index b5d6ff9bc..b5d6ff9bc 100644 --- a/numpy/random/randomgen/mtrand.pyx +++ b/numpy/random/mtrand.pyx diff --git a/numpy/random/randomgen/pcg32.pyx b/numpy/random/pcg32.pyx index 5f2b34807..5f2b34807 100644 --- a/numpy/random/randomgen/pcg32.pyx +++ b/numpy/random/pcg32.pyx diff --git a/numpy/random/randomgen/pcg64.pyx b/numpy/random/pcg64.pyx index f67d9623c..f67d9623c 100644 --- a/numpy/random/randomgen/pcg64.pyx +++ b/numpy/random/pcg64.pyx diff --git a/numpy/random/randomgen/philox.pyx b/numpy/random/philox.pyx index 70afd55ab..70afd55ab 100644 --- a/numpy/random/randomgen/philox.pyx +++ b/numpy/random/philox.pyx diff --git a/numpy/random/randomgen/__init__.py b/numpy/random/randomgen/__init__.py deleted file mode 100644 index 1af2fc3b2..000000000 --- a/numpy/random/randomgen/__init__.py +++ /dev/null @@ -1,21 +0,0 @@ -from .dsfmt import DSFMT -from .generator import RandomGenerator -from .mt19937 import MT19937 -from .pcg32 import PCG32 -from .pcg64 import PCG64 -from .philox import Philox -from .threefry import ThreeFry -from .threefry32 import ThreeFry32 -from .xoroshiro128 import Xoroshiro128 -from .xorshift1024 import Xorshift1024 -from .xoshiro256starstar import Xoshiro256StarStar -from .xoshiro512starstar import Xoshiro512StarStar -from .mtrand import RandomState -__all__ = ['RandomGenerator', 'DSFMT', 'MT19937', 'PCG64', 'PCG32', 'Philox', - 'ThreeFry', 'ThreeFry32', 'Xoroshiro128', 'Xorshift1024', - 'Xoshiro256StarStar', 'Xoshiro512StarStar', 'RandomState'] - -#from ._version import get_versions - -#__version__ = get_versions()['version'] -#del get_versions diff --git a/numpy/random/randomgen/_version.py b/numpy/random/randomgen/_version.py deleted file mode 100644 index e400e3efb..000000000 --- a/numpy/random/randomgen/_version.py +++ /dev/null @@ -1,520 +0,0 @@ - -# This file helps to compute a version number in source trees obtained from -# git-archive tarball (such as those provided by githubs download-from-tag -# feature). Distribution tarballs (built by setup.py sdist) and build -# directories (produced by setup.py build) will contain a much shorter file -# that just contains the computed version number. - -# This file is released into the public domain. Generated by -# versioneer-0.18 (https://github.com/warner/python-versioneer) - -"""Git implementation of _version.py.""" - -import errno -import os -import re -import subprocess -import sys - - -def get_keywords(): - """Get the keywords needed to look up the version information.""" - # these strings will be replaced by git during git-archive. - # setup.py/versioneer.py will grep for the variable names, so they must - # each be defined on a line of their own. _version.py will just call - # get_keywords(). - git_refnames = "$Format:%d$" - git_full = "$Format:%H$" - git_date = "$Format:%ci$" - keywords = {"refnames": git_refnames, "full": git_full, "date": git_date} - return keywords - - -class VersioneerConfig: - """Container for Versioneer configuration parameters.""" - - -def get_config(): - """Create, populate and return the VersioneerConfig() object.""" - # these strings are filled in when 'setup.py versioneer' creates - # _version.py - cfg = VersioneerConfig() - cfg.VCS = "git" - cfg.style = "pep440" - cfg.tag_prefix = "" - cfg.parentdir_prefix = "randomgen-" - cfg.versionfile_source = "randomgen/_version.py" - cfg.verbose = False - return cfg - - -class NotThisMethod(Exception): - """Exception raised if a method is not valid for the current scenario.""" - - -LONG_VERSION_PY = {} -HANDLERS = {} - - -def register_vcs_handler(vcs, method): # decorator - """Decorator to mark a method as the handler for a particular VCS.""" - def decorate(f): - """Store f in HANDLERS[vcs][method].""" - if vcs not in HANDLERS: - HANDLERS[vcs] = {} - HANDLERS[vcs][method] = f - return f - return decorate - - -def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False, - env=None): - """Call the given command(s).""" - assert isinstance(commands, list) - p = None - for c in commands: - try: - dispcmd = str([c] + args) - # remember shell=False, so use git.cmd on windows, not just git - p = subprocess.Popen([c] + args, cwd=cwd, env=env, - stdout=subprocess.PIPE, - stderr=(subprocess.PIPE if hide_stderr - else None)) - break - except EnvironmentError: - e = sys.exc_info()[1] - if e.errno == errno.ENOENT: - continue - if verbose: - print("unable to run %s" % dispcmd) - print(e) - return None, None - else: - if verbose: - print("unable to find command, tried %s" % (commands,)) - return None, None - stdout = p.communicate()[0].strip() - if sys.version_info[0] >= 3: - stdout = stdout.decode() - if p.returncode != 0: - if verbose: - print("unable to run %s (error)" % dispcmd) - print("stdout was %s" % stdout) - return None, p.returncode - return stdout, p.returncode - - -def versions_from_parentdir(parentdir_prefix, root, verbose): - """Try to determine the version from the parent directory name. - - Source tarballs conventionally unpack into a directory that includes both - the project name and a version string. We will also support searching up - two directory levels for an appropriately named parent directory - """ - rootdirs = [] - - for i in range(3): - dirname = os.path.basename(root) - if dirname.startswith(parentdir_prefix): - return {"version": dirname[len(parentdir_prefix):], - "full-revisionid": None, - "dirty": False, "error": None, "date": None} - else: - rootdirs.append(root) - root = os.path.dirname(root) # up a level - - if verbose: - print("Tried directories %s but none started with prefix %s" % - (str(rootdirs), parentdir_prefix)) - raise NotThisMethod("rootdir doesn't start with parentdir_prefix") - - -@register_vcs_handler("git", "get_keywords") -def git_get_keywords(versionfile_abs): - """Extract version information from the given file.""" - # the code embedded in _version.py can just fetch the value of these - # keywords. When used from setup.py, we don't want to import _version.py, - # so we do it with a regexp instead. This function is not used from - # _version.py. - keywords = {} - try: - f = open(versionfile_abs, "r") - for line in f.readlines(): - if line.strip().startswith("git_refnames ="): - mo = re.search(r'=\s*"(.*)"', line) - if mo: - keywords["refnames"] = mo.group(1) - if line.strip().startswith("git_full ="): - mo = re.search(r'=\s*"(.*)"', line) - if mo: - keywords["full"] = mo.group(1) - if line.strip().startswith("git_date ="): - mo = re.search(r'=\s*"(.*)"', line) - if mo: - keywords["date"] = mo.group(1) - f.close() - except EnvironmentError: - pass - return keywords - - -@register_vcs_handler("git", "keywords") -def git_versions_from_keywords(keywords, tag_prefix, verbose): - """Get version information from git keywords.""" - if not keywords: - raise NotThisMethod("no keywords at all, weird") - date = keywords.get("date") - if date is not None: - # git-2.2.0 added "%cI", which expands to an ISO-8601 -compliant - # datestamp. However we prefer "%ci" (which expands to an "ISO-8601 - # -like" string, which we must then edit to make compliant), because - # it's been around since git-1.5.3, and it's too difficult to - # discover which version we're using, or to work around using an - # older one. - date = date.strip().replace(" ", "T", 1).replace(" ", "", 1) - refnames = keywords["refnames"].strip() - if refnames.startswith("$Format"): - if verbose: - print("keywords are unexpanded, not using") - raise NotThisMethod("unexpanded keywords, not a git-archive tarball") - refs = set([r.strip() for r in refnames.strip("()").split(",")]) - # starting in git-1.8.3, tags are listed as "tag: foo-1.0" instead of - # just "foo-1.0". If we see a "tag: " prefix, prefer those. - TAG = "tag: " - tags = set([r[len(TAG):] for r in refs if r.startswith(TAG)]) - if not tags: - # Either we're using git < 1.8.3, or there really are no tags. We use - # a heuristic: assume all version tags have a digit. The old git %d - # expansion behaves like git log --decorate=short and strips out the - # refs/heads/ and refs/tags/ prefixes that would let us distinguish - # between branches and tags. By ignoring refnames without digits, we - # filter out many common branch names like "release" and - # "stabilization", as well as "HEAD" and "master". - tags = set([r for r in refs if re.search(r'\d', r)]) - if verbose: - print("discarding '%s', no digits" % ",".join(refs - tags)) - if verbose: - print("likely tags: %s" % ",".join(sorted(tags))) - for ref in sorted(tags): - # sorting will prefer e.g. "2.0" over "2.0rc1" - if ref.startswith(tag_prefix): - r = ref[len(tag_prefix):] - if verbose: - print("picking %s" % r) - return {"version": r, - "full-revisionid": keywords["full"].strip(), - "dirty": False, "error": None, - "date": date} - # no suitable tags, so version is "0+unknown", but full hex is still there - if verbose: - print("no suitable tags, using unknown + full revision id") - return {"version": "0+unknown", - "full-revisionid": keywords["full"].strip(), - "dirty": False, "error": "no suitable tags", "date": None} - - -@register_vcs_handler("git", "pieces_from_vcs") -def git_pieces_from_vcs(tag_prefix, root, verbose, run_command=run_command): - """Get version from 'git describe' in the root of the source tree. - - This only gets called if the git-archive 'subst' keywords were *not* - expanded, and _version.py hasn't already been rewritten with a short - version string, meaning we're inside a checked out source tree. - """ - GITS = ["git"] - if sys.platform == "win32": - GITS = ["git.cmd", "git.exe"] - - out, rc = run_command(GITS, ["rev-parse", "--git-dir"], cwd=root, - hide_stderr=True) - if rc != 0: - if verbose: - print("Directory %s not under git control" % root) - raise NotThisMethod("'git rev-parse --git-dir' returned error") - - # if there is a tag matching tag_prefix, this yields TAG-NUM-gHEX[-dirty] - # if there isn't one, this yields HEX[-dirty] (no NUM) - describe_out, rc = run_command(GITS, ["describe", "--tags", "--dirty", - "--always", "--long", - "--match", "%s*" % tag_prefix], - cwd=root) - # --long was added in git-1.5.5 - if describe_out is None: - raise NotThisMethod("'git describe' failed") - describe_out = describe_out.strip() - full_out, rc = run_command(GITS, ["rev-parse", "HEAD"], cwd=root) - if full_out is None: - raise NotThisMethod("'git rev-parse' failed") - full_out = full_out.strip() - - pieces = {} - pieces["long"] = full_out - pieces["short"] = full_out[:7] # maybe improved later - pieces["error"] = None - - # parse describe_out. It will be like TAG-NUM-gHEX[-dirty] or HEX[-dirty] - # TAG might have hyphens. - git_describe = describe_out - - # look for -dirty suffix - dirty = git_describe.endswith("-dirty") - pieces["dirty"] = dirty - if dirty: - git_describe = git_describe[:git_describe.rindex("-dirty")] - - # now we have TAG-NUM-gHEX or HEX - - if "-" in git_describe: - # TAG-NUM-gHEX - mo = re.search(r'^(.+)-(\d+)-g([0-9a-f]+)$', git_describe) - if not mo: - # unparseable. Maybe git-describe is misbehaving? - pieces["error"] = ("unable to parse git-describe output: '%s'" - % describe_out) - return pieces - - # tag - full_tag = mo.group(1) - if not full_tag.startswith(tag_prefix): - if verbose: - fmt = "tag '%s' doesn't start with prefix '%s'" - print(fmt % (full_tag, tag_prefix)) - pieces["error"] = ("tag '%s' doesn't start with prefix '%s'" - % (full_tag, tag_prefix)) - return pieces - pieces["closest-tag"] = full_tag[len(tag_prefix):] - - # distance: number of commits since tag - pieces["distance"] = int(mo.group(2)) - - # commit: short hex revision ID - pieces["short"] = mo.group(3) - - else: - # HEX: no tags - pieces["closest-tag"] = None - count_out, rc = run_command(GITS, ["rev-list", "HEAD", "--count"], - cwd=root) - pieces["distance"] = int(count_out) # total number of commits - - # commit date: see ISO-8601 comment in git_versions_from_keywords() - date = run_command(GITS, ["show", "-s", "--format=%ci", "HEAD"], - cwd=root)[0].strip() - pieces["date"] = date.strip().replace(" ", "T", 1).replace(" ", "", 1) - - return pieces - - -def plus_or_dot(pieces): - """Return a + if we don't already have one, else return a .""" - if "+" in pieces.get("closest-tag", ""): - return "." - return "+" - - -def render_pep440(pieces): - """Build up version string, with post-release "local version identifier". - - Our goal: TAG[+DISTANCE.gHEX[.dirty]] . Note that if you - get a tagged build and then dirty it, you'll get TAG+0.gHEX.dirty - - Exceptions: - 1: no tags. git_describe was just HEX. 0+untagged.DISTANCE.gHEX[.dirty] - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"] or pieces["dirty"]: - rendered += plus_or_dot(pieces) - rendered += "%d.g%s" % (pieces["distance"], pieces["short"]) - if pieces["dirty"]: - rendered += ".dirty" - else: - # exception #1 - rendered = "0+untagged.%d.g%s" % (pieces["distance"], - pieces["short"]) - if pieces["dirty"]: - rendered += ".dirty" - return rendered - - -def render_pep440_pre(pieces): - """TAG[.post.devDISTANCE] -- No -dirty. - - Exceptions: - 1: no tags. 0.post.devDISTANCE - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"]: - rendered += ".post.dev%d" % pieces["distance"] - else: - # exception #1 - rendered = "0.post.dev%d" % pieces["distance"] - return rendered - - -def render_pep440_post(pieces): - """TAG[.postDISTANCE[.dev0]+gHEX] . - - The ".dev0" means dirty. Note that .dev0 sorts backwards - (a dirty tree will appear "older" than the corresponding clean one), - but you shouldn't be releasing software with -dirty anyways. - - Exceptions: - 1: no tags. 0.postDISTANCE[.dev0] - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"] or pieces["dirty"]: - rendered += ".post%d" % pieces["distance"] - if pieces["dirty"]: - rendered += ".dev0" - rendered += plus_or_dot(pieces) - rendered += "g%s" % pieces["short"] - else: - # exception #1 - rendered = "0.post%d" % pieces["distance"] - if pieces["dirty"]: - rendered += ".dev0" - rendered += "+g%s" % pieces["short"] - return rendered - - -def render_pep440_old(pieces): - """TAG[.postDISTANCE[.dev0]] . - - The ".dev0" means dirty. - - Eexceptions: - 1: no tags. 0.postDISTANCE[.dev0] - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"] or pieces["dirty"]: - rendered += ".post%d" % pieces["distance"] - if pieces["dirty"]: - rendered += ".dev0" - else: - # exception #1 - rendered = "0.post%d" % pieces["distance"] - if pieces["dirty"]: - rendered += ".dev0" - return rendered - - -def render_git_describe(pieces): - """TAG[-DISTANCE-gHEX][-dirty]. - - Like 'git describe --tags --dirty --always'. - - Exceptions: - 1: no tags. HEX[-dirty] (note: no 'g' prefix) - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"]: - rendered += "-%d-g%s" % (pieces["distance"], pieces["short"]) - else: - # exception #1 - rendered = pieces["short"] - if pieces["dirty"]: - rendered += "-dirty" - return rendered - - -def render_git_describe_long(pieces): - """TAG-DISTANCE-gHEX[-dirty]. - - Like 'git describe --tags --dirty --always -long'. - The distance/hash is unconditional. - - Exceptions: - 1: no tags. HEX[-dirty] (note: no 'g' prefix) - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - rendered += "-%d-g%s" % (pieces["distance"], pieces["short"]) - else: - # exception #1 - rendered = pieces["short"] - if pieces["dirty"]: - rendered += "-dirty" - return rendered - - -def render(pieces, style): - """Render the given version pieces into the requested style.""" - if pieces["error"]: - return {"version": "unknown", - "full-revisionid": pieces.get("long"), - "dirty": None, - "error": pieces["error"], - "date": None} - - if not style or style == "default": - style = "pep440" # the default - - if style == "pep440": - rendered = render_pep440(pieces) - elif style == "pep440-pre": - rendered = render_pep440_pre(pieces) - elif style == "pep440-post": - rendered = render_pep440_post(pieces) - elif style == "pep440-old": - rendered = render_pep440_old(pieces) - elif style == "git-describe": - rendered = render_git_describe(pieces) - elif style == "git-describe-long": - rendered = render_git_describe_long(pieces) - else: - raise ValueError("unknown style '%s'" % style) - - return {"version": rendered, "full-revisionid": pieces["long"], - "dirty": pieces["dirty"], "error": None, - "date": pieces.get("date")} - - -def get_versions(): - """Get version information or return default if unable to do so.""" - # I am in _version.py, which lives at ROOT/VERSIONFILE_SOURCE. If we have - # __file__, we can work backwards from there to the root. Some - # py2exe/bbfreeze/non-CPython implementations don't do __file__, in which - # case we can only use expanded keywords. - - cfg = get_config() - verbose = cfg.verbose - - try: - return git_versions_from_keywords(get_keywords(), cfg.tag_prefix, - verbose) - except NotThisMethod: - pass - - try: - root = os.path.realpath(__file__) - # versionfile_source is the relative path from the top of the source - # tree (where the .git directory might live) to this file. Invert - # this to find the root from __file__. - for i in cfg.versionfile_source.split('/'): - root = os.path.dirname(root) - except NameError: - return {"version": "0+unknown", "full-revisionid": None, - "dirty": None, - "error": "unable to find root of source tree", - "date": None} - - try: - pieces = git_pieces_from_vcs(cfg.tag_prefix, root, verbose) - return render(pieces, cfg.style) - except NotThisMethod: - pass - - try: - if cfg.parentdir_prefix: - return versions_from_parentdir(cfg.parentdir_prefix, root, verbose) - except NotThisMethod: - pass - - return {"version": "0+unknown", "full-revisionid": None, - "dirty": None, - "error": "unable to compute version", "date": None} diff --git a/numpy/random/randomgen/setup.py b/numpy/random/randomgen/setup.py deleted file mode 100644 index 5b7be4559..000000000 --- a/numpy/random/randomgen/setup.py +++ /dev/null @@ -1,191 +0,0 @@ -from os.path import join -import sys -import os -import platform -import struct -from distutils.dep_util import newer -from distutils.msvccompiler import get_build_version as get_msvc_build_version - -def needs_mingw_ftime_workaround(): - # We need the mingw workaround for _ftime if the msvc runtime version is - # 7.1 or above and we build with mingw ... - # ... but we can't easily detect compiler version outside distutils command - # context, so we will need to detect in randomkit whether we build with gcc - msver = get_msvc_build_version() - if msver and msver >= 8: - return True - - return False - - -def configuration(parent_package='',top_path=None): - from numpy.distutils.misc_util import Configuration, get_mathlibs - config = Configuration('randomgen', parent_package, top_path) - - def generate_libraries(ext, build_dir): - config_cmd = config.get_config_cmd() - libs = get_mathlibs() - if sys.platform == 'win32': - libs.append('Advapi32') - ext.libraries.extend(libs) - return None - - # enable unix large file support on 32 bit systems - # (64 bit off_t, lseek -> lseek64 etc.) - if sys.platform[:3] == "aix": - defs = [('_LARGE_FILES', None)] - else: - defs = [('_FILE_OFFSET_BITS', '64'), - ('_LARGEFILE_SOURCE', '1'), - ('_LARGEFILE64_SOURCE', '1')] - if needs_mingw_ftime_workaround(): - defs.append(("NPY_NEEDS_MINGW_TIME_WORKAROUND", None)) - - libs = [] - defs.append(('NPY_NO_DEPRECATED_API', 0)) - config.add_data_dir('tests') - - ############################## - # randomgen - ############################## - - # Make a guess as to whether SSE2 is present for now, TODO: Improve - USE_SSE2 = False - for k in platform.uname(): - for val in ('x86', 'i686', 'i386', 'amd64'): - USE_SSE2 = USE_SSE2 or val in k.lower() - print('Building with SSE?: {0}'.format(USE_SSE2)) - if '--no-sse2' in sys.argv: - USE_SSE2 = False - sys.argv.remove('--no-sse2') - - DEBUG = False - PCG_EMULATED_MATH = False - EXTRA_LINK_ARGS = [] - EXTRA_LIBRARIES = ['m'] if os.name != 'nt' else [] - EXTRA_COMPILE_ARGS = [] if os.name == 'nt' else [ - '-std=c99', '-U__GNUC_GNU_INLINE__'] - if os.name == 'nt': - EXTRA_LINK_ARGS = ['/LTCG', '/OPT:REF', 'Advapi32.lib', 'Kernel32.lib'] - if DEBUG: - EXTRA_LINK_ARGS += ['-debug'] - EXTRA_COMPILE_ARGS += ["-Zi", "/Od"] - if sys.version_info < (3, 0): - EXTRA_INCLUDE_DIRS += [join(MOD_DIR, 'src', 'common')] - - PCG64_DEFS = [] - # TODO: remove the unconditional forced emulation, move code from pcg64.pyx - # to an #ifdef - if 1 or sys.maxsize < 2 ** 32 or os.name == 'nt': - # Force emulated mode here - PCG_EMULATED_MATH = True - PCG64_DEFS += [('PCG_FORCE_EMULATED_128BIT_MATH', '1')] - - if struct.calcsize('P') < 8: - PCG_EMULATED_MATH = True - defs.append(('PCG_EMULATED_MATH', int(PCG_EMULATED_MATH))) - - DSFMT_DEFS = [('DSFMT_MEXP', '19937')] - if USE_SSE2: - if os.name == 'nt': - EXTRA_COMPILE_ARGS += ['/wd4146', '/GL'] - if struct.calcsize('P') < 8: - EXTRA_COMPILE_ARGS += ['/arch:SSE2'] - else: - EXTRA_COMPILE_ARGS += ['-msse2'] - DSFMT_DEFS += [('HAVE_SSE2', '1')] - - config.add_extension('entropy', - sources=['entropy.c', 'src/entropy/entropy.c'], - include_dirs=[join('randomgen', 'src', 'entropy')], - libraries=EXTRA_LIBRARIES, - extra_compile_args=EXTRA_COMPILE_ARGS, - extra_link_args=EXTRA_LINK_ARGS, - depends=[join('src', 'splitmix64', 'splitmix.h'), - join('src', 'entropy', 'entropy.h'), - 'entropy.pyx', - ], - define_macros=defs, - ) - config.add_extension('dsfmt', - sources=['dsfmt.c', 'src/dsfmt/dSFMT.c', - 'src/dsfmt/dSFMT-jump.c', - 'src/aligned_malloc/aligned_malloc.c'], - include_dirs=[join('src', 'dsfmt')], - libraries=EXTRA_LIBRARIES, - extra_compile_args=EXTRA_COMPILE_ARGS, - extra_link_args=EXTRA_LINK_ARGS, - depends=[join('src', 'dsfmt', 'dsfmt.h'), - 'dsfmt.pyx', - ], - define_macros=defs + DSFMT_DEFS, - ) - for gen in ['mt19937']: - # gen.pyx, src/gen/gen.c, src/gen/gen-jump.c - config.add_extension(gen, - sources=['{0}.c'.format(gen), 'src/{0}/{0}.c'.format(gen), - 'src/{0}/{0}-jump.c'.format(gen)], - include_dirs=[join('src', gen)], - libraries=EXTRA_LIBRARIES, - extra_compile_args=EXTRA_COMPILE_ARGS, - extra_link_args=EXTRA_LINK_ARGS, - depends=['%s.pyx' % gen], - define_macros=defs, - ) - for gen in ['philox', 'threefry', 'threefry32', - 'xoroshiro128', 'xorshift1024', 'xoshiro256starstar', - 'xoshiro512starstar', - 'pcg64', 'pcg32', - ]: - # gen.pyx, src/gen/gen.c - if gen == 'pcg64': - _defs = defs + PCG64_DEFS - else: - _defs = defs - config.add_extension(gen, - sources=['{0}.c'.format(gen), 'src/{0}/{0}.c'.format(gen)], - include_dirs=[join('src', gen)], - libraries=EXTRA_LIBRARIES, - extra_compile_args=EXTRA_COMPILE_ARGS, - extra_link_args=EXTRA_LINK_ARGS, - depends=['%s.pyx' % gen], - define_macros=_defs, - ) - for gen in ['common']: - # gen.pyx - config.add_extension(gen, - sources=['{0}.c'.format(gen)], - libraries=EXTRA_LIBRARIES, - extra_compile_args=EXTRA_COMPILE_ARGS, - extra_link_args=EXTRA_LINK_ARGS, - depends=['%s.pyx' % gen], - define_macros=defs, - ) - for gen in ['generator', 'bounded_integers']: - # gen.pyx, src/distributions/distributions.c - config.add_extension(gen, - sources=['{0}.c'.format(gen), - join('src', 'distributions', - 'distributions.c')], - libraries=EXTRA_LIBRARIES, - extra_compile_args=EXTRA_COMPILE_ARGS, - extra_link_args=EXTRA_LINK_ARGS, - depends=['%s.pyx' % gen], - define_macros=defs, - ) - config.add_extension('mtrand', - sources=['mtrand.c', - 'src/legacy/distributions-boxmuller.c', - 'src/distributions/distributions.c' ], - include_dirs=['.', 'legacy'], - libraries=EXTRA_LIBRARIES, - extra_compile_args=EXTRA_COMPILE_ARGS, - extra_link_args=EXTRA_LINK_ARGS, - depends=['mtrand.pyx'], - define_macros=defs + DSFMT_DEFS, - ) - config.add_subpackage('legacy') - return config -if __name__ == '__main__': - from numpy.distutils.core import setup - setup(configuration=configuration) diff --git a/numpy/random/randomgen/tests/data/__init__.py b/numpy/random/randomgen/tests/data/__init__.py deleted file mode 100644 index e69de29bb..000000000 --- a/numpy/random/randomgen/tests/data/__init__.py +++ /dev/null diff --git a/numpy/random/setup.py b/numpy/random/setup.py index 481c4e380..088764791 100644 --- a/numpy/random/setup.py +++ b/numpy/random/setup.py @@ -46,21 +46,160 @@ def configuration(parent_package='',top_path=None): libs = [] defs.append(('NPY_NO_DEPRECATED_API', 0)) # Configure mtrand - config.add_extension('mtrand', - sources=[join('mtrand', x) for x in + config.add_extension('_mtrand', + sources=[join('_mtrand', x) for x in ['mtrand.c', 'randomkit.c', 'initarray.c', 'distributions.c']]+[generate_libraries], libraries=libs, - depends=[join('mtrand', '*.h'), - join('mtrand', '*.pyx'), - join('mtrand', '*.pxi'),], + depends=[join('_mtrand', '*.h'), + join('_mtrand', '*.pyx'), + join('_mtrand', '*.pxi'),], define_macros=defs, ) - config.add_data_files(('.', join('mtrand', 'randomkit.h'))) + config.add_data_files(('.', join('_mtrand', 'randomkit.h'))) config.add_data_dir('tests') - config.add_subpackage('randomgen') + ############################## + # randomgen + ############################## + + # Make a guess as to whether SSE2 is present for now, TODO: Improve + USE_SSE2 = False + for k in platform.uname(): + for val in ('x86', 'i686', 'i386', 'amd64'): + USE_SSE2 = USE_SSE2 or val in k.lower() + print('Building with SSE?: {0}'.format(USE_SSE2)) + if '--no-sse2' in sys.argv: + USE_SSE2 = False + sys.argv.remove('--no-sse2') + + DEBUG = False + PCG_EMULATED_MATH = False + EXTRA_LINK_ARGS = [] + EXTRA_LIBRARIES = ['m'] if os.name != 'nt' else [] + EXTRA_COMPILE_ARGS = [] if os.name == 'nt' else [ + '-std=c99', '-U__GNUC_GNU_INLINE__'] + if os.name == 'nt': + EXTRA_LINK_ARGS = ['/LTCG', '/OPT:REF', 'Advapi32.lib', 'Kernel32.lib'] + if DEBUG: + EXTRA_LINK_ARGS += ['-debug'] + EXTRA_COMPILE_ARGS += ["-Zi", "/Od"] + if sys.version_info < (3, 0): + EXTRA_INCLUDE_DIRS += [join(MOD_DIR, 'src', 'common')] + + PCG64_DEFS = [] + # TODO: remove the unconditional forced emulation, move code from pcg64.pyx + # to an #ifdef + if 1 or sys.maxsize < 2 ** 32 or os.name == 'nt': + # Force emulated mode here + PCG_EMULATED_MATH = True + PCG64_DEFS += [('PCG_FORCE_EMULATED_128BIT_MATH', '1')] + + if struct.calcsize('P') < 8: + PCG_EMULATED_MATH = True + defs.append(('PCG_EMULATED_MATH', int(PCG_EMULATED_MATH))) + + DSFMT_DEFS = [('DSFMT_MEXP', '19937')] + if USE_SSE2: + if os.name == 'nt': + EXTRA_COMPILE_ARGS += ['/wd4146', '/GL'] + if struct.calcsize('P') < 8: + EXTRA_COMPILE_ARGS += ['/arch:SSE2'] + else: + EXTRA_COMPILE_ARGS += ['-msse2'] + DSFMT_DEFS += [('HAVE_SSE2', '1')] + + config.add_extension('entropy', + sources=['entropy.c', 'src/entropy/entropy.c'], + include_dirs=[join('randomgen', 'src', 'entropy')], + libraries=EXTRA_LIBRARIES, + extra_compile_args=EXTRA_COMPILE_ARGS, + extra_link_args=EXTRA_LINK_ARGS, + depends=[join('src', 'splitmix64', 'splitmix.h'), + join('src', 'entropy', 'entropy.h'), + 'entropy.pyx', + ], + define_macros=defs, + ) + config.add_extension('dsfmt', + sources=['dsfmt.c', 'src/dsfmt/dSFMT.c', + 'src/dsfmt/dSFMT-jump.c', + 'src/aligned_malloc/aligned_malloc.c'], + include_dirs=[join('src', 'dsfmt')], + libraries=EXTRA_LIBRARIES, + extra_compile_args=EXTRA_COMPILE_ARGS, + extra_link_args=EXTRA_LINK_ARGS, + depends=[join('src', 'dsfmt', 'dsfmt.h'), + 'dsfmt.pyx', + ], + define_macros=defs + DSFMT_DEFS, + ) + for gen in ['mt19937']: + # gen.pyx, src/gen/gen.c, src/gen/gen-jump.c + config.add_extension(gen, + sources=['{0}.c'.format(gen), 'src/{0}/{0}.c'.format(gen), + 'src/{0}/{0}-jump.c'.format(gen)], + include_dirs=[join('src', gen)], + libraries=EXTRA_LIBRARIES, + extra_compile_args=EXTRA_COMPILE_ARGS, + extra_link_args=EXTRA_LINK_ARGS, + depends=['%s.pyx' % gen], + define_macros=defs, + ) + for gen in ['philox', 'threefry', 'threefry32', + 'xoroshiro128', 'xorshift1024', 'xoshiro256starstar', + 'xoshiro512starstar', + 'pcg64', 'pcg32', + ]: + # gen.pyx, src/gen/gen.c + if gen == 'pcg64': + _defs = defs + PCG64_DEFS + else: + _defs = defs + config.add_extension(gen, + sources=['{0}.c'.format(gen), 'src/{0}/{0}.c'.format(gen)], + include_dirs=[join('src', gen)], + libraries=EXTRA_LIBRARIES, + extra_compile_args=EXTRA_COMPILE_ARGS, + extra_link_args=EXTRA_LINK_ARGS, + depends=['%s.pyx' % gen], + define_macros=_defs, + ) + for gen in ['common']: + # gen.pyx + config.add_extension(gen, + sources=['{0}.c'.format(gen)], + libraries=EXTRA_LIBRARIES, + extra_compile_args=EXTRA_COMPILE_ARGS, + extra_link_args=EXTRA_LINK_ARGS, + depends=['%s.pyx' % gen], + define_macros=defs, + ) + for gen in ['generator', 'bounded_integers']: + # gen.pyx, src/distributions/distributions.c + config.add_extension(gen, + sources=['{0}.c'.format(gen), + join('src', 'distributions', + 'distributions.c')], + libraries=EXTRA_LIBRARIES, + extra_compile_args=EXTRA_COMPILE_ARGS, + extra_link_args=EXTRA_LINK_ARGS, + depends=['%s.pyx' % gen], + define_macros=defs, + ) + config.add_extension('mtrand', + sources=['mtrand.c', + 'src/legacy/distributions-boxmuller.c', + 'src/distributions/distributions.c' ], + include_dirs=['.', 'legacy'], + libraries=EXTRA_LIBRARIES, + extra_compile_args=EXTRA_COMPILE_ARGS, + extra_link_args=EXTRA_LINK_ARGS, + depends=['mtrand.pyx'], + define_macros=defs + DSFMT_DEFS, + ) + config.add_subpackage('legacy') return config if __name__ == '__main__': diff --git a/numpy/random/randomgen/src/aligned_malloc/aligned_malloc.c b/numpy/random/src/aligned_malloc/aligned_malloc.c index 6e8192cfb..6e8192cfb 100644 --- a/numpy/random/randomgen/src/aligned_malloc/aligned_malloc.c +++ b/numpy/random/src/aligned_malloc/aligned_malloc.c diff --git a/numpy/random/randomgen/src/aligned_malloc/aligned_malloc.h b/numpy/random/src/aligned_malloc/aligned_malloc.h index ea24f6d23..ea24f6d23 100644 --- a/numpy/random/randomgen/src/aligned_malloc/aligned_malloc.h +++ b/numpy/random/src/aligned_malloc/aligned_malloc.h diff --git a/numpy/random/randomgen/src/common/LICENSE.md b/numpy/random/src/common/LICENSE.md index 71bf8cf46..71bf8cf46 100644 --- a/numpy/random/randomgen/src/common/LICENSE.md +++ b/numpy/random/src/common/LICENSE.md diff --git a/numpy/random/randomgen/src/common/inttypes.h b/numpy/random/src/common/inttypes.h index 8f8b61108..8f8b61108 100644 --- a/numpy/random/randomgen/src/common/inttypes.h +++ b/numpy/random/src/common/inttypes.h diff --git a/numpy/random/randomgen/src/common/stdint.h b/numpy/random/src/common/stdint.h index 710de1570..710de1570 100644 --- a/numpy/random/randomgen/src/common/stdint.h +++ b/numpy/random/src/common/stdint.h diff --git a/numpy/random/randomgen/src/distributions/LICENSE.md b/numpy/random/src/distributions/LICENSE.md index 31576ba4b..31576ba4b 100644 --- a/numpy/random/randomgen/src/distributions/LICENSE.md +++ b/numpy/random/src/distributions/LICENSE.md diff --git a/numpy/random/randomgen/src/distributions/binomial.h b/numpy/random/src/distributions/binomial.h index e69de29bb..e69de29bb 100644 --- a/numpy/random/randomgen/src/distributions/binomial.h +++ b/numpy/random/src/distributions/binomial.h diff --git a/numpy/random/randomgen/src/distributions/distributions.c b/numpy/random/src/distributions/distributions.c index 83806de38..83806de38 100644 --- a/numpy/random/randomgen/src/distributions/distributions.c +++ b/numpy/random/src/distributions/distributions.c diff --git a/numpy/random/randomgen/src/distributions/distributions.h b/numpy/random/src/distributions/distributions.h index 7ca31a16c..7ca31a16c 100644 --- a/numpy/random/randomgen/src/distributions/distributions.h +++ b/numpy/random/src/distributions/distributions.h diff --git a/numpy/random/randomgen/src/distributions/ziggurat.h b/numpy/random/src/distributions/ziggurat.h index 7808c0e68..7808c0e68 100644 --- a/numpy/random/randomgen/src/distributions/ziggurat.h +++ b/numpy/random/src/distributions/ziggurat.h diff --git a/numpy/random/randomgen/src/distributions/ziggurat_constants.h b/numpy/random/src/distributions/ziggurat_constants.h index 17eccec0f..17eccec0f 100644 --- a/numpy/random/randomgen/src/distributions/ziggurat_constants.h +++ b/numpy/random/src/distributions/ziggurat_constants.h diff --git a/numpy/random/randomgen/src/dsfmt/128-bit-jump.poly.txt b/numpy/random/src/dsfmt/128-bit-jump.poly.txt index fea1318fb..fea1318fb 100644 --- a/numpy/random/randomgen/src/dsfmt/128-bit-jump.poly.txt +++ b/numpy/random/src/dsfmt/128-bit-jump.poly.txt diff --git a/numpy/random/randomgen/src/dsfmt/96-bit-jump.poly.txt b/numpy/random/src/dsfmt/96-bit-jump.poly.txt index 15c68d155..15c68d155 100644 --- a/numpy/random/randomgen/src/dsfmt/96-bit-jump.poly.txt +++ b/numpy/random/src/dsfmt/96-bit-jump.poly.txt diff --git a/numpy/random/randomgen/src/dsfmt/LICENSE.md b/numpy/random/src/dsfmt/LICENSE.md index d59568f6b..d59568f6b 100644 --- a/numpy/random/randomgen/src/dsfmt/LICENSE.md +++ b/numpy/random/src/dsfmt/LICENSE.md diff --git a/numpy/random/randomgen/src/dsfmt/calc-jump.cpp b/numpy/random/src/dsfmt/calc-jump.cpp index 495b2797c..495b2797c 100644 --- a/numpy/random/randomgen/src/dsfmt/calc-jump.cpp +++ b/numpy/random/src/dsfmt/calc-jump.cpp diff --git a/numpy/random/randomgen/src/dsfmt/dSFMT-benchmark.c b/numpy/random/src/dsfmt/dSFMT-benchmark.c index af29d0e1f..af29d0e1f 100644 --- a/numpy/random/randomgen/src/dsfmt/dSFMT-benchmark.c +++ b/numpy/random/src/dsfmt/dSFMT-benchmark.c diff --git a/numpy/random/randomgen/src/dsfmt/dSFMT-calc-jump.hpp b/numpy/random/src/dsfmt/dSFMT-calc-jump.hpp index b960826be..b960826be 100644 --- a/numpy/random/randomgen/src/dsfmt/dSFMT-calc-jump.hpp +++ b/numpy/random/src/dsfmt/dSFMT-calc-jump.hpp diff --git a/numpy/random/randomgen/src/dsfmt/dSFMT-common.h b/numpy/random/src/dsfmt/dSFMT-common.h index 30c26c08b..30c26c08b 100644 --- a/numpy/random/randomgen/src/dsfmt/dSFMT-common.h +++ b/numpy/random/src/dsfmt/dSFMT-common.h diff --git a/numpy/random/randomgen/src/dsfmt/dSFMT-jump.c b/numpy/random/src/dsfmt/dSFMT-jump.c index 1832bb885..1832bb885 100644 --- a/numpy/random/randomgen/src/dsfmt/dSFMT-jump.c +++ b/numpy/random/src/dsfmt/dSFMT-jump.c diff --git a/numpy/random/randomgen/src/dsfmt/dSFMT-jump.h b/numpy/random/src/dsfmt/dSFMT-jump.h index 689f9499a..689f9499a 100644 --- a/numpy/random/randomgen/src/dsfmt/dSFMT-jump.h +++ b/numpy/random/src/dsfmt/dSFMT-jump.h diff --git a/numpy/random/randomgen/src/dsfmt/dSFMT-params.h b/numpy/random/src/dsfmt/dSFMT-params.h index aa0247800..aa0247800 100644 --- a/numpy/random/randomgen/src/dsfmt/dSFMT-params.h +++ b/numpy/random/src/dsfmt/dSFMT-params.h diff --git a/numpy/random/randomgen/src/dsfmt/dSFMT-params19937.h b/numpy/random/src/dsfmt/dSFMT-params19937.h index a600b0dbc..a600b0dbc 100644 --- a/numpy/random/randomgen/src/dsfmt/dSFMT-params19937.h +++ b/numpy/random/src/dsfmt/dSFMT-params19937.h diff --git a/numpy/random/randomgen/src/dsfmt/dSFMT-poly.h b/numpy/random/src/dsfmt/dSFMT-poly.h index f8e15c3eb..f8e15c3eb 100644 --- a/numpy/random/randomgen/src/dsfmt/dSFMT-poly.h +++ b/numpy/random/src/dsfmt/dSFMT-poly.h diff --git a/numpy/random/randomgen/src/dsfmt/dSFMT-test-gen.c b/numpy/random/src/dsfmt/dSFMT-test-gen.c index 697a3010a..697a3010a 100644 --- a/numpy/random/randomgen/src/dsfmt/dSFMT-test-gen.c +++ b/numpy/random/src/dsfmt/dSFMT-test-gen.c diff --git a/numpy/random/randomgen/src/dsfmt/dSFMT.c b/numpy/random/src/dsfmt/dSFMT.c index 0f122c26c..0f122c26c 100644 --- a/numpy/random/randomgen/src/dsfmt/dSFMT.c +++ b/numpy/random/src/dsfmt/dSFMT.c diff --git a/numpy/random/randomgen/src/dsfmt/dSFMT.h b/numpy/random/src/dsfmt/dSFMT.h index 224d0108f..224d0108f 100644 --- a/numpy/random/randomgen/src/dsfmt/dSFMT.h +++ b/numpy/random/src/dsfmt/dSFMT.h diff --git a/numpy/random/randomgen/src/entropy/LICENSE.md b/numpy/random/src/entropy/LICENSE.md index b7276aad7..b7276aad7 100644 --- a/numpy/random/randomgen/src/entropy/LICENSE.md +++ b/numpy/random/src/entropy/LICENSE.md diff --git a/numpy/random/randomgen/src/entropy/entropy.c b/numpy/random/src/entropy/entropy.c index ead4bef83..ead4bef83 100644 --- a/numpy/random/randomgen/src/entropy/entropy.c +++ b/numpy/random/src/entropy/entropy.c diff --git a/numpy/random/randomgen/src/entropy/entropy.h b/numpy/random/src/entropy/entropy.h index 785603dd3..785603dd3 100644 --- a/numpy/random/randomgen/src/entropy/entropy.h +++ b/numpy/random/src/entropy/entropy.h diff --git a/numpy/random/randomgen/src/legacy/LICENSE.md b/numpy/random/src/legacy/LICENSE.md index 88b1791b2..88b1791b2 100644 --- a/numpy/random/randomgen/src/legacy/LICENSE.md +++ b/numpy/random/src/legacy/LICENSE.md diff --git a/numpy/random/randomgen/src/legacy/distributions-boxmuller.c b/numpy/random/src/legacy/distributions-boxmuller.c index 5d3ba27f8..5d3ba27f8 100644 --- a/numpy/random/randomgen/src/legacy/distributions-boxmuller.c +++ b/numpy/random/src/legacy/distributions-boxmuller.c diff --git a/numpy/random/randomgen/src/legacy/distributions-boxmuller.h b/numpy/random/src/legacy/distributions-boxmuller.h index 445686e6c..445686e6c 100644 --- a/numpy/random/randomgen/src/legacy/distributions-boxmuller.h +++ b/numpy/random/src/legacy/distributions-boxmuller.h diff --git a/numpy/random/randomgen/src/mt19937/LICENSE.md b/numpy/random/src/mt19937/LICENSE.md index f65c3d46e..f65c3d46e 100644 --- a/numpy/random/randomgen/src/mt19937/LICENSE.md +++ b/numpy/random/src/mt19937/LICENSE.md diff --git a/numpy/random/randomgen/src/mt19937/mt19937-benchmark.c b/numpy/random/src/mt19937/mt19937-benchmark.c index 039f8030a..039f8030a 100644 --- a/numpy/random/randomgen/src/mt19937/mt19937-benchmark.c +++ b/numpy/random/src/mt19937/mt19937-benchmark.c diff --git a/numpy/random/randomgen/src/mt19937/mt19937-jump.c b/numpy/random/src/mt19937/mt19937-jump.c index 46b28cf96..46b28cf96 100644 --- a/numpy/random/randomgen/src/mt19937/mt19937-jump.c +++ b/numpy/random/src/mt19937/mt19937-jump.c diff --git a/numpy/random/randomgen/src/mt19937/mt19937-jump.h b/numpy/random/src/mt19937/mt19937-jump.h index 394c150a0..394c150a0 100644 --- a/numpy/random/randomgen/src/mt19937/mt19937-jump.h +++ b/numpy/random/src/mt19937/mt19937-jump.h diff --git a/numpy/random/randomgen/src/mt19937/mt19937-poly.h b/numpy/random/src/mt19937/mt19937-poly.h index b03747881..b03747881 100644 --- a/numpy/random/randomgen/src/mt19937/mt19937-poly.h +++ b/numpy/random/src/mt19937/mt19937-poly.h diff --git a/numpy/random/randomgen/src/mt19937/mt19937-test-data-gen.c b/numpy/random/src/mt19937/mt19937-test-data-gen.c index 4f4ec1d64..4f4ec1d64 100644 --- a/numpy/random/randomgen/src/mt19937/mt19937-test-data-gen.c +++ b/numpy/random/src/mt19937/mt19937-test-data-gen.c diff --git a/numpy/random/randomgen/src/mt19937/mt19937.c b/numpy/random/src/mt19937/mt19937.c index e5ca9e0cf..e5ca9e0cf 100644 --- a/numpy/random/randomgen/src/mt19937/mt19937.c +++ b/numpy/random/src/mt19937/mt19937.c diff --git a/numpy/random/randomgen/src/mt19937/mt19937.h b/numpy/random/src/mt19937/mt19937.h index 8105329ec..8105329ec 100644 --- a/numpy/random/randomgen/src/mt19937/mt19937.h +++ b/numpy/random/src/mt19937/mt19937.h diff --git a/numpy/random/randomgen/src/mt19937/randomkit.c b/numpy/random/src/mt19937/randomkit.c index f8ed4b49e..f8ed4b49e 100644 --- a/numpy/random/randomgen/src/mt19937/randomkit.c +++ b/numpy/random/src/mt19937/randomkit.c diff --git a/numpy/random/randomgen/src/mt19937/randomkit.h b/numpy/random/src/mt19937/randomkit.h index abb082cb2..abb082cb2 100644 --- a/numpy/random/randomgen/src/mt19937/randomkit.h +++ b/numpy/random/src/mt19937/randomkit.h diff --git a/numpy/random/randomgen/src/pcg32/LICENSE.md b/numpy/random/src/pcg32/LICENSE.md index 3db2ac2e8..3db2ac2e8 100644 --- a/numpy/random/randomgen/src/pcg32/LICENSE.md +++ b/numpy/random/src/pcg32/LICENSE.md diff --git a/numpy/random/randomgen/src/pcg32/pcg-advance-64.c b/numpy/random/src/pcg32/pcg-advance-64.c index 8210e7565..8210e7565 100644 --- a/numpy/random/randomgen/src/pcg32/pcg-advance-64.c +++ b/numpy/random/src/pcg32/pcg-advance-64.c diff --git a/numpy/random/randomgen/src/pcg32/pcg32-test-data-gen.c b/numpy/random/src/pcg32/pcg32-test-data-gen.c index cccaf84b9..cccaf84b9 100644 --- a/numpy/random/randomgen/src/pcg32/pcg32-test-data-gen.c +++ b/numpy/random/src/pcg32/pcg32-test-data-gen.c diff --git a/numpy/random/randomgen/src/pcg32/pcg32.c b/numpy/random/src/pcg32/pcg32.c index 5fbf6759f..5fbf6759f 100644 --- a/numpy/random/randomgen/src/pcg32/pcg32.c +++ b/numpy/random/src/pcg32/pcg32.c diff --git a/numpy/random/randomgen/src/pcg32/pcg32.h b/numpy/random/src/pcg32/pcg32.h index 557113d8f..557113d8f 100644 --- a/numpy/random/randomgen/src/pcg32/pcg32.h +++ b/numpy/random/src/pcg32/pcg32.h diff --git a/numpy/random/randomgen/src/pcg32/pcg_variants.h b/numpy/random/src/pcg32/pcg_variants.h index 32daac1ce..32daac1ce 100644 --- a/numpy/random/randomgen/src/pcg32/pcg_variants.h +++ b/numpy/random/src/pcg32/pcg_variants.h diff --git a/numpy/random/randomgen/src/pcg64/LICENSE.md b/numpy/random/src/pcg64/LICENSE.md index dd6a17ee8..dd6a17ee8 100644 --- a/numpy/random/randomgen/src/pcg64/LICENSE.md +++ b/numpy/random/src/pcg64/LICENSE.md diff --git a/numpy/random/randomgen/src/pcg64/pcg64-benchmark.c b/numpy/random/src/pcg64/pcg64-benchmark.c index 76f3ec78c..76f3ec78c 100644 --- a/numpy/random/randomgen/src/pcg64/pcg64-benchmark.c +++ b/numpy/random/src/pcg64/pcg64-benchmark.c diff --git a/numpy/random/randomgen/src/pcg64/pcg64-test-data-gen.c b/numpy/random/src/pcg64/pcg64-test-data-gen.c index 0c2b079a3..0c2b079a3 100644 --- a/numpy/random/randomgen/src/pcg64/pcg64-test-data-gen.c +++ b/numpy/random/src/pcg64/pcg64-test-data-gen.c diff --git a/numpy/random/randomgen/src/pcg64/pcg64.c b/numpy/random/src/pcg64/pcg64.c index c7c1eb045..c7c1eb045 100644 --- a/numpy/random/randomgen/src/pcg64/pcg64.c +++ b/numpy/random/src/pcg64/pcg64.c diff --git a/numpy/random/randomgen/src/pcg64/pcg64.h b/numpy/random/src/pcg64/pcg64.h index 156c73a36..156c73a36 100644 --- a/numpy/random/randomgen/src/pcg64/pcg64.h +++ b/numpy/random/src/pcg64/pcg64.h diff --git a/numpy/random/randomgen/src/pcg64/pcg64.orig.c b/numpy/random/src/pcg64/pcg64.orig.c index 07e97e4b6..07e97e4b6 100644 --- a/numpy/random/randomgen/src/pcg64/pcg64.orig.c +++ b/numpy/random/src/pcg64/pcg64.orig.c diff --git a/numpy/random/randomgen/src/pcg64/pcg64.orig.h b/numpy/random/src/pcg64/pcg64.orig.h index 74be91f31..74be91f31 100644 --- a/numpy/random/randomgen/src/pcg64/pcg64.orig.h +++ b/numpy/random/src/pcg64/pcg64.orig.h diff --git a/numpy/random/randomgen/src/philox/LICENSE.md b/numpy/random/src/philox/LICENSE.md index 4a9f6bb29..4a9f6bb29 100644 --- a/numpy/random/randomgen/src/philox/LICENSE.md +++ b/numpy/random/src/philox/LICENSE.md diff --git a/numpy/random/randomgen/src/philox/philox-benchmark.c b/numpy/random/src/philox/philox-benchmark.c index 0cab04cf5..0cab04cf5 100644 --- a/numpy/random/randomgen/src/philox/philox-benchmark.c +++ b/numpy/random/src/philox/philox-benchmark.c diff --git a/numpy/random/randomgen/src/philox/philox-test-data-gen.c b/numpy/random/src/philox/philox-test-data-gen.c index 442e18b55..442e18b55 100644 --- a/numpy/random/randomgen/src/philox/philox-test-data-gen.c +++ b/numpy/random/src/philox/philox-test-data-gen.c diff --git a/numpy/random/randomgen/src/philox/philox.c b/numpy/random/src/philox/philox.c index 3382c60d6..3382c60d6 100644 --- a/numpy/random/randomgen/src/philox/philox.c +++ b/numpy/random/src/philox/philox.c diff --git a/numpy/random/randomgen/src/philox/philox.h b/numpy/random/src/philox/philox.h index 411404b55..411404b55 100644 --- a/numpy/random/randomgen/src/philox/philox.h +++ b/numpy/random/src/philox/philox.h diff --git a/numpy/random/randomgen/src/splitmix64/LICENSE.md b/numpy/random/src/splitmix64/LICENSE.md index 3c4d73b92..3c4d73b92 100644 --- a/numpy/random/randomgen/src/splitmix64/LICENSE.md +++ b/numpy/random/src/splitmix64/LICENSE.md diff --git a/numpy/random/randomgen/src/splitmix64/splitmix64.c b/numpy/random/src/splitmix64/splitmix64.c index 79a845982..79a845982 100644 --- a/numpy/random/randomgen/src/splitmix64/splitmix64.c +++ b/numpy/random/src/splitmix64/splitmix64.c diff --git a/numpy/random/randomgen/src/splitmix64/splitmix64.h b/numpy/random/src/splitmix64/splitmix64.h index 880132970..880132970 100644 --- a/numpy/random/randomgen/src/splitmix64/splitmix64.h +++ b/numpy/random/src/splitmix64/splitmix64.h diff --git a/numpy/random/randomgen/src/splitmix64/splitmix64.orig.c b/numpy/random/src/splitmix64/splitmix64.orig.c index df6133aab..df6133aab 100644 --- a/numpy/random/randomgen/src/splitmix64/splitmix64.orig.c +++ b/numpy/random/src/splitmix64/splitmix64.orig.c diff --git a/numpy/random/randomgen/src/threefry/LICENSE.md b/numpy/random/src/threefry/LICENSE.md index 4a9f6bb29..4a9f6bb29 100644 --- a/numpy/random/randomgen/src/threefry/LICENSE.md +++ b/numpy/random/src/threefry/LICENSE.md diff --git a/numpy/random/randomgen/src/threefry/threefry-benchmark.c b/numpy/random/src/threefry/threefry-benchmark.c index 6d6239cd3..6d6239cd3 100644 --- a/numpy/random/randomgen/src/threefry/threefry-benchmark.c +++ b/numpy/random/src/threefry/threefry-benchmark.c diff --git a/numpy/random/randomgen/src/threefry/threefry-orig.c b/numpy/random/src/threefry/threefry-orig.c index d27cfd797..d27cfd797 100644 --- a/numpy/random/randomgen/src/threefry/threefry-orig.c +++ b/numpy/random/src/threefry/threefry-orig.c diff --git a/numpy/random/randomgen/src/threefry/threefry-test-data-gen.c b/numpy/random/src/threefry/threefry-test-data-gen.c index 328eb2575..328eb2575 100644 --- a/numpy/random/randomgen/src/threefry/threefry-test-data-gen.c +++ b/numpy/random/src/threefry/threefry-test-data-gen.c diff --git a/numpy/random/randomgen/src/threefry/threefry.c b/numpy/random/src/threefry/threefry.c index 19c37df1b..19c37df1b 100644 --- a/numpy/random/randomgen/src/threefry/threefry.c +++ b/numpy/random/src/threefry/threefry.c diff --git a/numpy/random/randomgen/src/threefry/threefry.h b/numpy/random/src/threefry/threefry.h index 297c1241a..297c1241a 100644 --- a/numpy/random/randomgen/src/threefry/threefry.h +++ b/numpy/random/src/threefry/threefry.h diff --git a/numpy/random/randomgen/src/threefry32/LICENSE.md b/numpy/random/src/threefry32/LICENSE.md index 591cd75f4..591cd75f4 100644 --- a/numpy/random/randomgen/src/threefry32/LICENSE.md +++ b/numpy/random/src/threefry32/LICENSE.md diff --git a/numpy/random/randomgen/src/threefry32/threefry32-test-data-gen.c b/numpy/random/src/threefry32/threefry32-test-data-gen.c index 0e6229995..0e6229995 100644 --- a/numpy/random/randomgen/src/threefry32/threefry32-test-data-gen.c +++ b/numpy/random/src/threefry32/threefry32-test-data-gen.c diff --git a/numpy/random/randomgen/src/threefry32/threefry32.c b/numpy/random/src/threefry32/threefry32.c index 500e9482d..500e9482d 100644 --- a/numpy/random/randomgen/src/threefry32/threefry32.c +++ b/numpy/random/src/threefry32/threefry32.c diff --git a/numpy/random/randomgen/src/threefry32/threefry32.h b/numpy/random/src/threefry32/threefry32.h index 74a85c42b..74a85c42b 100644 --- a/numpy/random/randomgen/src/threefry32/threefry32.h +++ b/numpy/random/src/threefry32/threefry32.h diff --git a/numpy/random/randomgen/src/xoroshiro128/LICENSE.md b/numpy/random/src/xoroshiro128/LICENSE.md index 969430149..969430149 100644 --- a/numpy/random/randomgen/src/xoroshiro128/LICENSE.md +++ b/numpy/random/src/xoroshiro128/LICENSE.md diff --git a/numpy/random/randomgen/src/xoroshiro128/xoroshiro128-benchmark.c b/numpy/random/src/xoroshiro128/xoroshiro128-benchmark.c index 9a7b52bfb..9a7b52bfb 100644 --- a/numpy/random/randomgen/src/xoroshiro128/xoroshiro128-benchmark.c +++ b/numpy/random/src/xoroshiro128/xoroshiro128-benchmark.c diff --git a/numpy/random/randomgen/src/xoroshiro128/xoroshiro128-test-data-gen.c b/numpy/random/src/xoroshiro128/xoroshiro128-test-data-gen.c index d50e63f5e..d50e63f5e 100644 --- a/numpy/random/randomgen/src/xoroshiro128/xoroshiro128-test-data-gen.c +++ b/numpy/random/src/xoroshiro128/xoroshiro128-test-data-gen.c diff --git a/numpy/random/randomgen/src/xoroshiro128/xoroshiro128.c b/numpy/random/src/xoroshiro128/xoroshiro128.c index 060eb8a51..060eb8a51 100644 --- a/numpy/random/randomgen/src/xoroshiro128/xoroshiro128.c +++ b/numpy/random/src/xoroshiro128/xoroshiro128.c diff --git a/numpy/random/randomgen/src/xoroshiro128/xoroshiro128.h b/numpy/random/src/xoroshiro128/xoroshiro128.h index 0db82b173..0db82b173 100644 --- a/numpy/random/randomgen/src/xoroshiro128/xoroshiro128.h +++ b/numpy/random/src/xoroshiro128/xoroshiro128.h diff --git a/numpy/random/randomgen/src/xoroshiro128/xoroshiro128plus.orig.c b/numpy/random/src/xoroshiro128/xoroshiro128plus.orig.c index 1b5f46e4b..1b5f46e4b 100644 --- a/numpy/random/randomgen/src/xoroshiro128/xoroshiro128plus.orig.c +++ b/numpy/random/src/xoroshiro128/xoroshiro128plus.orig.c diff --git a/numpy/random/randomgen/src/xoroshiro128/xoroshiro128plus.orig.h b/numpy/random/src/xoroshiro128/xoroshiro128plus.orig.h index 20c96fe04..20c96fe04 100644 --- a/numpy/random/randomgen/src/xoroshiro128/xoroshiro128plus.orig.h +++ b/numpy/random/src/xoroshiro128/xoroshiro128plus.orig.h diff --git a/numpy/random/randomgen/src/xorshift1024/LICENSE.md b/numpy/random/src/xorshift1024/LICENSE.md index 3ca8ed4b9..3ca8ed4b9 100644 --- a/numpy/random/randomgen/src/xorshift1024/LICENSE.md +++ b/numpy/random/src/xorshift1024/LICENSE.md diff --git a/numpy/random/randomgen/src/xorshift1024/xorshift1024-benchmark.c b/numpy/random/src/xorshift1024/xorshift1024-benchmark.c index 0eef33537..0eef33537 100644 --- a/numpy/random/randomgen/src/xorshift1024/xorshift1024-benchmark.c +++ b/numpy/random/src/xorshift1024/xorshift1024-benchmark.c diff --git a/numpy/random/randomgen/src/xorshift1024/xorshift1024-test-data-gen.c b/numpy/random/src/xorshift1024/xorshift1024-test-data-gen.c index a2ae08df4..a2ae08df4 100644 --- a/numpy/random/randomgen/src/xorshift1024/xorshift1024-test-data-gen.c +++ b/numpy/random/src/xorshift1024/xorshift1024-test-data-gen.c diff --git a/numpy/random/randomgen/src/xorshift1024/xorshift1024.c b/numpy/random/src/xorshift1024/xorshift1024.c index 8737b5a82..8737b5a82 100644 --- a/numpy/random/randomgen/src/xorshift1024/xorshift1024.c +++ b/numpy/random/src/xorshift1024/xorshift1024.c diff --git a/numpy/random/randomgen/src/xorshift1024/xorshift1024.h b/numpy/random/src/xorshift1024/xorshift1024.h index e0ef77826..e0ef77826 100644 --- a/numpy/random/randomgen/src/xorshift1024/xorshift1024.h +++ b/numpy/random/src/xorshift1024/xorshift1024.h diff --git a/numpy/random/randomgen/src/xorshift1024/xorshift1024.orig.c b/numpy/random/src/xorshift1024/xorshift1024.orig.c index 03c1c17fe..03c1c17fe 100644 --- a/numpy/random/randomgen/src/xorshift1024/xorshift1024.orig.c +++ b/numpy/random/src/xorshift1024/xorshift1024.orig.c diff --git a/numpy/random/randomgen/src/xorshift1024/xorshift1024.orig.h b/numpy/random/src/xorshift1024/xorshift1024.orig.h index 9b7597967..9b7597967 100644 --- a/numpy/random/randomgen/src/xorshift1024/xorshift1024.orig.h +++ b/numpy/random/src/xorshift1024/xorshift1024.orig.h diff --git a/numpy/random/randomgen/src/xoshiro256starstar/LICENSE.md b/numpy/random/src/xoshiro256starstar/LICENSE.md index d863f3b29..d863f3b29 100644 --- a/numpy/random/randomgen/src/xoshiro256starstar/LICENSE.md +++ b/numpy/random/src/xoshiro256starstar/LICENSE.md diff --git a/numpy/random/randomgen/src/xoshiro256starstar/xoshiro256starstar-test-data-gen.c b/numpy/random/src/xoshiro256starstar/xoshiro256starstar-test-data-gen.c index 8522229dd..8522229dd 100644 --- a/numpy/random/randomgen/src/xoshiro256starstar/xoshiro256starstar-test-data-gen.c +++ b/numpy/random/src/xoshiro256starstar/xoshiro256starstar-test-data-gen.c diff --git a/numpy/random/randomgen/src/xoshiro256starstar/xoshiro256starstar.c b/numpy/random/src/xoshiro256starstar/xoshiro256starstar.c index 30b6c7d85..30b6c7d85 100644 --- a/numpy/random/randomgen/src/xoshiro256starstar/xoshiro256starstar.c +++ b/numpy/random/src/xoshiro256starstar/xoshiro256starstar.c diff --git a/numpy/random/randomgen/src/xoshiro256starstar/xoshiro256starstar.h b/numpy/random/src/xoshiro256starstar/xoshiro256starstar.h index 1d7d8ea40..1d7d8ea40 100644 --- a/numpy/random/randomgen/src/xoshiro256starstar/xoshiro256starstar.h +++ b/numpy/random/src/xoshiro256starstar/xoshiro256starstar.h diff --git a/numpy/random/randomgen/src/xoshiro256starstar/xoshiro256starstar.orig.c b/numpy/random/src/xoshiro256starstar/xoshiro256starstar.orig.c index ecf87bab9..ecf87bab9 100644 --- a/numpy/random/randomgen/src/xoshiro256starstar/xoshiro256starstar.orig.c +++ b/numpy/random/src/xoshiro256starstar/xoshiro256starstar.orig.c diff --git a/numpy/random/randomgen/src/xoshiro256starstar/xoshiro256starstar.orig.h b/numpy/random/src/xoshiro256starstar/xoshiro256starstar.orig.h index 3aa788ec9..3aa788ec9 100644 --- a/numpy/random/randomgen/src/xoshiro256starstar/xoshiro256starstar.orig.h +++ b/numpy/random/src/xoshiro256starstar/xoshiro256starstar.orig.h diff --git a/numpy/random/randomgen/src/xoshiro512starstar/LICENSE.md b/numpy/random/src/xoshiro512starstar/LICENSE.md index aa34c1966..aa34c1966 100644 --- a/numpy/random/randomgen/src/xoshiro512starstar/LICENSE.md +++ b/numpy/random/src/xoshiro512starstar/LICENSE.md diff --git a/numpy/random/randomgen/src/xoshiro512starstar/xoshiro512starstar-test-data-gen.c b/numpy/random/src/xoshiro512starstar/xoshiro512starstar-test-data-gen.c index bcc3574e4..bcc3574e4 100644 --- a/numpy/random/randomgen/src/xoshiro512starstar/xoshiro512starstar-test-data-gen.c +++ b/numpy/random/src/xoshiro512starstar/xoshiro512starstar-test-data-gen.c diff --git a/numpy/random/randomgen/src/xoshiro512starstar/xoshiro512starstar.c b/numpy/random/src/xoshiro512starstar/xoshiro512starstar.c index a9f56699f..a9f56699f 100644 --- a/numpy/random/randomgen/src/xoshiro512starstar/xoshiro512starstar.c +++ b/numpy/random/src/xoshiro512starstar/xoshiro512starstar.c diff --git a/numpy/random/randomgen/src/xoshiro512starstar/xoshiro512starstar.h b/numpy/random/src/xoshiro512starstar/xoshiro512starstar.h index 0fa0ba3cd..0fa0ba3cd 100644 --- a/numpy/random/randomgen/src/xoshiro512starstar/xoshiro512starstar.h +++ b/numpy/random/src/xoshiro512starstar/xoshiro512starstar.h diff --git a/numpy/random/randomgen/src/xoshiro512starstar/xoshiro512starstar.orig.c b/numpy/random/src/xoshiro512starstar/xoshiro512starstar.orig.c index 0cf884edb..0cf884edb 100644 --- a/numpy/random/randomgen/src/xoshiro512starstar/xoshiro512starstar.orig.c +++ b/numpy/random/src/xoshiro512starstar/xoshiro512starstar.orig.c diff --git a/numpy/random/randomgen/src/xoshiro512starstar/xoshiro512starstar.orig.h b/numpy/random/src/xoshiro512starstar/xoshiro512starstar.orig.h index 0b7892473..0b7892473 100644 --- a/numpy/random/randomgen/src/xoshiro512starstar/xoshiro512starstar.orig.h +++ b/numpy/random/src/xoshiro512starstar/xoshiro512starstar.orig.h diff --git a/numpy/random/randomgen/tests/__init__.py b/numpy/random/tests/data/__init__.py index e69de29bb..e69de29bb 100644 --- a/numpy/random/randomgen/tests/__init__.py +++ b/numpy/random/tests/data/__init__.py diff --git a/numpy/random/randomgen/tests/data/dSFMT-testset-1.csv b/numpy/random/tests/data/dSFMT-testset-1.csv index 9f3f68aee..9f3f68aee 100644 --- a/numpy/random/randomgen/tests/data/dSFMT-testset-1.csv +++ b/numpy/random/tests/data/dSFMT-testset-1.csv diff --git a/numpy/random/randomgen/tests/data/dSFMT-testset-2.csv b/numpy/random/tests/data/dSFMT-testset-2.csv index 2ec2d7a51..2ec2d7a51 100644 --- a/numpy/random/randomgen/tests/data/dSFMT-testset-2.csv +++ b/numpy/random/tests/data/dSFMT-testset-2.csv diff --git a/numpy/random/randomgen/tests/data/mt19937-testset-1.csv b/numpy/random/tests/data/mt19937-testset-1.csv index 3d4995840..3d4995840 100644 --- a/numpy/random/randomgen/tests/data/mt19937-testset-1.csv +++ b/numpy/random/tests/data/mt19937-testset-1.csv diff --git a/numpy/random/randomgen/tests/data/mt19937-testset-2.csv b/numpy/random/tests/data/mt19937-testset-2.csv index d2f6c156c..d2f6c156c 100644 --- a/numpy/random/randomgen/tests/data/mt19937-testset-2.csv +++ b/numpy/random/tests/data/mt19937-testset-2.csv diff --git a/numpy/random/randomgen/tests/data/pcg32-testset-1.csv b/numpy/random/tests/data/pcg32-testset-1.csv index 6bddc8d5c..6bddc8d5c 100644 --- a/numpy/random/randomgen/tests/data/pcg32-testset-1.csv +++ b/numpy/random/tests/data/pcg32-testset-1.csv diff --git a/numpy/random/randomgen/tests/data/pcg32-testset-2.csv b/numpy/random/tests/data/pcg32-testset-2.csv index 2d4c8aed1..2d4c8aed1 100644 --- a/numpy/random/randomgen/tests/data/pcg32-testset-2.csv +++ b/numpy/random/tests/data/pcg32-testset-2.csv diff --git a/numpy/random/randomgen/tests/data/pcg64-testset-1.csv b/numpy/random/tests/data/pcg64-testset-1.csv index da6d77d40..da6d77d40 100644 --- a/numpy/random/randomgen/tests/data/pcg64-testset-1.csv +++ b/numpy/random/tests/data/pcg64-testset-1.csv diff --git a/numpy/random/randomgen/tests/data/pcg64-testset-2.csv b/numpy/random/tests/data/pcg64-testset-2.csv index 779761d0f..779761d0f 100644 --- a/numpy/random/randomgen/tests/data/pcg64-testset-2.csv +++ b/numpy/random/tests/data/pcg64-testset-2.csv diff --git a/numpy/random/randomgen/tests/data/philox-testset-1.csv b/numpy/random/tests/data/philox-testset-1.csv index 64c1516cb..64c1516cb 100644 --- a/numpy/random/randomgen/tests/data/philox-testset-1.csv +++ b/numpy/random/tests/data/philox-testset-1.csv diff --git a/numpy/random/randomgen/tests/data/philox-testset-2.csv b/numpy/random/tests/data/philox-testset-2.csv index 1c2d4eba0..1c2d4eba0 100644 --- a/numpy/random/randomgen/tests/data/philox-testset-2.csv +++ b/numpy/random/tests/data/philox-testset-2.csv diff --git a/numpy/random/randomgen/tests/data/threefry-testset-1.csv b/numpy/random/tests/data/threefry-testset-1.csv index ddfa736dc..ddfa736dc 100644 --- a/numpy/random/randomgen/tests/data/threefry-testset-1.csv +++ b/numpy/random/tests/data/threefry-testset-1.csv diff --git a/numpy/random/randomgen/tests/data/threefry-testset-2.csv b/numpy/random/tests/data/threefry-testset-2.csv index 275604557..275604557 100644 --- a/numpy/random/randomgen/tests/data/threefry-testset-2.csv +++ b/numpy/random/tests/data/threefry-testset-2.csv diff --git a/numpy/random/randomgen/tests/data/threefry32-testset-1.csv b/numpy/random/tests/data/threefry32-testset-1.csv index 3aec7304d..3aec7304d 100644 --- a/numpy/random/randomgen/tests/data/threefry32-testset-1.csv +++ b/numpy/random/tests/data/threefry32-testset-1.csv diff --git a/numpy/random/randomgen/tests/data/threefry32-testset-2.csv b/numpy/random/tests/data/threefry32-testset-2.csv index b7753638f..b7753638f 100644 --- a/numpy/random/randomgen/tests/data/threefry32-testset-2.csv +++ b/numpy/random/tests/data/threefry32-testset-2.csv diff --git a/numpy/random/randomgen/tests/data/xoroshiro128-testset-1.csv b/numpy/random/tests/data/xoroshiro128-testset-1.csv index 4ef7172e1..4ef7172e1 100644 --- a/numpy/random/randomgen/tests/data/xoroshiro128-testset-1.csv +++ b/numpy/random/tests/data/xoroshiro128-testset-1.csv diff --git a/numpy/random/randomgen/tests/data/xoroshiro128-testset-2.csv b/numpy/random/tests/data/xoroshiro128-testset-2.csv index 2de341ecd..2de341ecd 100644 --- a/numpy/random/randomgen/tests/data/xoroshiro128-testset-2.csv +++ b/numpy/random/tests/data/xoroshiro128-testset-2.csv diff --git a/numpy/random/randomgen/tests/data/xorshift1024-testset-1.csv b/numpy/random/tests/data/xorshift1024-testset-1.csv index 661b157b1..661b157b1 100644 --- a/numpy/random/randomgen/tests/data/xorshift1024-testset-1.csv +++ b/numpy/random/tests/data/xorshift1024-testset-1.csv diff --git a/numpy/random/randomgen/tests/data/xorshift1024-testset-2.csv b/numpy/random/tests/data/xorshift1024-testset-2.csv index ef10e6872..ef10e6872 100644 --- a/numpy/random/randomgen/tests/data/xorshift1024-testset-2.csv +++ b/numpy/random/tests/data/xorshift1024-testset-2.csv diff --git a/numpy/random/randomgen/tests/data/xoshiro256starstar-testset-1.csv b/numpy/random/tests/data/xoshiro256starstar-testset-1.csv index 534799b04..534799b04 100644 --- a/numpy/random/randomgen/tests/data/xoshiro256starstar-testset-1.csv +++ b/numpy/random/tests/data/xoshiro256starstar-testset-1.csv diff --git a/numpy/random/randomgen/tests/data/xoshiro256starstar-testset-2.csv b/numpy/random/tests/data/xoshiro256starstar-testset-2.csv index b688fcb2a..b688fcb2a 100644 --- a/numpy/random/randomgen/tests/data/xoshiro256starstar-testset-2.csv +++ b/numpy/random/tests/data/xoshiro256starstar-testset-2.csv diff --git a/numpy/random/randomgen/tests/data/xoshiro512starstar-testset-1.csv b/numpy/random/tests/data/xoshiro512starstar-testset-1.csv index 78fb903ee..78fb903ee 100644 --- a/numpy/random/randomgen/tests/data/xoshiro512starstar-testset-1.csv +++ b/numpy/random/tests/data/xoshiro512starstar-testset-1.csv diff --git a/numpy/random/randomgen/tests/data/xoshiro512starstar-testset-2.csv b/numpy/random/tests/data/xoshiro512starstar-testset-2.csv index 264308f1a..264308f1a 100644 --- a/numpy/random/randomgen/tests/data/xoshiro512starstar-testset-2.csv +++ b/numpy/random/tests/data/xoshiro512starstar-testset-2.csv diff --git a/numpy/random/randomgen/tests/test_against_numpy.py b/numpy/random/tests/test_against_numpy.py index 431c7bd85..b930fcbff 100644 --- a/numpy/random/randomgen/tests/test_against_numpy.py +++ b/numpy/random/tests/test_against_numpy.py @@ -5,7 +5,7 @@ from numpy.testing import (assert_allclose, assert_array_equal, assert_equal, import pytest -from numpy.random.randomgen import RandomGenerator, MT19937, generator +from numpy.random import RandomGenerator, MT19937, generator from numpy.random import RandomState @@ -98,12 +98,12 @@ class TestAgainstNumPy(object): cls.rg = RandomGenerator(cls.brng(*cls.seed)) cls.rs = RandomState(cls.brng(*cls.seed)) cls.nprs = cls.np.RandomState(*cls.seed) - cls.initial_state = cls.rg.state + cls.initial_state = cls.rg.brng.state cls._set_common_state() @classmethod def _set_common_state(cls): - state = cls.rg.state + state = cls.rg.brng.state st = [[]] * 5 st[0] = 'MT19937' st[1] = state['state']['key'] @@ -125,7 +125,7 @@ class TestAgainstNumPy(object): def _is_state_common(self): state = self.nprs.get_state() - state2 = self.rg.state + state2 = self.rg.brng.state assert (state[1] == state2['state']['key']).all() assert (state[2] == state2['state']['pos']) @@ -138,10 +138,10 @@ class TestAgainstNumPy(object): assert_allclose(state[4], state2['gauss'], atol=1e-10) def test_common_seed(self): - self.rg.seed(1234) + self.rg.brng.seed(1234) self.nprs.seed(1234) self._is_state_common() - self.rg.seed(23456) + self.rg.brng.seed(23456) self.nprs.seed(23456) self._is_state_common() @@ -149,8 +149,8 @@ class TestAgainstNumPy(object): nprs = np.random.RandomState() nprs.standard_normal(99) state = nprs.get_state() - self.rg.state = state - state2 = self.rg.state + self.rg.brng.state = state + state2 = self.rg.brng.state assert (state[1] == state2['state']['key']).all() assert (state[2] == state2['state']['pos']) @@ -383,7 +383,7 @@ class TestAgainstNumPy(object): assert_equal(s1.randint(1000), 419) assert_equal(s1.randint(1000), s.randint(1000)) - self.rg.seed(4294967295) + self.rg.brng.seed(4294967295) self.nprs.seed(4294967295) self._is_state_common() @@ -400,26 +400,6 @@ class TestAgainstNumPy(object): s = RandomGenerator(MT19937([4294967295])) assert_equal(s.randint(1000), 265) - def test_dir(self): - nprs_d = set(dir(self.nprs)) - rs_d = dir(self.rg) - excluded = {'get_state', 'set_state'} - nprs_d.difference_update(excluded) - assert (len(nprs_d.difference(rs_d)) == 0) - - npmod = dir(numpy.random) - mod = dir(generator) - known_exlcuded = ['__all__', '__cached__', '__path__', 'Tester', - 'info', 'bench', '__RandomState_ctor', 'mtrand', - 'test', '__warningregistry__', '_numpy_tester', - 'division', 'get_state', 'set_state', 'seed', - 'ranf', 'random', 'sample', 'absolute_import', - 'print_function', 'RandomState', 'randomgen', - 'tests', 'Lock'] - mod += known_exlcuded - diff = set(npmod).difference(mod) - assert_equal(len(diff), 0) - # Tests using legacy generator def test_chisquare(self): self._set_common_state_legacy() diff --git a/numpy/random/randomgen/tests/test_direct.py b/numpy/random/tests/test_direct.py index 22fdcd865..d6042100a 100644 --- a/numpy/random/randomgen/tests/test_direct.py +++ b/numpy/random/tests/test_direct.py @@ -7,10 +7,10 @@ from numpy.testing import assert_equal, assert_allclose, assert_array_equal, \ assert_raises import pytest -from ...randomgen import RandomGenerator, MT19937, DSFMT, ThreeFry32, ThreeFry, \ +from numpy.random import RandomGenerator, MT19937, DSFMT, ThreeFry32, ThreeFry, \ PCG32, PCG64, Philox, Xoroshiro128, Xorshift1024, Xoshiro256StarStar, \ Xoshiro512StarStar, RandomState -from ...randomgen.common import interface +from numpy.random.common import interface try: import cffi # noqa: F401 @@ -206,30 +206,30 @@ class Base(object): def test_seed_float(self): # GH #82 rs = RandomGenerator(self.brng(*self.data1['seed'])) - assert_raises(self.seed_error_type, rs.seed, np.pi) - assert_raises(self.seed_error_type, rs.seed, -np.pi) + assert_raises(self.seed_error_type, rs.brng.seed, np.pi) + assert_raises(self.seed_error_type, rs.brng.seed, -np.pi) def test_seed_float_array(self): # GH #82 rs = RandomGenerator(self.brng(*self.data1['seed'])) - assert_raises(self.seed_error_type, rs.seed, np.array([np.pi])) - assert_raises(self.seed_error_type, rs.seed, np.array([-np.pi])) - assert_raises(ValueError, rs.seed, np.array([np.pi, -np.pi])) - assert_raises(TypeError, rs.seed, np.array([0, np.pi])) - assert_raises(TypeError, rs.seed, [np.pi]) - assert_raises(TypeError, rs.seed, [0, np.pi]) + assert_raises(self.seed_error_type, rs.brng.seed, np.array([np.pi])) + assert_raises(self.seed_error_type, rs.brng.seed, np.array([-np.pi])) + assert_raises(ValueError, rs.brng.seed, np.array([np.pi, -np.pi])) + assert_raises(TypeError, rs.brng.seed, np.array([0, np.pi])) + assert_raises(TypeError, rs.brng.seed, [np.pi]) + assert_raises(TypeError, rs.brng.seed, [0, np.pi]) def test_seed_out_of_range(self): # GH #82 rs = RandomGenerator(self.brng(*self.data1['seed'])) - assert_raises(ValueError, rs.seed, 2 ** (2 * self.bits + 1)) - assert_raises(ValueError, rs.seed, -1) + assert_raises(ValueError, rs.brng.seed, 2 ** (2 * self.bits + 1)) + assert_raises(ValueError, rs.brng.seed, -1) def test_seed_out_of_range_array(self): # GH #82 rs = RandomGenerator(self.brng(*self.data1['seed'])) - assert_raises(ValueError, rs.seed, [2 ** (2 * self.bits + 1)]) - assert_raises(ValueError, rs.seed, [-1]) + assert_raises(ValueError, rs.brng.seed, [2 ** (2 * self.bits + 1)]) + assert_raises(ValueError, rs.brng.seed, [-1]) def test_repr(self): rs = RandomGenerator(self.brng(*self.data1['seed'])) @@ -412,18 +412,18 @@ class TestPCG64(Base): def test_seed_float_array(self): rs = RandomGenerator(self.brng(*self.data1['seed'])) - assert_raises(self.seed_error_type, rs.seed, np.array([np.pi])) - assert_raises(self.seed_error_type, rs.seed, np.array([-np.pi])) - assert_raises(self.seed_error_type, rs.seed, np.array([np.pi, -np.pi])) - assert_raises(self.seed_error_type, rs.seed, np.array([0, np.pi])) - assert_raises(self.seed_error_type, rs.seed, [np.pi]) - assert_raises(self.seed_error_type, rs.seed, [0, np.pi]) + assert_raises(self.seed_error_type, rs.brng.seed, np.array([np.pi])) + assert_raises(self.seed_error_type, rs.brng.seed, np.array([-np.pi])) + assert_raises(self.seed_error_type, rs.brng.seed, np.array([np.pi, -np.pi])) + assert_raises(self.seed_error_type, rs.brng.seed, np.array([0, np.pi])) + assert_raises(self.seed_error_type, rs.brng.seed, [np.pi]) + assert_raises(self.seed_error_type, rs.brng.seed, [0, np.pi]) def test_seed_out_of_range_array(self): rs = RandomGenerator(self.brng(*self.data1['seed'])) - assert_raises(self.seed_error_type, rs.seed, + assert_raises(self.seed_error_type, rs.brng.seed, [2 ** (2 * self.bits + 1)]) - assert_raises(self.seed_error_type, rs.seed, [-1]) + assert_raises(self.seed_error_type, rs.brng.seed, [-1]) class TestPhilox(Base): @@ -464,43 +464,45 @@ class TestMT19937(Base): def test_seed_out_of_range(self): # GH #82 rs = RandomGenerator(self.brng(*self.data1['seed'])) - assert_raises(ValueError, rs.seed, 2 ** (self.bits + 1)) - assert_raises(ValueError, rs.seed, -1) - assert_raises(ValueError, rs.seed, 2 ** (2 * self.bits + 1)) + assert_raises(ValueError, rs.brng.seed, 2 ** (self.bits + 1)) + assert_raises(ValueError, rs.brng.seed, -1) + assert_raises(ValueError, rs.brng.seed, 2 ** (2 * self.bits + 1)) def test_seed_out_of_range_array(self): # GH #82 rs = RandomGenerator(self.brng(*self.data1['seed'])) - assert_raises(ValueError, rs.seed, [2 ** (self.bits + 1)]) - assert_raises(ValueError, rs.seed, [-1]) - assert_raises(TypeError, rs.seed, [2 ** (2 * self.bits + 1)]) + assert_raises(ValueError, rs.brng.seed, [2 ** (self.bits + 1)]) + assert_raises(ValueError, rs.brng.seed, [-1]) + assert_raises(TypeError, rs.brng.seed, [2 ** (2 * self.bits + 1)]) def test_seed_float(self): # GH #82 rs = RandomGenerator(self.brng(*self.data1['seed'])) - assert_raises(TypeError, rs.seed, np.pi) - assert_raises(TypeError, rs.seed, -np.pi) + assert_raises(TypeError, rs.brng.seed, np.pi) + assert_raises(TypeError, rs.brng.seed, -np.pi) def test_seed_float_array(self): # GH #82 rs = RandomGenerator(self.brng(*self.data1['seed'])) - assert_raises(TypeError, rs.seed, np.array([np.pi])) - assert_raises(TypeError, rs.seed, np.array([-np.pi])) - assert_raises(TypeError, rs.seed, np.array([np.pi, -np.pi])) - assert_raises(TypeError, rs.seed, np.array([0, np.pi])) - assert_raises(TypeError, rs.seed, [np.pi]) - assert_raises(TypeError, rs.seed, [0, np.pi]) + brng = rs.brng + assert_raises(TypeError, brng.seed, np.array([np.pi])) + assert_raises(TypeError, brng.seed, np.array([-np.pi])) + assert_raises(TypeError, brng.seed, np.array([np.pi, -np.pi])) + assert_raises(TypeError, brng.seed, np.array([0, np.pi])) + assert_raises(TypeError, brng.seed, [np.pi]) + assert_raises(TypeError, brng.seed, [0, np.pi]) def test_state_tuple(self): rs = RandomGenerator(self.brng(*self.data1['seed'])) - state = rs.state + brng = rs.brng + state = brng.state desired = rs.randint(2 ** 16) tup = (state['brng'], state['state']['key'], state['state']['pos']) - rs.state = tup + brng.state = tup actual = rs.randint(2 ** 16) assert_equal(actual, desired) tup = tup + (0, 0.0) - rs.state = tup + brng.state = tup actual = rs.randint(2 ** 16) assert_equal(actual, desired) @@ -542,25 +544,25 @@ class TestDSFMT(Base): def test_seed_out_of_range_array(self): # GH #82 rs = RandomGenerator(self.brng(*self.data1['seed'])) - assert_raises(ValueError, rs.seed, [2 ** (self.bits + 1)]) - assert_raises(ValueError, rs.seed, [-1]) - assert_raises(TypeError, rs.seed, [2 ** (2 * self.bits + 1)]) + assert_raises(ValueError, rs.brng.seed, [2 ** (self.bits + 1)]) + assert_raises(ValueError, rs.brng.seed, [-1]) + assert_raises(TypeError, rs.brng.seed, [2 ** (2 * self.bits + 1)]) def test_seed_float(self): # GH #82 rs = RandomGenerator(self.brng(*self.data1['seed'])) - assert_raises(TypeError, rs.seed, np.pi) - assert_raises(TypeError, rs.seed, -np.pi) + assert_raises(TypeError, rs.brng.seed, np.pi) + assert_raises(TypeError, rs.brng.seed, -np.pi) def test_seed_float_array(self): # GH #82 rs = RandomGenerator(self.brng(*self.data1['seed'])) - assert_raises(TypeError, rs.seed, np.array([np.pi])) - assert_raises(TypeError, rs.seed, np.array([-np.pi])) - assert_raises(TypeError, rs.seed, np.array([np.pi, -np.pi])) - assert_raises(TypeError, rs.seed, np.array([0, np.pi])) - assert_raises(TypeError, rs.seed, [np.pi]) - assert_raises(TypeError, rs.seed, [0, np.pi]) + assert_raises(TypeError, rs.brng.seed, np.array([np.pi])) + assert_raises(TypeError, rs.brng.seed, np.array([-np.pi])) + assert_raises(TypeError, rs.brng.seed, np.array([np.pi, -np.pi])) + assert_raises(TypeError, rs.brng.seed, np.array([0, np.pi])) + assert_raises(TypeError, rs.brng.seed, [np.pi]) + assert_raises(TypeError, rs.brng.seed, [0, np.pi]) def test_uniform_float(self): rs = RandomGenerator(self.brng(*self.data1['seed'])) @@ -578,9 +580,9 @@ class TestDSFMT(Base): def test_buffer_reset(self): rs = RandomGenerator(self.brng(*self.data1['seed'])) rs.random_sample(1) - assert rs.state['buffer_loc'] != 382 - rs.seed(*self.data1['seed']) - assert rs.state['buffer_loc'] == 382 + assert rs.brng.state['buffer_loc'] != 382 + rs.brng.seed(*self.data1['seed']) + assert rs.brng.state['buffer_loc'] == 382 class TestThreeFry32(Base): diff --git a/numpy/random/randomgen/tests/test_generator_mt19937.py b/numpy/random/tests/test_generator_mt19937.py index 10dd8733a..3eda84d84 100644 --- a/numpy/random/randomgen/tests/test_generator_mt19937.py +++ b/numpy/random/tests/test_generator_mt19937.py @@ -7,7 +7,7 @@ from numpy.testing import ( assert_warns, assert_no_warnings, assert_array_equal, assert_array_almost_equal, suppress_warnings) -from ...randomgen import RandomGenerator, MT19937 +from numpy.random import RandomGenerator, MT19937 random = RandomGenerator(MT19937()) @@ -96,21 +96,22 @@ class TestSetState(object): def setup(self): self.seed = 1234567890 self.rg = RandomGenerator(MT19937(self.seed)) - self.state = self.rg.state + self.brng = self.rg.brng + self.state = self.brng.state self.legacy_state = (self.state['brng'], self.state['state']['key'], self.state['state']['pos']) def test_basic(self): old = self.rg.tomaxint(16) - self.rg.state = self.state + self.brng.state = self.state new = self.rg.tomaxint(16) assert_(np.all(old == new)) def test_gaussian_reset(self): # Make sure the cached every-other-Gaussian is reset. old = self.rg.standard_normal(size=3) - self.rg.state = self.state + self.brng.state = self.state new = self.rg.standard_normal(size=3) assert_(np.all(old == new)) @@ -119,9 +120,9 @@ class TestSetState(object): # cached Gaussian is restored. self.rg.standard_normal() - state = self.rg.state + state = self.brng.state old = self.rg.standard_normal(size=3) - self.rg.state = state + self.brng.state = state new = self.rg.standard_normal(size=3) assert_(np.all(old == new)) @@ -244,7 +245,7 @@ class TestRandint(object): def test_in_bounds_fuzz(self): # Don't use fixed seed - random.seed() + random.brng.seed() for dt in self.itype[1:]: for ubnd in [4, 8, 16]: @@ -263,13 +264,13 @@ class TestRandint(object): ubnd = 2 if dt is bool else np.iinfo(dt).max + 1 size = 1000 - random.seed(1234) + random.brng.seed(1234) scalar = self.rfunc(lbnd, ubnd, size=size, dtype=dt) - random.seed(1234) + random.brng.seed(1234) scalar_array = self.rfunc([lbnd], [ubnd], size=size, dtype=dt) - random.seed(1234) + random.brng.seed(1234) array = self.rfunc([lbnd] * size, [ubnd] * size, size=size, dtype=dt) assert_array_equal(scalar, scalar_array) @@ -291,7 +292,7 @@ class TestRandint(object): 'uint8': '27dd30c4e08a797063dffac2490b0be6'} for dt in self.itype[1:]: - random.seed(1234) + random.brng.seed(1234) # view as little endian for hash if sys.byteorder == 'little': @@ -303,7 +304,7 @@ class TestRandint(object): assert_(tgt[np.dtype(dt).name] == res) # bools do not depend on endianness - random.seed(1234) + random.brng.seed(1234) val = self.rfunc(0, 2, size=1000, dtype=bool).view(np.int8) res = hashlib.md5(val).hexdigest() assert_(tgt[np.dtype(bool).name] == res) @@ -316,15 +317,15 @@ class TestRandint(object): np.bool, bool, np.bool_) else np.iinfo(dt).max + 1 # view as little endian for hash - random.seed(1234) + random.brng.seed(1234) val = self.rfunc(lbnd, ubnd, size=1000, dtype=dt) - random.seed(1234) + random.brng.seed(1234) val_bc = self.rfunc([lbnd] * 1000, ubnd, dtype=dt) assert_array_equal(val, val_bc) - random.seed(1234) + random.brng.seed(1234) val_bc = self.rfunc([lbnd] * 1000, [ubnd] * 1000, dtype=dt) assert_array_equal(val, val_bc) @@ -400,7 +401,7 @@ class TestRandomDist(object): self.seed = 1234567890 def test_rand(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.rand(3, 2) desired = np.array([[0.61879477158567997, 0.59162362775974664], [0.88868358904449662, 0.89165480011560816], @@ -408,25 +409,25 @@ class TestRandomDist(object): assert_array_almost_equal(actual, desired, decimal=15) def test_rand_singleton(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.rand() desired = 0.61879477158567997 assert_array_almost_equal(actual, desired, decimal=15) def test_randn(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.randn(3, 2) desired = np.array([[-3.472754000610961, -0.108938564229143], [-0.245965753396411, -0.704101550261701], [0.360102487116356, 0.127832101772367]]) assert_array_almost_equal(actual, desired, decimal=15) - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.randn() assert_array_almost_equal(actual, desired[0, 0], decimal=15) def test_randint(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.randint(-99, 99, size=(3, 2)) desired = np.array([[31, 3], [-52, 41], @@ -436,7 +437,7 @@ class TestRandomDist(object): def test_randint_masked(self): # Test masked rejection sampling algorithm to generate array of # uint32 in an interval. - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.randint(0, 99, size=(3, 2), dtype=np.uint32, use_masked=True) desired = np.array([[2, 47], @@ -446,7 +447,7 @@ class TestRandomDist(object): def test_randint_lemire_32(self): # Test lemire algorithm to generate array of uint32 in an interval. - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.randint(0, 99, size=(3, 2), dtype=np.uint32, use_masked=False) desired = np.array([[61, 33], @@ -456,7 +457,7 @@ class TestRandomDist(object): def test_randint_lemire_64(self): # Test lemire algorithm to generate array of uint64 in an interval. - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.randint(0, 99 + 0xFFFFFFFFF, size=(3, 2), dtype=np.uint64, use_masked=False) desired = np.array([[42523252834, 40656066204], @@ -465,7 +466,7 @@ class TestRandomDist(object): assert_array_equal(actual, desired) def test_random_integers(self): - random.seed(self.seed) + random.brng.seed(self.seed) with suppress_warnings() as sup: w = sup.record(DeprecationWarning) actual = random.random_integers(-99, 99, size=(3, 2)) @@ -505,19 +506,19 @@ class TestRandomDist(object): np.iinfo('l').max, np.iinfo('l').max) def test_random_sample(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.random_sample((3, 2)) desired = np.array([[0.61879477158567997, 0.59162362775974664], [0.88868358904449662, 0.89165480011560816], [0.4575674820298663, 0.7781880808593471]]) assert_array_almost_equal(actual, desired, decimal=15) - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.random_sample() assert_array_almost_equal(actual, desired[0, 0], decimal=15) def test_random_sample_float(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.random_sample((3, 2)) desired = np.array([[0.6187948, 0.5916236], [0.8886836, 0.8916548], @@ -525,7 +526,7 @@ class TestRandomDist(object): assert_array_almost_equal(actual, desired, decimal=7) def test_random_sample_float_scalar(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.random_sample(dtype=np.float32) desired = 0.6187948 assert_array_almost_equal(actual, desired, decimal=7) @@ -534,31 +535,31 @@ class TestRandomDist(object): assert_raises(TypeError, random.random_sample, dtype='int32') def test_choice_uniform_replace(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.choice(4, 4) desired = np.array([2, 3, 2, 3]) assert_array_equal(actual, desired) def test_choice_nonuniform_replace(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.choice(4, 4, p=[0.4, 0.4, 0.1, 0.1]) desired = np.array([1, 1, 2, 2]) assert_array_equal(actual, desired) def test_choice_uniform_noreplace(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.choice(4, 3, replace=False) desired = np.array([0, 1, 3]) assert_array_equal(actual, desired) def test_choice_nonuniform_noreplace(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.choice(4, 3, replace=False, p=[0.1, 0.3, 0.5, 0.1]) desired = np.array([2, 3, 1]) assert_array_equal(actual, desired) def test_choice_noninteger(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.choice(['a', 'b', 'c', 'd'], 4) desired = np.array(['c', 'd', 'c', 'd']) assert_array_equal(actual, desired) @@ -634,7 +635,7 @@ class TestRandomDist(object): assert_raises(ValueError, random.choice, a, p=p) def test_bytes(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.bytes(10) desired = b'\x82Ui\x9e\xff\x97+Wf\xa5' assert_equal(actual, desired) @@ -659,7 +660,7 @@ class TestRandomDist(object): lambda x: np.asarray([(i, i) for i in x], [("a", object, 1), ("b", np.int32, 1)])]: - random.seed(self.seed) + random.brng.seed(self.seed) alist = conv([1, 2, 3, 4, 5, 6, 7, 8, 9, 0]) random.shuffle(alist) actual = alist @@ -681,19 +682,19 @@ class TestRandomDist(object): sorted(b.data[~b.mask]), sorted(b_orig.data[~b_orig.mask])) def test_permutation(self): - random.seed(self.seed) + random.brng.seed(self.seed) alist = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] actual = random.permutation(alist) desired = [0, 1, 9, 6, 2, 4, 5, 8, 7, 3] assert_array_equal(actual, desired) - random.seed(self.seed) + random.brng.seed(self.seed) arr_2d = np.atleast_2d([1, 2, 3, 4, 5, 6, 7, 8, 9, 0]).T actual = random.permutation(arr_2d) assert_array_equal(actual, np.atleast_2d(desired).T) def test_beta(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.beta(.1, .9, size=(3, 2)) desired = np.array( [[1.45341850513746058e-02, 5.31297615662868145e-04], @@ -702,20 +703,20 @@ class TestRandomDist(object): assert_array_almost_equal(actual, desired, decimal=15) def test_binomial(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.binomial(100.123, .456, size=(3, 2)) desired = np.array([[37, 43], [42, 48], [46, 45]]) assert_array_equal(actual, desired) - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.binomial(100.123, .456) desired = 37 assert_array_equal(actual, desired) def test_chisquare(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.chisquare(50, size=(3, 2)) desired = np.array([[22.2534560369812, 46.9302393710074], [52.9974164611614, 85.3559029505718], @@ -723,7 +724,7 @@ class TestRandomDist(object): assert_array_almost_equal(actual, desired, decimal=13) def test_dirichlet(self): - random.seed(self.seed) + random.brng.seed(self.seed) alpha = np.array([51.72840233779265162, 39.74494232180943953]) actual = random.dirichlet(alpha, size=(3, 2)) desired = np.array([[[0.444382290764855, 0.555617709235145], @@ -736,7 +737,7 @@ class TestRandomDist(object): bad_alpha = np.array([5.4e-01, -1.0e-16]) assert_raises(ValueError, random.dirichlet, bad_alpha) - random.seed(self.seed) + random.brng.seed(self.seed) alpha = np.array([51.72840233779265162, 39.74494232180943953]) actual = random.dirichlet(alpha) assert_array_almost_equal(actual, desired[0, 0], decimal=15) @@ -759,7 +760,7 @@ class TestRandomDist(object): assert_raises(ValueError, random.dirichlet, alpha) def test_exponential(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.exponential(1.1234, size=(3, 2)) desired = np.array([[5.350682337747634, 1.152307441755771], [3.867015473358779, 1.538765912839396], @@ -771,7 +772,7 @@ class TestRandomDist(object): assert_raises(ValueError, random.exponential, scale=-0.) def test_f(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.f(12, 77, size=(3, 2)) desired = np.array([[0.809498839488467, 2.867222762455471], [0.588036831639353, 1.012185639664636], @@ -779,7 +780,7 @@ class TestRandomDist(object): assert_array_almost_equal(actual, desired, decimal=15) def test_gamma(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.gamma(5, 3, size=(3, 2)) desired = np.array([[12.46569350177219, 16.46580642087044], [43.65744473309084, 11.98722785682592], @@ -791,7 +792,7 @@ class TestRandomDist(object): assert_raises(ValueError, random.gamma, shape=-0., scale=-0.) def test_geometric(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.geometric(.123456789, size=(3, 2)) desired = np.array([[8, 7], [17, 17], @@ -809,7 +810,7 @@ class TestRandomDist(object): assert_raises(ValueError, random.geometric, [np.nan] * 10) def test_gumbel(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.gumbel(loc=.123456789, scale=2.0, size=(3, 2)) desired = np.array([[0.19591898743416816, 0.34405539668096674], [-1.4492522252274278, -1.47374816298446865], @@ -821,7 +822,7 @@ class TestRandomDist(object): assert_raises(ValueError, random.gumbel, scale=-0.) def test_hypergeometric(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.hypergeometric(10.1, 5.5, 14, size=(3, 2)) desired = np.array([[10, 10], [10, 10], @@ -847,7 +848,7 @@ class TestRandomDist(object): assert_array_equal(actual, desired) def test_laplace(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.laplace(loc=.123456789, scale=2.0, size=(3, 2)) desired = np.array([[0.66599721112760157, 0.52829452552221945], [3.12791959514407125, 3.18202813572992005], @@ -859,7 +860,7 @@ class TestRandomDist(object): assert_raises(ValueError, random.laplace, scale=-0.) def test_logistic(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.logistic(loc=.123456789, scale=2.0, size=(3, 2)) desired = np.array([[1.09232835305011444, 0.8648196662399954], [4.27818590694950185, 4.33897006346929714], @@ -867,7 +868,7 @@ class TestRandomDist(object): assert_array_almost_equal(actual, desired, decimal=15) def test_lognormal(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.lognormal(mean=.123456789, sigma=2.0, size=(3, 2)) desired = np.array([[1.0894838661036e-03, 9.0990021488311e-01], [6.9178869932225e-01, 2.7672077560016e-01], @@ -879,7 +880,7 @@ class TestRandomDist(object): assert_raises(ValueError, random.lognormal, sigma=-0.) def test_logseries(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.logseries(p=.923456789, size=(3, 2)) desired = np.array([[2, 2], [6, 17], @@ -893,7 +894,7 @@ class TestRandomDist(object): assert_raises(ValueError, random.logseries, [np.nan] * 10) def test_multinomial(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.multinomial(20, [1 / 6.] * 6, size=(3, 2)) desired = np.array([[[4, 3, 5, 4, 2, 2], [5, 2, 8, 2, 2, 1]], @@ -904,7 +905,7 @@ class TestRandomDist(object): assert_array_equal(actual, desired) def test_multivariate_normal(self): - random.seed(self.seed) + random.brng.seed(self.seed) mean = (.123456789, 10) cov = [[1, 0], [0, 1]] size = (3, 2) @@ -955,7 +956,7 @@ class TestRandomDist(object): mu, np.eye(3)) def test_negative_binomial(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.negative_binomial(n=100, p=.12345, size=(3, 2)) desired = np.array([[521, 736], [665, 690], @@ -970,7 +971,7 @@ class TestRandomDist(object): [np.nan] * 10) def test_noncentral_chisquare(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.noncentral_chisquare(df=5, nonc=5, size=(3, 2)) desired = np.array([[9.47783251920357, 10.02066178260461], [3.15869984192364, 10.5581565031544], @@ -983,7 +984,7 @@ class TestRandomDist(object): [1.41985055641800, 0.15451287602753]]) assert_array_almost_equal(actual, desired, decimal=14) - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.noncentral_chisquare(df=5, nonc=0, size=(3, 2)) desired = np.array([[3.64881368071039, 5.48224544747803], [20.41999842025404, 3.44075915187367], @@ -991,7 +992,7 @@ class TestRandomDist(object): assert_array_almost_equal(actual, desired, decimal=14) def test_noncentral_f(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.noncentral_f(dfnum=5, dfden=2, nonc=1, size=(3, 2)) desired = np.array([[1.22680230963236, 2.56457837623956], @@ -1000,12 +1001,12 @@ class TestRandomDist(object): assert_array_almost_equal(actual, desired, decimal=14) def test_noncentral_f_nan(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.noncentral_f(dfnum=5, dfden=2, nonc=np.nan) assert np.isnan(actual) def test_normal(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.normal(loc=.123456789, scale=2.0, size=(3, 2)) desired = np.array([[-6.822051212221923, -0.094420339458285], [-0.368474717792823, -1.284746311523402], @@ -1017,7 +1018,7 @@ class TestRandomDist(object): assert_raises(ValueError, random.normal, scale=-0.) def test_pareto(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.pareto(a=.123456789, size=(3, 2)) desired = np.array([[5.6883528121891552e+16, 4.0569373841667057e+03], [1.2854967019379475e+12, 6.5833156486851483e+04], @@ -1031,7 +1032,7 @@ class TestRandomDist(object): np.testing.assert_array_almost_equal_nulp(actual, desired, nulp=30) def test_poisson(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.poisson(lam=.123456789, size=(3, 2)) desired = np.array([[0, 0], [1, 0], @@ -1051,7 +1052,7 @@ class TestRandomDist(object): assert_raises(ValueError, random.poisson, [np.nan] * 10) def test_power(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.power(a=.123456789, size=(3, 2)) desired = np.array([[9.328833342693975e-01, 2.742250409261003e-02], [7.684513237993961e-01, 9.297548209160028e-02], @@ -1059,7 +1060,7 @@ class TestRandomDist(object): assert_array_almost_equal(actual, desired, decimal=15) def test_rayleigh(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.rayleigh(scale=10, size=(3, 2)) desired = np.array([[13.8882496494248393, 13.383318339044731], [20.95413364294492098, 21.08285015800712614], @@ -1071,7 +1072,7 @@ class TestRandomDist(object): assert_raises(ValueError, random.rayleigh, scale=-0.) def test_standard_cauchy(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.standard_cauchy(size=(3, 2)) desired = np.array([[31.87809592667601, 0.349332782046838], [2.816995747731641, 10.552372563459114], @@ -1079,7 +1080,7 @@ class TestRandomDist(object): assert_array_almost_equal(actual, desired, decimal=15) def test_standard_exponential(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.standard_exponential(size=(3, 2), method='inv') desired = np.array([[0.96441739162374596, 0.89556604882105506], [2.1953785836319808, 2.22243285392490542], @@ -1090,7 +1091,7 @@ class TestRandomDist(object): assert_raises(TypeError, random.standard_exponential, dtype=np.int32) def test_standard_gamma(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.standard_gamma(shape=3, size=(3, 2)) desired = np.array([[2.28483515569645, 3.29899524967824], [11.12492298902645, 2.16784417297277], @@ -1098,13 +1099,13 @@ class TestRandomDist(object): assert_array_almost_equal(actual, desired, decimal=14) def test_standard_gammma_scalar_float(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.standard_gamma(3, dtype=np.float32) desired = 1.3877466 assert_array_almost_equal(actual, desired, decimal=6) def test_standard_gamma_float(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.standard_gamma(shape=3, size=(3, 2)) desired = np.array([[2.2848352, 3.2989952], [11.124923, 2.1678442], @@ -1113,14 +1114,14 @@ class TestRandomDist(object): def test_standard_gammma_float_out(self): actual = np.zeros((3, 2), dtype=np.float32) - random.seed(self.seed) + random.brng.seed(self.seed) random.standard_gamma(10.0, out=actual, dtype=np.float32) desired = np.array([[6.9824033, 7.3731737], [14.860578, 7.5327270], [11.767487, 6.2320185]], dtype=np.float32) assert_array_almost_equal(actual, desired, decimal=5) - random.seed(self.seed) + random.brng.seed(self.seed) random.standard_gamma(10.0, out=actual, size=(3, 2), dtype=np.float32) assert_array_almost_equal(actual, desired, decimal=5) @@ -1140,7 +1141,7 @@ class TestRandomDist(object): assert_raises(ValueError, random.standard_gamma, shape=-0.) def test_standard_normal(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.standard_normal(size=(3, 2)) desired = np.array([[-3.472754000610961, -0.108938564229143], [-0.245965753396411, -0.704101550261701], @@ -1151,7 +1152,7 @@ class TestRandomDist(object): assert_raises(TypeError, random.standard_normal, dtype=np.int32) def test_standard_t(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.standard_t(df=10, size=(3, 2)) desired = np.array([[-3.68722108185508, -0.672031186266171], [2.900224996448669, -0.199656996187739], @@ -1159,7 +1160,7 @@ class TestRandomDist(object): assert_array_almost_equal(actual, desired, decimal=15) def test_triangular(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.triangular(left=5.12, mode=10.23, right=20.34, size=(3, 2)) desired = np.array([[12.68117178949215784, 12.4129206149193152], @@ -1168,7 +1169,7 @@ class TestRandomDist(object): assert_array_almost_equal(actual, desired, decimal=14) def test_uniform(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.uniform(low=1.23, high=10.54, size=(3, 2)) desired = np.array([[6.99097932346268003, 6.73801597444323974], [9.50364421400426274, 9.53130618907631089], @@ -1214,7 +1215,7 @@ class TestRandomDist(object): assert_raises(TypeError, random.hypergeometric, throwing_int, 1, 1) def test_vonmises(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.vonmises(mu=1.23, kappa=1.54, size=(3, 2)) desired = np.array([[2.28567572673902042, 2.89163838442285037], [0.38198375564286025, 2.57638023113890746], @@ -1223,17 +1224,17 @@ class TestRandomDist(object): def test_vonmises_small(self): # check infinite loop, gh-4720 - random.seed(self.seed) + random.brng.seed(self.seed) r = random.vonmises(mu=0., kappa=1.1e-8, size=10**6) assert_(np.isfinite(r).all()) def test_vonmises_nan(self): - random.seed(self.seed) + random.brng.seed(self.seed) r = random.vonmises(mu=0., kappa=np.nan) assert_(np.isnan(r)) def test_wald(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.wald(mean=1.23, scale=1.54, size=(3, 2)) desired = np.array([[0.10653278160339, 0.98771068102461], [0.89276055317879, 0.13640126419923], @@ -1241,7 +1242,7 @@ class TestRandomDist(object): assert_array_almost_equal(actual, desired, decimal=14) def test_weibull(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.weibull(a=1.23, size=(3, 2)) desired = np.array([[3.557276979846361, 1.020870580998542], [2.731847777612348, 1.29148068905082], @@ -1249,12 +1250,12 @@ class TestRandomDist(object): assert_array_almost_equal(actual, desired, decimal=15) def test_weibull_0(self): - random.seed(self.seed) + random.brng.seed(self.seed) assert_equal(random.weibull(a=0, size=12), np.zeros(12)) assert_raises(ValueError, random.weibull, a=-0.) def test_zipf(self): - random.seed(self.seed) + random.brng.seed(self.seed) actual = random.zipf(a=1.23, size=(3, 2)) desired = np.array([[66, 29], [1, 1], @@ -1269,7 +1270,7 @@ class TestBroadcast(object): self.seed = 123456789 def set_seed(self): - random.seed(self.seed) + random.brng.seed(self.seed) def test_uniform(self): low = [0] diff --git a/numpy/random/randomgen/tests/test_generator_mt19937_regressions.py b/numpy/random/tests/test_generator_mt19937_regressions.py index 75064720f..f9478ccf6 100644 --- a/numpy/random/randomgen/tests/test_generator_mt19937_regressions.py +++ b/numpy/random/tests/test_generator_mt19937_regressions.py @@ -3,7 +3,7 @@ from numpy.testing import (assert_, assert_array_equal) from numpy.compat import long import numpy as np import pytest -from ...randomgen import RandomGenerator, MT19937 +from numpy.random import RandomGenerator, MT19937 mt19937 = RandomGenerator(MT19937()) @@ -36,7 +36,7 @@ class TestRegression(object): def test_logseries_convergence(self): # Test for ticket #923 N = 1000 - mt19937.seed(0) + mt19937.brng.seed(0) rvsn = mt19937.logseries(0.8, size=N) # these two frequency counts should be close to theoretical # numbers with this large sample @@ -50,9 +50,9 @@ class TestRegression(object): assert_(freq < 0.23, msg) def test_permutation_longs(self): - mt19937.seed(1234) + mt19937.brng.seed(1234) a = mt19937.permutation(12) - mt19937.seed(1234) + mt19937.brng.seed(1234) b = mt19937.permutation(long(12)) assert_array_equal(a, b) @@ -62,7 +62,7 @@ class TestRegression(object): [(1, 1), (2, 2), (3, 3), None], [1, (2, 2), (3, 3), None], [(1, 1), 2, 3, None]]: - mt19937.seed(12345) + mt19937.brng.seed(12345) shuffled = list(t) mt19937.shuffle(shuffled) assert_array_equal(shuffled, [t[0], t[3], t[1], t[2]]) @@ -72,8 +72,8 @@ class TestRegression(object): m = RandomGenerator(MT19937()) # mt19937.RandomState() res = np.array([0, 8, 7, 2, 1, 9, 4, 7, 0, 3]) for i in range(3): - mt19937.seed(i) - m.seed(4321) + mt19937.brng.seed(i) + m.brng.seed(4321) # If m.state is not honored, the result will change assert_array_equal(m.choice(10, size=10, p=np.ones(10)/10.), res) @@ -88,7 +88,7 @@ class TestRegression(object): def test_beta_small_parameters(self): # Test that beta with small a and b parameters does not produce # NaNs due to roundoff errors causing 0 / 0, gh-5851 - mt19937.seed(1234567890) + mt19937.brng.seed(1234567890) x = mt19937.beta(0.0001, 0.0001, size=100) assert_(not np.any(np.isnan(x)), 'Nans in mt19937.beta') @@ -96,7 +96,7 @@ class TestRegression(object): # The sum of probs should be 1.0 with some tolerance. # For low precision dtypes the tolerance was too tight. # See numpy github issue 6123. - mt19937.seed(1234) + mt19937.brng.seed(1234) a = [1, 2, 3] counts = [4, 4, 2] for dt in np.float16, np.float32, np.float64: @@ -110,7 +110,7 @@ class TestRegression(object): # Test that permuting an array of different length strings # will not cause a segfault on garbage collection # Tests gh-7710 - mt19937.seed(1234) + mt19937.brng.seed(1234) a = np.array(['a', 'a' * 1000]) @@ -125,7 +125,7 @@ class TestRegression(object): # Test that permuting an array of objects will not cause # a segfault on garbage collection. # See gh-7719 - mt19937.seed(1234) + mt19937.brng.seed(1234) a = np.array([np.arange(1), np.arange(4)]) for _ in range(1000): @@ -139,7 +139,7 @@ class TestRegression(object): class N(np.ndarray): pass - mt19937.seed(1) + mt19937.brng.seed(1) orig = np.arange(3).view(N) perm = mt19937.permutation(orig) assert_array_equal(perm, np.array([0, 2, 1])) @@ -151,7 +151,7 @@ class TestRegression(object): def __array__(self): return self.a - mt19937.seed(1) + mt19937.brng.seed(1) m = M() perm = mt19937.permutation(m) assert_array_equal(perm, np.array([2, 1, 4, 0, 3])) diff --git a/numpy/random/randomgen/tests/test_randomstate.py b/numpy/random/tests/test_randomstate.py index 6adde6c2a..d0ad5e794 100644 --- a/numpy/random/randomgen/tests/test_randomstate.py +++ b/numpy/random/tests/test_randomstate.py @@ -9,7 +9,7 @@ from numpy.testing import ( suppress_warnings ) -from ...randomgen import MT19937, Xoshiro256StarStar, mtrand as random +from numpy.random import MT19937, Xoshiro256StarStar, mtrand as random def assert_mt19937_state_equal(a, b): diff --git a/numpy/random/randomgen/tests/test_randomstate_regression.py b/numpy/random/tests/test_randomstate_regression.py index cf21ee756..9c319319e 100644 --- a/numpy/random/randomgen/tests/test_randomstate_regression.py +++ b/numpy/random/tests/test_randomstate_regression.py @@ -5,7 +5,7 @@ from numpy.testing import ( from numpy.compat import long import numpy as np -from ...randomgen import mtrand as random +from numpy.random import mtrand as random class TestRegression(object): diff --git a/numpy/random/randomgen/tests/test_smoke.py b/numpy/random/tests/test_smoke.py index 816ce6ddc..fa7a0b567 100644 --- a/numpy/random/randomgen/tests/test_smoke.py +++ b/numpy/random/tests/test_smoke.py @@ -8,7 +8,7 @@ import numpy as np import pytest from numpy.testing import (assert_almost_equal, assert_equal, assert_, assert_array_equal, suppress_warnings) -from ...randomgen import (RandomGenerator, MT19937, DSFMT, ThreeFry32, ThreeFry, +from numpy.random import (RandomGenerator, MT19937, DSFMT, ThreeFry32, ThreeFry, PCG32, PCG64, Philox, Xoroshiro128, Xorshift1024, Xoshiro256StarStar, Xoshiro512StarStar, entropy) @@ -106,7 +106,7 @@ class RNG(object): cls.advance = None cls.seed = [12345] cls.rg = RandomGenerator(cls.brng(*cls.seed)) - cls.initial_state = cls.rg.state + cls.initial_state = cls.rg.brng.state cls.seed_vector_bits = 64 cls._extra_setup() @@ -118,39 +118,39 @@ class RNG(object): cls.seed_error = TypeError def _reset_state(self): - self.rg.state = self.initial_state + self.rg.brng.state = self.initial_state def test_init(self): rg = RandomGenerator(self.brng()) - state = rg.state + state = rg.brng.state rg.standard_normal(1) rg.standard_normal(1) - rg.state = state - new_state = rg.state + rg.brng.state = state + new_state = rg.brng.state assert_(comp_state(state, new_state)) def test_advance(self): - state = self.rg.state - if hasattr(self.rg._basicrng, 'advance'): - self.rg._basicrng.advance(self.advance) - assert_(not comp_state(state, self.rg.state)) + state = self.rg.brng.state + if hasattr(self.rg.brng, 'advance'): + self.rg.brng.advance(self.advance) + assert_(not comp_state(state, self.rg.brng.state)) else: - brng_name = self.rg._basicrng.__class__.__name__ + brng_name = self.rg.brng.__class__.__name__ pytest.skip('Advance is not supported by {0}'.format(brng_name)) def test_jump(self): - state = self.rg.state - if hasattr(self.rg._basicrng, 'jump'): - self.rg._basicrng.jump() - jumped_state = self.rg.state + state = self.rg.brng.state + if hasattr(self.rg.brng, 'jump'): + self.rg.brng.jump() + jumped_state = self.rg.brng.state assert_(not comp_state(state, jumped_state)) self.rg.random_sample(2 * 3 * 5 * 7 * 11 * 13 * 17) - self.rg.state = state - self.rg._basicrng.jump() - rejumped_state = self.rg.state + self.rg.brng.state = state + self.rg.brng.jump() + rejumped_state = self.rg.brng.state assert_(comp_state(jumped_state, rejumped_state)) else: - brng_name = self.rg._basicrng.__class__.__name__ + brng_name = self.rg.brng.__class__.__name__ pytest.skip('Jump is not supported by {0}'.format(brng_name)) def test_uniform(self): @@ -221,51 +221,51 @@ class RNG(object): assert_(self.rg.binomial(1000, .5) >= 0) def test_reset_state(self): - state = self.rg.state + state = self.rg.brng.state int_1 = self.rg.randint(2**31) - self.rg.state = state + self.rg.brng.state = state int_2 = self.rg.randint(2**31) assert_(int_1 == int_2) def test_entropy_init(self): rg = RandomGenerator(self.brng()) rg2 = RandomGenerator(self.brng()) - assert_(not comp_state(rg.state, rg2.state)) + assert_(not comp_state(rg.brng.state, rg2.brng.state)) def test_seed(self): rg = RandomGenerator(self.brng(*self.seed)) rg2 = RandomGenerator(self.brng(*self.seed)) rg.random_sample() rg2.random_sample() - assert_(comp_state(rg.state, rg2.state)) + assert_(comp_state(rg.brng.state, rg2.brng.state)) def test_reset_state_gauss(self): rg = RandomGenerator(self.brng(*self.seed)) rg.standard_normal() - state = rg.state + state = rg.brng.state n1 = rg.standard_normal(size=10) rg2 = RandomGenerator(self.brng()) - rg2.state = state + rg2.brng.state = state n2 = rg2.standard_normal(size=10) assert_array_equal(n1, n2) def test_reset_state_uint32(self): rg = RandomGenerator(self.brng(*self.seed)) rg.randint(0, 2 ** 24, 120, dtype=np.uint32) - state = rg.state + state = rg.brng.state n1 = rg.randint(0, 2 ** 24, 10, dtype=np.uint32) rg2 = RandomGenerator(self.brng()) - rg2.state = state + rg2.brng.state = state n2 = rg2.randint(0, 2 ** 24, 10, dtype=np.uint32) assert_array_equal(n1, n2) def test_reset_state_float(self): rg = RandomGenerator(self.brng(*self.seed)) rg.random_sample(dtype='float32') - state = rg.state + state = rg.brng.state n1 = rg.random_sample(size=10, dtype='float32') rg2 = RandomGenerator(self.brng()) - rg2.state = state + rg2.brng.state = state n2 = rg2.random_sample(size=10, dtype='float32') assert_((n1 == n2).all()) @@ -354,29 +354,29 @@ class RNG(object): assert_(len(vals) == 10) def test_rand(self): - state = self.rg.state + state = self.rg.brng.state vals = self.rg.rand(10, 10, 10) - self.rg.state = state + self.rg.brng.state = state assert_((vals == self.rg.random_sample((10, 10, 10))).all()) assert_(vals.shape == (10, 10, 10)) vals = self.rg.rand(10, 10, 10, dtype=np.float32) assert_(vals.shape == (10, 10, 10)) def test_randn(self): - state = self.rg.state + state = self.rg.brng.state vals = self.rg.randn(10, 10, 10) - self.rg.state = state + self.rg.brng.state = state assert_equal(vals, self.rg.standard_normal((10, 10, 10))) assert_equal(vals.shape, (10, 10, 10)) - state = self.rg.state + state = self.rg.brng.state vals = self.rg.randn(10, 10, 10) - self.rg.state = state + self.rg.brng.state = state assert_equal(vals, self.rg.standard_normal((10, 10, 10))) - state = self.rg.state + state = self.rg.brng.state self.rg.randn(10, 10, 10) - self.rg.state = state + self.rg.brng.state = state vals = self.rg.randn(10, 10, 10, dtype=np.float32) assert_(vals.shape == (10, 10, 10)) @@ -487,12 +487,12 @@ class RNG(object): pick = pickle.dumps(self.rg) unpick = pickle.loads(pick) assert_((type(self.rg) == type(unpick))) - assert_(comp_state(self.rg.state, unpick.state)) + assert_(comp_state(self.rg.brng.state, unpick.brng.state)) pick = pickle.dumps(self.rg) unpick = pickle.loads(pick) assert_((type(self.rg) == type(unpick))) - assert_(comp_state(self.rg.state, unpick.state)) + assert_(comp_state(self.rg.brng.state, unpick.brng.state)) def test_seed_array(self): if self.seed_vector_bits is None: @@ -505,32 +505,32 @@ class RNG(object): else: dtype = np.uint64 seed = np.array([1], dtype=dtype) - self.rg.seed(seed) - state1 = self.rg.state - self.rg.seed(1) - state2 = self.rg.state + self.rg.brng.seed(seed) + state1 = self.rg.brng.state + self.rg.brng.seed(1) + state2 = self.rg.brng.state assert_(comp_state(state1, state2)) seed = np.arange(4, dtype=dtype) - self.rg.seed(seed) - state1 = self.rg.state - self.rg.seed(seed[0]) - state2 = self.rg.state + self.rg.brng.seed(seed) + state1 = self.rg.brng.state + self.rg.brng.seed(seed[0]) + state2 = self.rg.brng.state assert_(not comp_state(state1, state2)) seed = np.arange(1500, dtype=dtype) - self.rg.seed(seed) - state1 = self.rg.state - self.rg.seed(seed[0]) - state2 = self.rg.state + self.rg.brng.seed(seed) + state1 = self.rg.brng.state + self.rg.brng.seed(seed[0]) + state2 = self.rg.brng.state assert_(not comp_state(state1, state2)) seed = 2 ** np.mod(np.arange(1500, dtype=dtype), self.seed_vector_bits - 1) + 1 - self.rg.seed(seed) - state1 = self.rg.state - self.rg.seed(seed[0]) - state2 = self.rg.state + self.rg.brng.seed(seed) + state1 = self.rg.brng.state + self.rg.brng.seed(seed[0]) + state2 = self.rg.brng.state assert_(not comp_state(state1, state2)) def test_seed_array_error(self): @@ -541,164 +541,164 @@ class RNG(object): seed = -1 with pytest.raises(ValueError): - self.rg.seed(seed) + self.rg.brng.seed(seed) seed = np.array([-1], dtype=np.int32) with pytest.raises(ValueError): - self.rg.seed(seed) + self.rg.brng.seed(seed) seed = np.array([1, 2, 3, -5], dtype=np.int32) with pytest.raises(ValueError): - self.rg.seed(seed) + self.rg.brng.seed(seed) seed = np.array([1, 2, 3, out_of_bounds]) with pytest.raises(ValueError): - self.rg.seed(seed) + self.rg.brng.seed(seed) def test_uniform_float(self): rg = RandomGenerator(self.brng(12345)) warmup(rg) - state = rg.state + state = rg.brng.state r1 = rg.random_sample(11, dtype=np.float32) rg2 = RandomGenerator(self.brng()) warmup(rg2) - rg2.state = state + rg2.brng.state = state r2 = rg2.random_sample(11, dtype=np.float32) assert_array_equal(r1, r2) assert_equal(r1.dtype, np.float32) - assert_(comp_state(rg.state, rg2.state)) + assert_(comp_state(rg.brng.state, rg2.brng.state)) def test_gamma_floats(self): rg = RandomGenerator(self.brng()) warmup(rg) - state = rg.state + state = rg.brng.state r1 = rg.standard_gamma(4.0, 11, dtype=np.float32) rg2 = RandomGenerator(self.brng()) warmup(rg2) - rg2.state = state + rg2.brng.state = state r2 = rg2.standard_gamma(4.0, 11, dtype=np.float32) assert_array_equal(r1, r2) assert_equal(r1.dtype, np.float32) - assert_(comp_state(rg.state, rg2.state)) + assert_(comp_state(rg.brng.state, rg2.brng.state)) def test_normal_floats(self): rg = RandomGenerator(self.brng()) warmup(rg) - state = rg.state + state = rg.brng.state r1 = rg.standard_normal(11, dtype=np.float32) rg2 = RandomGenerator(self.brng()) warmup(rg2) - rg2.state = state + rg2.brng.state = state r2 = rg2.standard_normal(11, dtype=np.float32) assert_array_equal(r1, r2) assert_equal(r1.dtype, np.float32) - assert_(comp_state(rg.state, rg2.state)) + assert_(comp_state(rg.brng.state, rg2.brng.state)) def test_normal_zig_floats(self): rg = RandomGenerator(self.brng()) warmup(rg) - state = rg.state + state = rg.brng.state r1 = rg.standard_normal(11, dtype=np.float32) rg2 = RandomGenerator(self.brng()) warmup(rg2) - rg2.state = state + rg2.brng.state = state r2 = rg2.standard_normal(11, dtype=np.float32) assert_array_equal(r1, r2) assert_equal(r1.dtype, np.float32) - assert_(comp_state(rg.state, rg2.state)) + assert_(comp_state(rg.brng.state, rg2.brng.state)) def test_output_fill(self): rg = self.rg - state = rg.state + state = rg.brng.state size = (31, 7, 97) existing = np.empty(size) - rg.state = state + rg.brng.state = state rg.standard_normal(out=existing) - rg.state = state + rg.brng.state = state direct = rg.standard_normal(size=size) assert_equal(direct, existing) sized = np.empty(size) - rg.state = state + rg.brng.state = state rg.standard_normal(out=sized, size=sized.shape) existing = np.empty(size, dtype=np.float32) - rg.state = state + rg.brng.state = state rg.standard_normal(out=existing, dtype=np.float32) - rg.state = state + rg.brng.state = state direct = rg.standard_normal(size=size, dtype=np.float32) assert_equal(direct, existing) def test_output_filling_uniform(self): rg = self.rg - state = rg.state + state = rg.brng.state size = (31, 7, 97) existing = np.empty(size) - rg.state = state + rg.brng.state = state rg.random_sample(out=existing) - rg.state = state + rg.brng.state = state direct = rg.random_sample(size=size) assert_equal(direct, existing) existing = np.empty(size, dtype=np.float32) - rg.state = state + rg.brng.state = state rg.random_sample(out=existing, dtype=np.float32) - rg.state = state + rg.brng.state = state direct = rg.random_sample(size=size, dtype=np.float32) assert_equal(direct, existing) def test_output_filling_exponential(self): rg = self.rg - state = rg.state + state = rg.brng.state size = (31, 7, 97) existing = np.empty(size) - rg.state = state + rg.brng.state = state rg.standard_exponential(out=existing) - rg.state = state + rg.brng.state = state direct = rg.standard_exponential(size=size) assert_equal(direct, existing) existing = np.empty(size, dtype=np.float32) - rg.state = state + rg.brng.state = state rg.standard_exponential(out=existing, dtype=np.float32) - rg.state = state + rg.brng.state = state direct = rg.standard_exponential(size=size, dtype=np.float32) assert_equal(direct, existing) def test_output_filling_gamma(self): rg = self.rg - state = rg.state + state = rg.brng.state size = (31, 7, 97) existing = np.zeros(size) - rg.state = state + rg.brng.state = state rg.standard_gamma(1.0, out=existing) - rg.state = state + rg.brng.state = state direct = rg.standard_gamma(1.0, size=size) assert_equal(direct, existing) existing = np.zeros(size, dtype=np.float32) - rg.state = state + rg.brng.state = state rg.standard_gamma(1.0, out=existing, dtype=np.float32) - rg.state = state + rg.brng.state = state direct = rg.standard_gamma(1.0, size=size, dtype=np.float32) assert_equal(direct, existing) def test_output_filling_gamma_broadcast(self): rg = self.rg - state = rg.state + state = rg.brng.state size = (31, 7, 97) mu = np.arange(97.0) + 1.0 existing = np.zeros(size) - rg.state = state + rg.brng.state = state rg.standard_gamma(mu, out=existing) - rg.state = state + rg.brng.state = state direct = rg.standard_gamma(mu, size=size) assert_equal(direct, existing) existing = np.zeros(size, dtype=np.float32) - rg.state = state + rg.brng.state = state rg.standard_gamma(mu, out=existing, dtype=np.float32) - rg.state = state + rg.brng.state = state direct = rg.standard_gamma(mu, size=size, dtype=np.float32) assert_equal(direct, existing) @@ -796,7 +796,7 @@ class TestMT19937(RNG): cls.advance = None cls.seed = [2 ** 21 + 2 ** 16 + 2 ** 5 + 1] cls.rg = RandomGenerator(cls.brng(*cls.seed)) - cls.initial_state = cls.rg.state + cls.initial_state = cls.rg.brng.state cls.seed_vector_bits = 32 cls._extra_setup() cls.seed_error = ValueError @@ -805,8 +805,8 @@ class TestMT19937(RNG): nprg = np.random.RandomState() nprg.standard_normal(99) state = nprg.get_state() - self.rg.state = state - state2 = self.rg.state + self.rg.brng.state = state + state2 = self.rg.brng.state assert_((state[1] == state2['state']['key']).all()) assert_((state[2] == state2['state']['pos'])) @@ -819,7 +819,7 @@ class TestPCG64(RNG): cls.seed = [2 ** 96 + 2 ** 48 + 2 ** 21 + 2 ** 16 + 2 ** 5 + 1, 2 ** 21 + 2 ** 16 + 2 ** 5 + 1] cls.rg = RandomGenerator(cls.brng(*cls.seed)) - cls.initial_state = cls.rg.state + cls.initial_state = cls.rg.brng.state cls.seed_vector_bits = None cls._extra_setup() @@ -832,20 +832,20 @@ class TestPCG64(RNG): seed = -1 with pytest.raises(ValueError): - self.rg.seed(seed) + self.rg.brng.seed(seed) error_type = ValueError if self.seed_vector_bits else TypeError seed = np.array([-1], dtype=np.int32) with pytest.raises(error_type): - self.rg.seed(seed) + self.rg.brng.seed(seed) seed = np.array([1, 2, 3, -5], dtype=np.int32) with pytest.raises(error_type): - self.rg.seed(seed) + self.rg.brng.seed(seed) seed = np.array([1, 2, 3, out_of_bounds]) with pytest.raises(error_type): - self.rg.seed(seed) + self.rg.brng.seed(seed) class TestPhilox(RNG): @@ -855,7 +855,7 @@ class TestPhilox(RNG): cls.advance = 2**63 + 2**31 + 2**15 + 1 cls.seed = [12345] cls.rg = RandomGenerator(cls.brng(*cls.seed)) - cls.initial_state = cls.rg.state + cls.initial_state = cls.rg.brng.state cls.seed_vector_bits = 64 cls._extra_setup() @@ -867,7 +867,7 @@ class TestThreeFry(RNG): cls.advance = 2 ** 63 + 2 ** 31 + 2 ** 15 + 1 cls.seed = [12345] cls.rg = RandomGenerator(cls.brng(*cls.seed)) - cls.initial_state = cls.rg.state + cls.initial_state = cls.rg.brng.state cls.seed_vector_bits = 64 cls._extra_setup() @@ -879,7 +879,7 @@ class TestXoroshiro128(RNG): cls.advance = None cls.seed = [12345] cls.rg = RandomGenerator(cls.brng(*cls.seed)) - cls.initial_state = cls.rg.state + cls.initial_state = cls.rg.brng.state cls.seed_vector_bits = 64 cls._extra_setup() @@ -891,7 +891,7 @@ class TestXoshiro256StarStar(RNG): cls.advance = None cls.seed = [12345] cls.rg = RandomGenerator(cls.brng(*cls.seed)) - cls.initial_state = cls.rg.state + cls.initial_state = cls.rg.brng.state cls.seed_vector_bits = 64 cls._extra_setup() @@ -903,7 +903,7 @@ class TestXoshiro512StarStar(RNG): cls.advance = None cls.seed = [12345] cls.rg = RandomGenerator(cls.brng(*cls.seed)) - cls.initial_state = cls.rg.state + cls.initial_state = cls.rg.brng.state cls.seed_vector_bits = 64 cls._extra_setup() @@ -915,7 +915,7 @@ class TestXorshift1024(RNG): cls.advance = None cls.seed = [12345] cls.rg = RandomGenerator(cls.brng(*cls.seed)) - cls.initial_state = cls.rg.state + cls.initial_state = cls.rg.brng.state cls.seed_vector_bits = 64 cls._extra_setup() @@ -927,7 +927,7 @@ class TestDSFMT(RNG): cls.advance = None cls.seed = [12345] cls.rg = RandomGenerator(cls.brng(*cls.seed)) - cls.initial_state = cls.rg.state + cls.initial_state = cls.rg.brng.state cls._extra_setup() cls.seed_vector_bits = 32 @@ -939,7 +939,7 @@ class TestThreeFry32(RNG): cls.advance = 2**63 + 2**31 + 2**15 + 1 cls.seed = [2 ** 21 + 2 ** 16 + 2 ** 5 + 1] cls.rg = RandomGenerator(cls.brng(*cls.seed)) - cls.initial_state = cls.rg.state + cls.initial_state = cls.rg.brng.state cls.seed_vector_bits = 64 cls._extra_setup() cls.seed_error = ValueError @@ -972,6 +972,6 @@ class TestPCG32(TestPCG64): cls.seed = [2 ** 48 + 2 ** 21 + 2 ** 16 + 2 ** 5 + 1, 2 ** 21 + 2 ** 16 + 2 ** 5 + 1] cls.rg = RandomGenerator(cls.brng(*cls.seed)) - cls.initial_state = cls.rg.state + cls.initial_state = cls.rg.brng.state cls.seed_vector_bits = None cls._extra_setup() diff --git a/numpy/random/randomgen/threefry.pyx b/numpy/random/threefry.pyx index 8140c6a9b..8140c6a9b 100644 --- a/numpy/random/randomgen/threefry.pyx +++ b/numpy/random/threefry.pyx diff --git a/numpy/random/randomgen/threefry32.pyx b/numpy/random/threefry32.pyx index 1fa98eabd..1fa98eabd 100644 --- a/numpy/random/randomgen/threefry32.pyx +++ b/numpy/random/threefry32.pyx diff --git a/numpy/random/randomgen/xoroshiro128.pyx b/numpy/random/xoroshiro128.pyx index 7795500e8..7795500e8 100644 --- a/numpy/random/randomgen/xoroshiro128.pyx +++ b/numpy/random/xoroshiro128.pyx diff --git a/numpy/random/randomgen/xorshift1024.pyx b/numpy/random/xorshift1024.pyx index 3c7ffac52..3c7ffac52 100644 --- a/numpy/random/randomgen/xorshift1024.pyx +++ b/numpy/random/xorshift1024.pyx diff --git a/numpy/random/randomgen/xoshiro256starstar.pyx b/numpy/random/xoshiro256starstar.pyx index c3856b6f7..c3856b6f7 100644 --- a/numpy/random/randomgen/xoshiro256starstar.pyx +++ b/numpy/random/xoshiro256starstar.pyx diff --git a/numpy/random/randomgen/xoshiro512starstar.pyx b/numpy/random/xoshiro512starstar.pyx index 761d1f1d0..761d1f1d0 100644 --- a/numpy/random/randomgen/xoshiro512starstar.pyx +++ b/numpy/random/xoshiro512starstar.pyx |
