Releases: sdepy/sdepy
SdePy 1.2.0
New in this release
SdePy was upgraded to the current NumPy pseudo-random numbers generation
framework, based on the PCG-64 algorithm (#33, #35, #38, #40).
The following additions were made:
-
SDEs and stochasticity source classes now accept upon instantiation
a new optional parameterrng
, to locally set the
random number generator used by each instance.
Suchrng
is expected to expose the interface
used bynumpy.random.Generator
andnumpy.random.RandomState
instances. -
In case no
rng
parameter is given, random number generation
is delegated to a globalnumpy.random.default_rng()
object,
created upon import: absent any user intervention,
unmodified pre-existing code will rely on PCG-64
random number generation after upgrading to current
NumPy and SdePy releases. -
To access the stably reproducible NumPy legacy random generation,
it is recommended to instantiate sources and SDEs with the
rng=numpy.random.RandomState(SEED)
parameter. As a result,
each object is served the random numbers stream formerly obtained
from the global NumPy random state after anumpy.random.seed(SEED)
call. -
Compatibility with legacy NumPy versions was maintained, if now deprecated:
in such case, SdePy silently falls back on the legacy global NumPy random state.
The present SdePy version safeguards functional compatibility with
code written for previous versions, note however that, if such code is run
with current NumPy and SdePy versions, it will
break pseudo-random numbers reproducibility:
-
numpy.random.seed
calls no longer affect SdePy objects. -
To reproduce the default output of former SdePy versions,
numpy.random.seed(SEED)
statements may be replaced
with the following assignment:sdepy.infrastructure.default_rng = numpy.random.RandomState(SEED)
Any other use of such global variable should rather be avoided,
in favor of therng
keyword.
Improvements
The testing suite was updated, and its interface sdepy.test()
extended,
for use beyond NumPy legacy random generation;
GitHub Actions were updated accordingly, to perform CI tests using
both legacy and current NumPy random generation (#36, #37).
Changes
Python 3.5 is no longer supported (#39, #41).
Checksums
MD5
31a9dc7d4233ac3ec6fa910e81f370f6 sdepy-1.2.0-py3-none-any.whl
bb5c233606eb69a77e6ed9397d8732b8 sdepy-1.2.0.tar.gz
SdePy 1.1.2
SdePy 1.1.1
This is a maintenance release.
New in this release
- The testing framework was migrated from nose to pytest (#19),
and removed from the package dependencies. - Python 3.8 is now supported (#22).
- The quick guide was made available as a jupyter notebook (#23).
- Checks and error messages were improved on the
SDE.sde()
andSDEs.sde()
methods (#20, #21) and theintegrate
decorator (#24).
SdePy 1.1.0
New in this release
- The
process
class acquired new methods
vmin, vmax, vmean, vvar, vstd
to perform summary operations
across values, for each time point and path (#14). - A piecewise constant process constructor was added as the
piecewise
function (#9); it replaces, and improves upon,
the private_piecewise_constant_process
(undocumented,
not part of the API), now deprecated.
Bug-fixes
- An incompatibility issue of the
process
class with
numpy versions >= 1.16.0 (#11, #12) was solved. - A bug in the
out
parameter ofprocess
methods
pmin, pmax, tmin, tmax
(#10, #13) was fixed.
Improvements
- The behavior of the
process
attributeinterp_kind
was documented in more detail (#14). - There were several minor improvements to the testing
and maintenance tools, and to the testing suite (#14, #15).
Changes
- No backward incompatible changes were made against the stated API.
- Note however that code relying on the
out
parameter of the
mentionedprocess
methods might be in need of fixing as well.
SdePy 1.0.1
SdePy 1.0.0
First public release, also found on PyPi.
After evolving through several 0.x unpublished versions, and undergoing several months of extensive private use, SdePy achieved its present stable form, marked as beta as a measure of caution against the unexpected.
SdePy 1.0.0rc3
This is a release candidate, also found on PyPi.
SdePy 1.0.0 is not released yet.