| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
| |
* ENH: Rename seed_seq argument to seed and replace Generator() with default_gen()
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary of the changes:
* Move the functions random_hypergeometric_hyp, random_hypergeometric_hrua
and random_hypergeometric from distributions.c to legacy-distributions.c.
These are now the legacy implementation of hypergeometric.
* Add the files logfactorial.c and logfactorial.h,
containing the function logfactorial(int64_t k).
* Add the files random_hypergeometric.c and random_hypergeometric.h,
containing the function random_hypergeometric (the new implementation
of the hypergeometric distribution). See more details below.
* Fix two tests in numpy/random/tests/test_generator_mt19937.py that
used values returned by the hypergeometric distribution. The
new implementation changes the stream, so those tests needed to
be updated.
* Remove another test obviated by an added constraint on the arguments
of hypergeometric.
Details of the rewrite:
If you carefully step through the old function rk_hypergeometric_hyp(),
you'll see that the end result is basically the same as the new function
hypergeometric_sample(), but the new function accomplishes the result with
just integers. The floating point calculations in the old code caused
problems when the arguments were extremely large (explained in more detail
in the unmerged pull request https://github.com/numpy/numpy/pull/9834).
The new version of hypergeometric_hrua() is a new translation of
Stadlober's ratio-of-uniforms algorithm for the hypergeometric
distribution. It fixes a mistake in the old implementation that made the
method less efficient than it could be (see the details in the unmerged
pull request https://github.com/numpy/numpy/pull/11138), and uses a faster
function for computing log(k!).
The HRUA algorithm suffers from loss of floating point precision when
the arguments are *extremely* large (see the comments in github issue
11443). To avoid these problems, the arguments `ngood` and `nbad` of
hypergeometric must be less than 10**9. This constraint obviates an
existing regression test that was run on systems with 64 bit long
integers, so that test was removed.
|
|
|
|
|
|
|
|
| |
* Flipped the _masked flag to correctly use Lemire's method as suggested in the comment. See related issue https://github.com/numpy/numpy/issues/13769.
* Updated a selection of the unit tests for Lemire's method as opposed to masked rejection sampling.
* Removed comments and prints used during testing.
|
|
|
|
|
| |
Update pcg jump sizes
Wrap advance when too large
|
|
|
| |
* test, fix random.choice sum for non-contiguous
|
|
|
|
|
|
| |
Downcast from searchsorted on Windows to ensure int32 is returned
closes #9867
|
|
|
|
|
|
| |
* DOC, MAINT: Misc. typo fixes
Found via `codespell`
|
|
|
|
|
|
| |
RandomState's argument must be named seed for backward compat
closes #13669
|
|
|
|
|
|
| |
Warn that non-native byte order is not supported in randint and integers
closes #13159
|
|\
| |
| |
| |
| | |
ENH: randomgen
This merges randomgen into numpy, which was originally developed at https://github.com/bashtage/randomgen and provides a new and improved API for random number generation with much new and improved functionality.
|
| | |
|
| |
| |
| |
| |
| |
| | |
Pep8 fixes
Remove unused imports
Fix name error
|
| |
| |
| |
| | |
This reverts commit 17e0070df93f4262908f884dca4b08cb7d0bba7f.
|
| |
| |
| |
| |
| | |
Remove traces of the three removed bit generators
Add lock to Cython examples
|
| |
| |
| |
| | |
Change renamed attribute
|
| |
| |
| |
| | |
Remove test file that is circular when randomgen is in numpy
|
| |
| |
| |
| |
| |
| | |
Use type-dependent poisson lam max
Make private
Fix backward compat issue in loggam
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
Ensure integer type is stream compatible on 32 bit
Fix incorrect clause end
Add integer-generator tests that check long streams
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
remove numpy.random.gen, BRNG.generator, pcg*, rand, randn
remove use_mask and Lemire's method, fix benchmarks for PCG removal
convert brng to bitgen (in C) and bit_generator (in python)
convert base R{NG,andom.*} to BitGenerator, fix last commit
randint -> integers, remove rand, randn, random_integers
RandomGenerator -> Generator, more "basic RNG" -> BitGenerator
random_sample -> random, jump -> jumped, resync with randomgen
Remove derived code from entropy
Port over changes accepted in upstream to protect log(0.0) where relevant
fix doctests for jumped, better document choice
Remove Python 2.7 shims
Use NPY_INLINE to simplify
Fix performance.py to work
Renam directory brng to bit_generators
Fix examples wiht new directory structure
Clarify relationship to historical RandomState
Remove references to .generator
Rename xoshiro256/512starstar
|
| |
| |
| |
| | |
Add closed option to randint to simplify some cases
|
| |
| |
| |
| | |
Case high to a Python int to avoid overflow from NumPy types
|
| |
| |
| |
| |
| |
| | |
Add path that voids object conversion unless essential
Small doc cleanups related to random_integers
PEP-8 cleanups
|
| |
| |
| |
| |
| |
| | |
Add changes to alow hypergeometric 0
Small syncs and cleanups
Move legacy_distributions.pxd to legacy folder can be deleted
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Improve performance in all cases
Large improvement with size is small
xref numpy/numpy#5299
xref numpy/numpy#2764
xref numpy/numpy#9855
xref numpy/numpy#7810
|
| |
| |
| |
| |
| |
| | |
Standardize returns types for Windows and 32-bit platforms on int64
in choice and randint (default).
Refactor tomaxint to call randint
|
| |
| |
| |
| |
| |
| | |
Extend multinomial to allow broadcasting
Fix zipf changes missed in NumPy
Enable 0 as valid input for hypergeometric
|
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Currently, a field specified as `[(name, dtype, 1)]` is interpreted as
a scalar field (i.e., the same as `[(name, dtype)]` or `[(name, dtype,
()]`). This now raises a FutureWarning; in a future version, it will
be interpreted as a shape-(1,) field, i.e. the same as `[(name, dtype,
(1,))]` (consistently with `[(name, dtype, n)]` with `n>1`, which is
already equivalent to `[(name, dtype, (n,)]`).
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
| |
One of this is a small issue exposed by new warnings, the others are
simply adapting our test suit to stricter integer coercion rules
(avoiding float -> int conversions).
The last one is that we assumed pickle protocol 5 would be in 3.8.
It is not yet included in the alpha releases at least.
It seems not necessary for the numpy test suit to check whether
it is available based on the python version so removing that test.
(Also testing if the pickle5 module works seems unnecessary.)
Closes gh-13412
|
|\
| |
| | |
ENH: Cast covariance to double in random mvnormal
|
| |
| |
| |
| |
| |
| |
| | |
Cast the covariance in the multivariate normal to double
so that the interpretation of tol is cleaner.
closes #10839
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Fix Wald Docstring to reflect actual restriction on parameters
Add a test to ensure these are enforced for scalar inputs
|
|/
|
|
|
|
| |
Add a check for NaN probabilities in random.choice
closes #11250
|
|
|
|
|
|
|
| |
Before this fix, np.random.weibull(a=0) often returned inf (and
in theory could have returned 1). It should only return 0.
Closes gh-12371.
|
|\
| |
| | |
BUG: Make `random.shuffle` work on 1-D instances of `ndarray` subclasses
|