Probdiffeq

Latest version: v0.6.2

Safety actively analyzes 722674 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 4

0.6.2

<!-- Release notes generated using configuration in .github/release.yaml at main -->
This release contains a fix to a dependency-related problem (810) in the previous release.

What's Changed
* Include typing-related extensions as dependencies by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/812


**Full Changelog**: https://github.com/pnkraemer/probdiffeq/compare/v0.6.1...v0.6.2

0.6.1

This PR mainly contains a bugfix (808): previously, `solution.u_std` was incorrect (as visible through its wrong shape). Now, it's corrected (and tested).

<!-- Release notes generated using configuration in .github/release.yaml at main -->

What's Changed
New features
* Ensure that solution.u_std and solution.u have the same shapes to fix an error by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/808
* Document the solution object and make it public by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/809
Improvements to the documentation
* Update the CI explanation in the docs (it's been a while) by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/807


**Full Changelog**: https://github.com/pnkraemer/probdiffeq/compare/v0.6.0...v0.6.1

0.6.0

This release improves Probdiffeq's API considerably. Hard-to-access quantities, such as standard deviations of the solution estimate, are now accessible. Global states have been removed, making the library more predictable and "hackable." Some of these changes are not backwards-compatible, but they should be easy to fix (see below).

Key updates:
- Improved access to derivatives, standard deviations, and samples ([786](https://github.com/pnkraemer/probdiffeq/pull/786))
- More robust initialisation: `ode_shape` and `num_derivatives` are now determined automatically. Simply compute the Taylor coefficients and use them to initialise the SSM ([786](https://github.com/pnkraemer/probdiffeq/pull/786)).
- Simplified API: The solution object is no longer iterable ([800](https://github.com/pnkraemer/probdiffeq/pull/800)).
- Cleaner solver instantiation: Instead of `solver(strategy(prior, correction))`, use `solver(strategy, prior, correction)`.
- Updated Python support: Now compatible with **Python 3.12+** (dropped support for 3.9 to align with JAX's policy).


Refer to the PR descriptions below or check the updated documentation for guidance on resolving breaking changes. Most issues should be easy to fix, but feel free to reach out if needed.


<!-- Release notes generated using configuration in .github/release.yaml at main -->

What's Changed
Breaking changes
* Turn `tcoeffs` into arguments to `prior_ibm` to reduce error potential by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/785
* Remove the need for declaring `ode_shape` and `num_derivatives` before simulating by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/786
* Separate strategies from priors and corrections by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/797
* Move ivpsolve.adaptive and ivpsolve.control* to ivpsolvers because they are solver components by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/798
* Remove iterability from the Solution object because it is mathematically ill-defined by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/800
New features
* Increase python versions to include 3.12 and 3.13, and to match JAX's minimum requirement by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/804
Improvements to the documentation
* Add release.yaml to custom-format release notes by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/803
* Add 'general troubleshooting' and 'Pleiades-NaNs' to the troubleshooting site by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/805
Internals
* Replace probdiffeq.util.linop_util with jax.Arrays to improve hackability by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/787
* Use vulture to detect dead code and remove what the command found by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/788
* Flatten the directory structure in the tests to mirror the module structure in the source by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/789
* Remove the pytest-coverage setup because we don't use it (and haven't for a while) by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/790
* Internal: Simplify the implementation of extrapolations by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/791
* Internal: Reduce unnecessary complexity in correction code by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/792
* Internal: Condense strategies into a single class to simplify the source-code by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/793
* Internal: Simplify the probabilistic-solver implementation by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/794
* Internal: Move error-scaling (by the error contraction rate) outside of the controller implementations by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/795
* Internal: Improve function order in ivpsolvers.py and remove residual pytest-cov references by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/796
* Internal: Remove private `select`-style functions because we have easier ways of accessing derivatives now by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/799
Other Changes
* Fix a typo in release.yaml by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/806


**Full Changelog**: https://github.com/pnkraemer/probdiffeq/compare/v0.5.1...v0.6.0

0.5.1

What's Changed
* Add the citation information for solve_and_save_at by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/783


**Full Changelog**: https://github.com/pnkraemer/probdiffeq/compare/v0.5.0...v0.5.1

0.5.0

What's Changed
* Condense the directory structure of `probdiffeq.impl` by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/764
* Move the `Conditional` type from `util.cond_util` to `impl._conditional` by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/765
* Delete the changelog because it hasn't been used by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/766
* Move content of `impl.variable` to `impl.stats` by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/767
* Move the content of `util.ibm_util` to `impl.ssm_util` because it is only used there (and not public API) by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/768
* Move `probdiffeq.impl` methods around to improve independence by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/769
* Replace `tests.setup` with a pytest fixture by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/770
* Implement a custom JVP for triangularisation for qr(..., mode="r") to remove a hacky conditional by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/771
* Remove the *.t property from the adaptive state because it contains two time-points, not one by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/772
* Rename `*_right_corner` to `interpolate/extract_at_t1` to clarify that it implements a special case of extract/interpolate by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/773
* Make the InterpRes into a dataclass and rename the fields to improve clarity by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/774
* Delete an unused function by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/775
* Internals: Make the constructors in ivpsolvers.py more functional by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/776
* Internals: Stop accessing solver.strategy.extrapolation.num_derivatives inside ivpsolve.py by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/777
* Internals: stop registering controllers as Pytrees since controllers are parameter-free by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/778
* Internals: Implement the uncalibrated solver via the calibrated solver with empty calibration by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/779
* Internal: Delete unused code by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/780
* Make clip/no-clip an argument to the controllers to reduce code duplication by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/781
* Clarify methods' namespaces in ivpsolve.py by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/782


**Full Changelog**: https://github.com/pnkraemer/probdiffeq/compare/v0.4.1...v0.5.0

0.4.1

This release contains a small bug fix regarding probdiffeq's dependencies. See 762 for context.

What's Changed
* Use local imports in backend.ode to avoid diffeqzoo & diffrax dependencies by pnkraemer in https://github.com/pnkraemer/probdiffeq/pull/763


**Full Changelog**: https://github.com/pnkraemer/probdiffeq/compare/v0.4.0...v0.4.1

Page 1 of 4

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.