v0.3.3
This release mostly affects Probdiffeq's internals. The only user-facing change is that now, the choice of while-loop in the solution routines can be temporarily overwritten. One application is constructing reverse-mode differentiable yet adaptive IVP solvers. Consult the tutorials for an example.
What's Changed
- Merge IVP-solution modules by @pnkraemer in #679
- Remove *.ipynb files from version control by @pnkraemer in #680
- Merge linting and formatting behaviour by @pnkraemer in #681
- Unify the names of benchmark-related commands in the makefile by @pnkraemer in #682
- Include example CI in doc CI by @pnkraemer in #683
- Automate readme and index equality by @pnkraemer in #684
- Implement backend.control_flow.scan by @pnkraemer in #685
- Implement backend.functools.vmap by @pnkraemer in #686
- Implement backend.control_flow.cond by @pnkraemer in #687
- Implement backend.functools.jit by @pnkraemer in #688
- Implement backend.linalg.qr_r by @pnkraemer in #689
- Implement backend.random by @pnkraemer in #690
- Implement backend.linalg.cholesky_lower by @pnkraemer in #691
- Implement backend.numpy factorial by @pnkraemer in #692
- Implement backend.functools.jet by @pnkraemer in #694
- Implement backend.numpy.arange by @pnkraemer in #695
- Implement backend.linalg.{vector, matrix}_norm by @pnkraemer in #693
- Implement backend.numpy.ndim by @pnkraemer in #696
- Implement backend.tree_util by @pnkraemer in #697
- Remove an 'Iterator' type hint by @pnkraemer in #698
- Replace a reference to jax.tree_map with tree_util.tree_map by @pnkraemer in #700
- Implement backend.numpy.{minimum, maximum} by @pnkraemer in #699
- Implement backend.numpy.{where, abs} by @pnkraemer in #701
- Implement backend.linalg.solve_triangular by @pnkraemer in #702
- Implement backend.numpy.{finfo_eps, diff} by @pnkraemer in #703
- Implement backend.numpy.{asarray, squeeze, squeeze_along_axis} by @pnkraemer in #704
- Implement backend.linalg.cholesky_solve and rename cholesky_lower to cholesky_factor by @pnkraemer in #705
- Implement backend.numpy.{atleast_1d, concatenate} by @pnkraemer in #706
- Implement backend.numpy.{ones_like, inf, sqrt} by @pnkraemer in #708
- Implement backend.typing.Array by @pnkraemer in #707
- Implement backend.numpy.{zeros_like, eye} by @pnkraemer in #709
- Replace all remaining jnp.* calls with backend.numpy.* calls by @pnkraemer in #710
- Remove unused imports from probdiffeq.taylor subpackage by @pnkraemer in #711
- Implement backend.functools.linearize by @pnkraemer in #712
- Implement backend numpy block diag by @pnkraemer in #713
- Implement backend.functools.jvp by @pnkraemer in #714
- Implement backend.containers.dataclass by @pnkraemer in #715
- Implement backend.abc by @pnkraemer in #716
- Implement backend.itertools by @pnkraemer in #717
- Implement remaining types in backend.typing by @pnkraemer in #718
- Implement backend.warnings by @pnkraemer in #720
- Implement backend.special by @pnkraemer in #719
- Implement backend.ode by @pnkraemer in #721
- Rename ode.odeint to ode.odeint_and_save_at by @pnkraemer in #722
- Implement backend.stats and backend.functools.jacrev by @pnkraemer in #723
- Change signature of ode.odeint_and_save_at to be consistent with the rest of probdiffeq by @pnkraemer in #724
- Change 'from jax.config import config' to 'import jax.config' by @pnkraemer in #725
- Remove remaining 'import jax's by @pnkraemer in #727
- Implement backend.ode.odeint_dense by @pnkraemer in #726
- Implement backend.warnings.filterwarnings by @pnkraemer in #729
- Implement backend.ode.ivp_{logistic, lotka_volterra, ...} by @pnkraemer in #728
- Implement backend.config by @pnkraemer in #730
- Reorder the quickstart-section of the docs by @pnkraemer in #731
- Change tutorial format from .md to .py by @pnkraemer in #732
- Delete 'smoothing' example notebook by @pnkraemer in #735
- Implement backend.control_flow.context_overwrite_{while_loop, scan} and create a tutorial for using it by @pnkraemer in #736
- Remove yield-values from overwrite-loop contexts by @pnkraemer in #737
- Warn about the experimental nature of Probdiffeq in its readme, and explain versioning by @pnkraemer in #738
Full Changelog: v0.3.2...v0.3.3