Closed pnkraemer closed 2 months ago
This issue is now resolved. For an update, here is how the above-linked header changed:
"""Demonstrate how probabilistic solvers work via conditioning on constraints."""
import jax
import jax.numpy as jnp
import matplotlib.pyplot as plt
from diffeqzoo import backend
from probdiffeq import ivpsolve, ivpsolvers, stats, taylor
from probdiffeq.impl import impl
from probdiffeq.util.doc_util import notebook
Context: To solve an ODE with probdiffeq, a user needs to import many modules even though there exist multiple pairs of modules that are always used together and even depend on each other in some cases. For example, here is the header of the
Probabilistic solvers as collocation methods
tutorial:What: I suggest merging the following modules:
adaptive
andcontrols
because they are always used together (done in #745)timestep
andivpsolve
because they are always used together (done in #746)solvers.uncalibrated
,solvers.calibrated
(e.g. inprobdiffeq.solvers.py
) because every time we choose a different solver, we currently have to change the imports (which is tedious!) (done in #750)solvers.markov
andsolvers.solution
(e.g. inprobdiffeq.stats
or similar) because it is currently unclear where one starts and the other one stops (done in #755)probdiffeq.solvers.strategies
because they share most code (done in #751)solvers.components
to a single module because we need one of each to build the solver (and put them together in a strategy). Importing a different module for every function we use is tedious. Most of these modules contain a single function. (done in #753)These changes break the existing API. Therefore, the next version (after completing this issue) will increase the minor version, not the patch version.
More context: