Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add the DiagonalEK1 #301

Merged
merged 99 commits into from
Feb 19, 2024
Merged

Add the DiagonalEK1 #301

merged 99 commits into from
Feb 19, 2024

Conversation

nathanaelbosch
Copy link
Owner

@nathanaelbosch nathanaelbosch commented Feb 13, 2024

This PR adds the DiagonalEK1 solver that has been proposed in this paper: https://proceedings.mlr.press/v162/kramer22b.html

Things still to do:

  • Implement the proper logic for which solver using which factorization
  • Make sure the diffusion is actually handled correctly. For example, a diagonal diffusion should be fine with this factorization, but is almost surely not handled properly yet
  • On the above: change the diffusion object to a dxd matrix, and handle that one properly
  • Visualize the scaling with ODE dimension and check that the result is actually O(d) and not accidentally O(d^2) (at least if we use an EK0 with this factorization; the jacobian could be more expensive)
  • Add actual tests
  • Remove the BlockDiagonal type piracy by defining my own BlockDiagonal type

EDIT [16.02.2024]: There are still quite a few open threads, so maybe secondorderodes should be left for a future PR. I'll create an issue once I'm finalizing this.

@nathanaelbosch nathanaelbosch marked this pull request as draft February 13, 2024 11:43
Copy link

codecov bot commented Feb 17, 2024

Codecov Report

Attention: 44 lines in your changes are missing coverage. Please review.

Comparison is base (a333661) 93.01% compared to head (5f75325) 92.96%.

Files Patch % Lines
src/blockdiagonals.jl 88.20% 25 Missing ⚠️
src/diffusions/calibration.jl 92.18% 5 Missing ⚠️
src/integrator_utils.jl 76.92% 3 Missing ⚠️
src/diffusions/apply_diffusion.jl 94.44% 2 Missing ⚠️
src/filtering/markov_kernel.jl 92.59% 2 Missing ⚠️
src/algorithms.jl 96.66% 1 Missing ⚠️
src/caches.jl 88.88% 1 Missing ⚠️
src/callbacks/dataupdate.jl 95.00% 1 Missing ⚠️
src/derivative_utils.jl 87.50% 1 Missing ⚠️
src/diffusions/typedefs.jl 96.55% 1 Missing ⚠️
... and 2 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #301      +/-   ##
==========================================
- Coverage   93.01%   92.96%   -0.06%     
==========================================
  Files          40       44       +4     
  Lines        1819     2190     +371     
==========================================
+ Hits         1692     2036     +344     
- Misses        127      154      +27     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@nathanaelbosch nathanaelbosch marked this pull request as ready for review February 18, 2024 12:19
@nathanaelbosch nathanaelbosch merged commit 6407705 into main Feb 19, 2024
7 checks passed
@nathanaelbosch nathanaelbosch deleted the DiagonalEK1 branch February 19, 2024 11:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant