1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//! Symbolic EML integration: ODE drivers and quadrature with exact symbolic Jacobians.
//!
//! All items in this module require the `symbolic` feature flag.
//!
//! ## Variable Conventions
//!
//! The two solvers use **different** variable index conventions — do not mix them:
//!
//! | Solver | `Var(0)` | `Var(1..)` |
//! |---------------------------------|----------|------------|
//! | [`solve_ivp_symbolic`] | time `t` | state `y[0], y[1], …` |
//! | [`quad_gauss_legendre_symbolic`]| `x` | (unused) |
//!
//! ## Example — BDF1 stiff ODE
//!
//! ```rust,ignore
//! use scirs2_integrate::eml::{solve_ivp_symbolic, SymbolicOdeError};
//! use scirs2_symbolic::eml::LoweredOp;
//! use scirs2_core::ndarray::arr1;
//! use std::sync::Arc;
//!
//! // x' = -1000·x (stiff decay)
//! // Var(0) = t, Var(1) = x
//! let rhs = vec![Arc::new(LoweredOp::Mul(
//! Box::new(LoweredOp::Const(-1000.0)),
//! Box::new(LoweredOp::Var(1)),
//! ))];
//! let result = solve_ivp_symbolic(&rhs, [0.0, 0.001], arr1(&[1.0]).view(),
//! 1e-4, 1e-6, 1e-8, 200).unwrap();
//! ```
pub use ;
pub use ;
pub use ;