-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Add a BlockDiagonal implementation * It works and it's (a little bit) faster than dense! * Implement a first version of the DiagonalEK1 * Added smoothing * Add BlockDiagonals to the tests * This should be the proper logic to choose the cov factorization * We can now select the covariance from the outside! * Add some SIMD here and there * Make views of BlockDiagonals illegal as they are super slow * Change how the diffusions work * Make some more diffusions work * Better checking for validity of algorithm arguments * More BlockDiagonal linalg things * Better handling of the diffusion for prediction * The global diffusion is now written into the cache directly * Implement rmul! or the IsometricKroneckerProduct * Properly ply the new diffusion after the solve * Properly estimate the global scalar diffusion * Properly implement the global MV diffusion * This should be a proper implementation of the dynamic MV diffusion * Try to fix how the prediction handles the diffusion (I failed) * Try to get the DynamicMV diff to work with BlockDiag cov (but fail) * Get the DiagonalEK1 to work with a dense covariance factorization * Check diffusion and factorization compat somewhere else and warn instead of erroring * JuliaFormatter.jl * Implement my own BlockDiag type * JuliaFormatter.jl * Start fixing some tests * Remove duplicate matmul implementation * Fix some failing state init tests * Improve the diffusion handling some more * Enable the EK0 again with priors that are not Kronecker * Remove one test case that's not yet supported * Significantly speed up the secondorderodeproblem tests * Remove a test that currently fails * Fix many of the tests that I had to temporally remove * Make it more obvious that BlockDiagonals and second order ODEs are not working * Rename our BlockDiagonals to ProbNumDiffEqBlockDiagonal (+ shortcut) * Add a BlockDiagonals extension to transfomr ours to theirs * Add unit-tests for our `BlockDiag`s * Check that the K.b is actually empty * Add versions to overload also the non-blasfloat matmuls * Make some code more compact and readable * Change order to fit acronym * For some reson the eval tests failed; so fix them * Make the if else order in predict and backward kernel easier * misc * Properly implement `size` * Remove an inbounds as we don't explicitly do a sizecheck * Remove some checks again as they are irrelevant for the cov * Add a very minimal docstring to ProbNumDiffEqBlockDiagonal * Better BlockDiagonals and a bit of Kronecker * Make the DiagonalEK1 work again (except for secondorderodes) * Test the diffusions (found a bug! unittests are actually nice) * Give the diffusions much more space * Grealy simplify the local error estimate code * Better predict tests * Beter update and smoothing tests * Praise the lord for unittests * JuliaFormatter.jl * Actually git the diffusion tests * Testfix * Remove some comments * Test that the computed log-likelihood is correct * Add BlockDiagonals compat entry * Add more solvers to the autodiff tests * Add much more tests * JuliaFormatter.jl * Better complexity test * Actually do a proper test to check the scaling of the solvers * JuliaFormatter.jl * Make preconditioner computation simpler and test better * One more prior test * Fix some tests * Get the data likelihoods to work with DiagonalEK1 and the EK0 * Make the data likelihoods better * JuliaFormatter.jl * Relax the complexity tests even more * JuliaFormatter.jl * Remove some unused code * Bisschen code upgrade für die data likelihoods * Make the complexity tests more compact * Remove some unused things, mainly to re-trigger gh actions * Fix the bad getindex for BlockDiag * Use the built-in matrix exponential * Remore parts of a test that are not implemented anymore * Improve coverage a bit * JuliaFormatter.jl * Check better what observation noise works with what factorization * Fix the pn_observation_noise check * More BlockDiag tests * Add some more Kronecker tests * JuliaFormatter.jl * Fix test * Make the FixedMVDiffusion work with dense matrices * Make the FixedMVDiffusion work with the data likelihoods * Remove some comments * Add `add!` to the Kronecker tests and shorten them a bit * Fix the failing test that I just found
- Loading branch information
1 parent
a333661
commit 6407705
Showing
47 changed files
with
1,999 additions
and
794 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
module BlockDiagonalsExt | ||
|
||
import ProbNumDiffEq: ProbNumDiffEqBlockDiagonal, blocks | ||
import BlockDiagonals: BlockDiagonal | ||
|
||
BlockDiagonal(M::ProbNumDiffEqBlockDiagonal) = BlockDiagonal(blocks(M)) | ||
|
||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.