v0.2.0
What's Changed
- Rename
dense_output.py
tosolution.py
by @pnkraemer in #480 - Group tests for IVP solvers and solutions by @pnkraemer in #481
- Move cubature module to implementations by @pnkraemer in #482
- Rename solvers by @pnkraemer in #483
- Renamed negative_marginal_log_likelihood to log_marginal_likelihood by @pnkraemer in #484
- Changelog by @pnkraemer in #485
- Replace "condition_on_qoi_observations" with "observe_qoi" by @pnkraemer in #487
- Conditionals by @pnkraemer in #488
norm_of_whitened_residual_sqrtm
ismahalanobis_norm
by @pnkraemer in #491- Moved test-dependencies to backend by @pnkraemer in #492
- Whitened residuals in IsoTS0 by @pnkraemer in #494
- Replaced
jnp.sqrt(jnp.dot(...))
andjnp.sqrt(jnp.einsum(...))
with square-root arithmetic by @pnkraemer in #496 - Moved square-root utilities to top-level and renamed to sqrt_util by @pnkraemer in #497
- Sum of squares by @pnkraemer in #498
- Scalar solvers in public API by @pnkraemer in #499
- Doc improvements by @pnkraemer in #501
- Cubature factories by @pnkraemer in #502
- Skip JVP tests for Dense SLR1 by @pnkraemer in #503
- Removed unused method by @pnkraemer in #505
- IBM factories by @pnkraemer in #504
- Define public API by @pnkraemer in #506
- Correction factories by @pnkraemer in #507
- Remove type-checking tab by @pnkraemer in #510
- Implementation recipes are functions by @pnkraemer in #508
- Simplify extrapolation by @pnkraemer in #511
- Cache in state-space variable by @pnkraemer in #512
- Initial step in solver signature by @pnkraemer in #513
- Extract inverse to init for adaptive solvers by @pnkraemer in #514
- Time-step in controller state by @pnkraemer in #515
- Type-stability in filtering methods by @pnkraemer in #516
- The big output-scale-sqrtm overhaul by @pnkraemer in #517
- Initialise solution from posterior by @pnkraemer in #518
- Separate solver state from solution by @pnkraemer in #519
- Rename _ivpsolve_impl.py to _collocate.py by @pnkraemer in #520
- Group examples and benchmarks in directories by @pnkraemer in #521
- Remove 'rv1' from case_interpolate signature by @pnkraemer in #522
- Rename linearisation pt by @pnkraemer in #523
- Clean up strategy signatures by @pnkraemer in #524
- Use interpolation result type in strategies by @pnkraemer in #525
- Extract fn in strategy by @pnkraemer in #526
- Mention MLESolver fix in changelog by @pnkraemer in #527
- Improve usage of
posterior
vocabulary in solvers by @pnkraemer in #528 - Smoother state by @pnkraemer in #529
- Moved some properties from IVP solution to Strategy-states by @pnkraemer in #530
- Some cosmetic updates by @pnkraemer in #531
- Remove
gain
fromcomplete_correction
output by @pnkraemer in #532 probdiffeq.implementations
->probdiffeq.statespace
by @pnkraemer in #533- Remove the middle-man: No more
Implementation
class. by @pnkraemer in #534 - Removed eq for solvers by @pnkraemer in #535
init_output_scale
ispromote_output_scale
by @pnkraemer in #536- Move
t
field to strategy states by @pnkraemer in #537 - case_* methods private wherever appropriate by @pnkraemer in #538
- Removed _fn suffix for a bunch of methods by @pnkraemer in #539
- Extrapolation and correction define only
begin
andcomplete
by @pnkraemer in #540 - Reintroduce mypy checks by @pnkraemer in #541
- Delete readthedocs file and format yaml files by @pnkraemer in #542
- Remove u and marginals from solver state by @pnkraemer in #543
- Moved sample() to solution by @pnkraemer in #544
- Mini updates by @pnkraemer in #545
- Remove unneded test cases by @pnkraemer in #547
- Increase fixed-grid test coverage by @pnkraemer in #548
- Increase save-at test coverage by @pnkraemer in #550
- Split
statespace._collections.py
file and abbreviateStateSpaceVar
toSSV
by @pnkraemer in #551 - Change function order in _collocate.py by @pnkraemer in #552
- Remove 'Abstract' from class names by @pnkraemer in #553
- Target shape in state-space variable by @pnkraemer in #554
- Increase terminal value test coverage by @pnkraemer in #549
- Filters and smoothers implement begin() and complete() directly by @pnkraemer in #555
- Filters implement only begin() and complete() now by @pnkraemer in #556
- Smoothers only implement
begin
andcomplete
now by @pnkraemer in #557 - Strategy & statespace signatures by @pnkraemer in #558
- Remove num data points by @pnkraemer in #559
- Solution assembly outside of ivpsolvers.py by @pnkraemer in #560
- Extract output scale by @pnkraemer in #561
- Delete unused function by @pnkraemer in #562
init_conditional
->smoother_init_conditional
by @pnkraemer in #563- Controls are now longer abstract by @pnkraemer in #564
- IVP solvers no longer abstract by @pnkraemer in #565
- Strategy no longer abstract by @pnkraemer in #566
- Removed unused caches in filter_begin and filter_complete by @pnkraemer in #567
- Remove _SmootherCommon by @pnkraemer in #568
- Fixed-point implementations gain dedicated begin/complete methods by @pnkraemer in #569
- Fix interpolation error by @pnkraemer in #571
- Test mle calibration by @pnkraemer in #570
- Moved
u
from_FiState
and_SmState
toSSV
by @pnkraemer in #573 - Split extrapolations into filter-, smoother-, and fixedpoint-implementations by @pnkraemer in #574
- AdaptiveState is a named tuple now. by @pnkraemer in #575
- Extracted filtering functionality from LML by @pnkraemer in #576
- Dataclasses and Pytrees by @pnkraemer in #577
- Nested dataclasses by @pnkraemer in #579
- Removed custom dataclasses (they don't work as expected) by @pnkraemer in #580
- Phrased runge-kutta starter as a smoother by @pnkraemer in #581
- Removed last abstract classes by @pnkraemer in #582
- Split _collections into _markov and _interp by @pnkraemer in #583
- _collections, _conds, and _vars are all _vars now (in statespace/) by @pnkraemer in #584
- Remove
init_error_estimate()
by @pnkraemer in #585 - _vars -> variables by @pnkraemer in #586
- Removed
SmootherSol
andFilterDist
by @pnkraemer in #587 sqrtm_to_upper_triangular
->triu_via_qr
by @pnkraemer in #588- Use containers.NamedTuple instead of typing.NamedTuple by @pnkraemer in #589
- Overhauled the look of the docs by @pnkraemer in #590
- Predict, update, apply_updates scheme in
solution._kalman_filter
by @pnkraemer in #591 - Extract standard normal functionality by @pnkraemer in #592
- Moved up a variable in FP interpolation by @pnkraemer in #595
- Updated controller source-code by @pnkraemer in #594
- Renamed
_duplicate_with_unit_backward_model
to_reset_fixedpoint
by @pnkraemer in #596 - Reset backward model in Fp.init by @pnkraemer in #593
- Merge backward-models in fixedpoint.complete() by @pnkraemer in #597
- Remove backward-model merging in case right corner by @pnkraemer in #598
- Simplify initialisation of proposed error estimate by @pnkraemer in #599
- Move merge_conditionals() to a function by @pnkraemer in #600
- Simplified extrapolation interface by @pnkraemer in #601
- Remove unused fields from
AdaptiveState
by @pnkraemer in #602 - Moved control flow to backend by @pnkraemer in #603
- Replace fixedpoint.init_conditional() with fixedpoint.reset() by @pnkraemer in #604
- Extracted init_conditional from dense extrapolation by @pnkraemer in #605
- Removed self.init_conditional() from Iso variables by @pnkraemer in #606
- Extracted identity conditional from scalar SSMs by @pnkraemer in #607
- Preconditioner is a Callable by @pnkraemer in #608
- Extract calibration from extrapolation by @pnkraemer in #609
- Move EOF and YAMLFIX to pre-commit hook. by @pnkraemer in #610
- Strategy as function by @pnkraemer in #611
- Calibration is now a property of the solver, not the strategy by @pnkraemer in #612
- IVP solvers are factory functions by @pnkraemer in #614
- Calibration methods are bundles of init-update-extract schemes by @pnkraemer in #615
- Call Calib.init() and Calib.extract() in IVP solver by @pnkraemer in #616
- BVP solver proof of concept by @pnkraemer in #617
- Replace mknotebooks with mkdocs-jupyter by @pnkraemer in #618
- Unify Markov sequence namings by @pnkraemer in #619
- Give test-suite a new look by @pnkraemer in #620
- Update action-setup versions by @pnkraemer in #624
- Increase python version to 3.9+ by @pnkraemer in #625
- Custom color scheme for Mkdocs by @pnkraemer in #626
- Update to changelogs by @pnkraemer in #627
- Remove scan_with_init and clean up Solution.getitem by @pnkraemer in #628
- Extract common post-processing functionality in ivpsolve by @pnkraemer in #629
- Implement ivpsolve.simulate_terminal_values via _collocate.solve_and_save_at by @pnkraemer in #630
- Move scale_covariance logic to ivpsolve.py by @pnkraemer in #631
- Move interpolation-logic to collocate.py by @pnkraemer in #632
- Simplify interpolation interpolation via moving logic to _collocate.py by @pnkraemer in #633
- Unify the implementations in strategies by @pnkraemer in #634
- Compositional implementation of strategies by @pnkraemer in #635
- Compositional implementation of ivpsolvers by @pnkraemer in #636
- Factory methods in extrapolation-model construction by @pnkraemer in #637
- Calibration factory by @pnkraemer in #638
- Move solution object from solution.py to ivpsolve.py by @pnkraemer in #639
- Separate ivpsolver package by @pnkraemer in #640
- Make
strategies.strategy
public by @pnkraemer in #641 - Clean up solver API, calibration implementation; make output_scale compulsory by @pnkraemer in #642
- Controller constructors by @pnkraemer in #643
- Tightened the API for Correction models by @pnkraemer in #644
- Correction model updates by @pnkraemer in #645
- Iso-factorisation implements the new correction-model style by @pnkraemer in #646
- Block-diag implementations use new API by @pnkraemer in #647
- Scalar solvers implement corrections by @pnkraemer in #648
- Clean up extrapolation factory by @pnkraemer in #649
- Compulsory output scale in ibm_utils.system_matrices by @pnkraemer in #650
- Removed unused arguments in right-corner function by @pnkraemer in #651
- Towards v0.2.0 by @pnkraemer in #654
Full Changelog: v0.1.4...v0.2.0
See https://pnkraemer.github.io/probdiffeq/getting_started/easy_example.md for an introduction to the new API .