Reexported API
using DataDrivenDiffEq brings a fixed set of upstream names into scope, so that the package's own workflow — write a Basis, build a problem, pick a collocation method, normalize and batch the data, solve, then inspect the solution — runs without importing five more packages first.
DataDrivenDiffEq does not own or document any of the names on this page. It only puts them in scope. Each group names the package that owns them and links to the documentation you should actually read.
Symbolic DSL — owned by Symbolics.jl and ModelingToolkitBase.jl
A Basis is written in symbolic variables, so the declaration macros and the symbolic types come along with the package:
@variables,@parameters— declare the states, controls and parameters a basis is written over.Differential— the derivative operator used for implicit bases and for the equations of a recovered continuous system.Num,Equation— the symbolic wrapper and equation types a basis is built from and returns.build_function,get_variables— turn symbolic expressions into callable code and extract the variables appearing in an expression.
@variables, Differential, Num, Equation, build_function and get_variables are owned and documented by Symbolics; @parameters is owned by ModelingToolkit (through ModelingToolkitBase).
Anything else from the symbolic stack — @register_symbolic, substitute, simplify, expand_derivatives, the rewriting machinery — must be imported from Symbolics or ModelingToolkit directly.
System accessors — owned by ModelingToolkitBase.jl
A Basis is an AbstractSystem, so it is inspected with the standard ModelingToolkit accessors rather than DataDrivenDiffEq-specific ones. These are the accessors named in the AbstractBasis interface (see Developer API):
equations— the basis' symbolic equations.unknowns,parameters— its states and parameters.observed,get_observed— its observed equations.independent_variable,get_iv— its independent variable.
Owned and documented by ModelingToolkit. DataDrivenDiffEq adds methods for its own types; everything else in the AbstractSystem interface must be imported from ModelingToolkit directly.
Statistical interface — owned by StatsAPI.jl and StatsBase.jl
DataDrivenSolution and the algorithm result types are StatsAPI.StatisticalModels, so the quality of a recovered model is read off with the standard statistical accessors:
- Information criteria:
aic,aicc,bic - Fit quality:
rss,r2,loglikelihood,nullloglikelihood - Model size:
dof,nobs - Summary:
summarystats
aic, aicc, bic, rss, r2, loglikelihood, nullloglikelihood, dof and nobs are owned by StatsAPI; summarystats is owned by StatsBase. The methods DataDrivenDiffEq defines for them are listed under Solutions.
Collocation methods — owned by DataInterpolations.jl
A ContinuousDataDrivenProblem can derive its time derivatives by interpolation. Any of these can be wrapped by InterpolationMethod and passed as the collocation keyword:
LinearInterpolation(the default),ConstantInterpolation,QuadraticInterpolation,LagrangeInterpolationQuadraticSpline,CubicSpline,BSplineInterpolation,BSplineApproxCurvefit
Owned and documented by DataInterpolations. The rest of the DataInterpolations surface — the remaining interpolation types, the derivative and integral interfaces, and the caching options — must be imported from DataInterpolations directly. Curvefit uses CurveFit.jl's nonlinear least-squares algorithms, which DataDrivenDiffEq loads when it provides this reexport. DataDrivenDiffEq's own kernel-based collocation (EpanechnikovKernel, GaussianKernel, collocate_data, …) is documented under Utilities.
Data processing — owned by MLUtils.jl and StatsBase.jl
DataProcessing and DataNormalization (see Solvers) are thin wrappers over upstream types, and the wrapped names are reexported so they can be named at the call site:
splitobs,DataLoader— the train/test split and batching used byDataProcessing. Owned and documented by MLUtils.ZScoreTransform,UnitRangeTransform— the normalizations accepted byDataNormalization. Owned and documented by StatsBase.
Solving — owned by CommonSolve.jl
solve— the common solve entry point, owned by CommonSolve and shared across the SciML ecosystem.
Sublibraries
DataDrivenSR reexports the SymbolicRegression entry points needed to configure EQSearch; see that page. DataDrivenDMD, DataDrivenLux and DataDrivenSparse reexport nothing.
Keeping this page in sync
This list, the reexport export blocks at the bottom of src/DataDrivenDiffEq.jl, and the REEXPORTS tuple in test/qa/qa.jl are the same list in three places. test/qa/qa.jl checks that every approved name is actually reachable from using DataDrivenDiffEq.