Skip to main content

Crate semiflow

Crate semiflow 

Source
Expand description

§semiflow

CI Crates.io Docs.rs License DOI

Status: beta (0.15.0-beta). The API is stabilising toward 1.0; minor versions may still make breaking changes. Bug reports and feedback are welcome.

SemiFlow solves evolution equations ∂ₜu = Lu (heat, diffusion, Schrödinger, graph and manifold PDEs, …) by Chernoff approximation of operator semigroups: no matrix exponentials, no linear solves, a flat memory footprint. The core is a no_std + alloc Rust library with 3 runtime dependencies (num-traits, libm, num-complex); the same engines are available from Python, JavaScript/WebAssembly and C.

The method evaluates e^{tL}f by iterating an explicit step operator S(τ): (S(t/n))ⁿ f → e^{tL} f as n → ∞. Each step is an explicit stencil over a Vec-backed grid with reused scratch buffers, so steady-state evolution does not allocate.

Mathematical foundation: Theorem 6 of I. D. Remizov (2025), Vladikavkaz Math. J. 27(4), 124–135 (doi:10.46698/a3908-1212-5385-q).

Honest performance note. The primary measured advantage is memory frugality: a flat ~3 MB working set across the 1D/2D/3D families versus 50–418 MB for heavy frameworks. Wall-clock speed is not a general strength — for matched-accuracy PDE solving SemiFlow is slower than adaptive ODE solvers and spectral methods, and parallelism pays off only on large 3D grids. Two measured niches: tail-latency-sensitive pricing (Diffusion4thChernoff ≈ 41 ns p99.9 per tick) and L1-resident low-rank carriers (TtChernoff, ReverseChernoff). Treat memory and latency as measured properties of the concrete grid types, not guarantees of the traits. The 2026-10 overhaul (docs/perf/overhaul-v0_15.md) made the grid engines 2.6–39× faster bit-for-bit, the stiff Chebyshev graph action O(√(λt)) instead of O(λt) (559× on issue #16), ETDRK4 2.1× and the general Taylor action 2.1× faster; Richardson extrapolation (richardson=) raises any engine’s order by levels − 1. Head-to-head comparisons quoted in the user guide predate it.

§Install

[dependencies]
semiflow = "0.15.0-beta"

MSRV: Rust 1.81. The default build is #![no_std] + alloc with AVX2/NEON kernels (feature simd, scalar lanes elsewhere); std is needed only for parallel. See below.

§Quickstart

Solve ∂ₜu = ½·∂ₓₓu from u₀(x) = e^{-x²} to t = 1 and compare with the closed-form solution u(1,x) = 3^{-1/2}·e^{-x²/3}:

use semiflow::{ChernoffSemigroup, DiffusionChernoff, Grid1D, GridFn1D, State};

let grid = Grid1D::new(-10.0, 10.0, 1000).expect("valid grid");
let u0 = GridFn1D::from_fn(grid, |x| (-x * x).exp());

// L = a(x)·∂²ₓ with a ≡ ½ (a' = a'' = 0), bound ‖a‖ = ½.
let diffusion = DiffusionChernoff::new(|_| 0.5_f64, |_| 0.0, |_| 0.0, 0.5, grid);
let semigroup = ChernoffSemigroup::new(diffusion, 100).expect("n >= 1");
let u1 = semigroup.evolve(1.0, &u0).expect("evolve");

let exact = GridFn1D::from_fn(grid, |x| (-x * x / 3.0).exp() / 3.0_f64.sqrt());
let mut err = u1.clone();
err.axpy(-1.0, &exact);
assert!(err.norm_sup() < 1e-5, "sup-norm error {}", err.norm_sup());

More: Quickstart, User Guide and the runnable examples (cargo run -p semiflow --example heat_2d_demo).

§no_std

[dependencies]
semiflow = "0.15.0-beta"   # no_std + alloc, SIMD kernels

The crate is #![no_std] by default and needs only alloc; the std feature is needed only for parallel. What that means in practice:

  • Your binary provides a #[global_allocator] and a #[panic_handler], as for any no_std + alloc program (a std program already has both).
  • The target needs pointer-sized atomics (the engines share coefficient closures through alloc::sync::Arc): Cortex-M3/M4/M7/M33, RISC-V with the a extension, x86_64-unknown-none and similar work; thumbv6m does not.
  • SemiflowError implements Debug, Display and core::error::Error (the same trait as std::error::Error) in every build.
  • f32/f64 transcendentals come from the pure-Rust libm in every build, and the SIMD kernels use the same lane arithmetic with or without intrinsics, so std, no_std, simd and non-simd builds give bit-identical results on every CPU.
  • simd works without std (the intrinsics come from core::arch); parallel requires std.

This is verified on every pull request, not just type-checked:

CI jobWhat it proves
no-stdthe default and the featureless build for the host, thumbv7em-none-eabihf, thumbv7m-none-eabi, riscv32imac-unknown-none-elf, and at MSRV 1.81
no-std-testthe full semiflow test suite passes in the default (no_std) configuration
no-std-libmsemiflow-nostd-check — closed-form oracle checks plus per-scenario output digests: the default no_std build (the job fails if anything enables num-traits/std), the std build and its AVX2 lanes must all produce the committed bits
no-std-libm-neonthe same digests from the std build on aarch64 (NEON lanes)
no-std-qemuthe same checks and digests as a bare-metal #![no_main] binary on Cortex-M3 (soft float) and Cortex-M4F (hard float) under QEMU — see nostd-qemu

§Feature flags

FeatureDefaultEffect
simdyesAVX2 (x86_64) / NEON (aarch64) kernels via core::arch, scalar lanes elsewhere. Works in no_std. Results are bit-identical to a non-simd build.
stdnoLinks std. Needed only by parallel; math is libm either way, so results do not change. Without it the crate is no_std + alloc (the default).
parallelnoMulti-threaded apply for 1D kernels and 2D/3D compositions via std::thread::scope; bit-identical across thread counts. Implies std; not for wasm32.
linear-interpnoEnables InterpKind::Linear grid sampling (otherwise it returns SemiflowError::Unsupported).
s3-pocnoExperimental S³ evolvers with a proven-boundary API (ADR-0169).
slow-testsnoInternal: enables the long convergence gates. Not needed by users.
diff-scipynoInternal: SciPy differential test (needs Python). Not needed by users.
tracking-allocnoInternal: allocation counting in the latency_tail example. Not needed by users.

§Engine catalogue

§1D Chernoff functions

TypeOrderDescription
DiffusionChernoff25-point formula for a(x)∂²_x
Diffusion4thChernoff44th-order spatial diffusion
Diffusion6thChernoff66th-order spatial diffusion
Diffusion4thZeta4Chernoff4ζ⁴ Richardson
Diffusion6thZeta6Chernoff6ζ⁶ nested-Richardson
Diffusion8thZeta8Chernoff8ζ⁸ Chebyshev M=64
DiffusionExpmvChernoff<F>—Al-Mohy–Higham expmv action
TruncatedExpDiffusionChernoff2Truncated-exponential diffusion
TruncatedExp4thDiffusionChernoff4Truncated-exponential 4th-order
DriftReactionChernoffexactCharacteristic-flow formula for b(x)∂_x + c(x)
DriftReactionZeta4Chernoff4ζ⁴ WITH drift via Richardson
ShiftChernoff1D2Formula (6) of Theorem 6, Remizov 2025

§Compositions

TypeDescription
StrangSplit<D, R>Strang 2nd-order splitting: D(τ/2) ∘ R(τ) ∘ D(τ/2)
AxisLift<C>Lift a 1D ChernoffFunction to a 2D grid row or column

§2D tensor-product

TypeDescription
Strang2D<X, Y>Palindromic Strang: Sx(τ/2) ∘ Sy(τ) ∘ Sx(τ/2), global order 2
NonSeparable2DChernoffNon-separable isotropic 2D operator
NonSeparable2DAnisotropicChernoffNon-separable anisotropic 2D operator

§3D tensor-product

TypeDescription
AxisLift3D<C>Lift a 1D ChernoffFunction to a 3D grid along Axis::X/Y/Z
Strang3D<X, Y, Z>3D palindromic Strang

§Adaptive

TypeDescription
AdaptivePI<C>PI step-size controller wrapping any ChernoffFunction

§Boundary conditions

TypeDescription
BoundaryPolicy::Dirichlet { value }Fixed-value stencil BC
BoundaryPolicy::NeumannClamp-to-boundary stencil BC
BoundaryPolicy::Robin { alpha, beta }Robin stencil BC
BoundaryPolicy::OddReflectOdd-image stencil BC (used by DirichletHeat2ndChernoff)
KillingChernoff<C, R, F>Operator-level Dirichlet via Feynman-Kac killing
Killing2ndChernoff<C, K, F>Order-2 soft-killing e^{-τκ/2}·C(τ)·e^{-τκ/2}
ReflectedHeatChernoff<C, R, F>Neumann via Walsh 1986 image method
DirichletHeat2ndChernoff<C, R, F>Order-2 absorbing wall via odd-image method (math §21.9)
ObstacleChernoff<C, O, F>Projective-splitting obstacle / variational-inequality evolver

§Resolvent and nonautonomous

TypeDescription
LaplaceChernoffResolvent<C, F>(λI − A)⁻¹ g via Gauss-Laguerre 32-pt quadrature — unique to Remizov
HowlandLift<C, F>Nonautonomous Howland lift on L²([0,T], X)
HdrSnapshot<F>NIST nearest-rank percentile library (no_std + alloc)

§Riemannian manifold

TypeDescription
ManifoldChernoff<M, F>Curvature-corrected Gaussian on T_xM; order 1 (base) or 2 (with R/12)
Torus<F, D>Flat torus backend
Sphere2<F>Round 2-sphere backend
Hyperbolic2<F>Poincaré disk backend (also the SABR volatility manifold)
FubiniStudyCp1Kähler CP¹ / Fubini-Study backend

§High-dimensional and sparse-grid

TypeDescription
AnisotropicShiftChernoffND<F, D>d-D Gaussian shift via Gauss-Hermite tensor quadrature
AnisotropicShiftZeta2NDOrder-2 ζ²-correction variant
AnisotropicShiftAdaptiveQAdaptive per-point GH quadrature (41% fewer nodes/axis)
SmolyakGridND<F, const D>Smolyak sparse-grid backend for D ≥ 5

§Matrix-valued operators

TypeDescription
MatrixDiffusionChernoff<F, M>Coupled M-component 1D diffusion; Padé[13/13] expm
MatrixDiffusionChernoff2D<F, M>Palindromic Strang 2D for M-component diffusion
MatrixDiffusionChernoff3D<F, M>Same for 3D
MatrixDiffusionChernoffComplex<F, M>Complex-valued Padé[13/13] coupled diffusion

§Quantum graphs

TypeDescription
QuantumGraphHeatChernoff<F>Heat on quantum graphs with Kirchhoff vertex condition
QuantumSchrödingerChernoff<C>Complex Schrödinger on quantum graphs

§Reverse-mode AD

TypeDescription
ReverseChernoff<F>Reverse-mode AD over (F_θ(τ))ⁿ u₀ via binomial checkpointing
CheckpointScheduleO(√n) default schedule (Griewank-Walther)
RegionMapDoF-aligned region partition enabling K>1 per-region parameter sensitivity

Scope: constant-a DiffusionChernoff<F> only. Multi-parameter (K>1) sensitivity via ReverseChernoff::with_region_map. Variable-coefficient kernels are deferred.

§Tensor-train carrier

TypeDescription
TtChernoff<F>TT-Chernoff evolver; storage O(d·n·r²)
TtState<F>Tensor-train state u(i₁,…,i_d) = G₁[i₁]·…·G_d[i_d]
VarCoefTt<F>Variable-coefficient TT carrier for separable diagonal a_j(x_j)

Scope: linear diagonal-A Gaussian class (TtChernoff); separable diagonal variable coefficients (VarCoefTt). Non-separable variable coefficients and off-diagonal A are research-track. VarCoefTt::new returns SemiflowError::VarCoefOutOfClass when inputs fall outside the separable diagonal class.

§Gridless / particle-ensemble

TypeDescription
GridlessChernoff<F, const D>Particle-ensemble Chernoff; implements ChernoffFunction<F>
MeasureState<F, D>Particle-ensemble state; exposes first_moment, variance, variance_per_axis diagnostics (math §38.12)
ParticleReductionParticle cap policy: WeightedVoronoi { cap } or GaussianBackground

§Schrödinger, graph and quantum-graph operators

TypeDescription
SchrödingerChernoffComplex / SchrodingerChernoffSchrödinger equation on a native complex (or real-pair) carrier
GraphHeatChernoffHeat semigroup of a graph Laplacian
GraphKrylovChernoff, graph_expmv_frechetDepth-independent e^{−tL}·v (Chebyshev / Lanczos) and its all-parameter Fréchet gradient (graded-mesh Duhamel quadrature: quadrature error independent of λ_max·t; f64 conditioning floor ≈ (r+n)·u·ρ̄t; ImplicitEuler path keeps its O(Δt) bias)
QuantumGraphHeatChernoff / QuantumSchrödingerChernoffMetric graphs with Kirchhoff vertex conditions

§Conservative, stiff and semilinear problems

TypeDescription
ConservativeDiffusionChernoff, assemble_conservative_csr_1d, assemble_conservative_csr_ndDivergence-form ∂ₓ(k(x)∂ₓu) with harmonic-mean faces (sharp material interfaces, optional contact resistance)
MultilayerStack, multilayer_evolve, MassWeightedConservativeChernoffStiff multilayer conduction in one depth-flat Krylov action
SymmetricOperator, MassKOperator, EntrySensitivity, mass_lumped_evolveExternally assembled symmetric PSD sparse operators (FEM), the (M, K) problem without forming M⁻¹K, entry-wise gradients
general_operator::GeneralOperatorPossibly non-symmetric CSR operators via Taylor expmv or adaptive Arnoldi (expmv_krylov)
SpdResolvent, SpdSolver(λM + A)⁻¹b: exact O(N) tridiagonal LDLᵀ, PCG with IC(0) or Jacobi; factor once, solve many (steady states, implicit steps)
RationalKrylov, RationalKrylovChernoff, rational_krylov_expmvShift-and-invert Krylov e^{−tM⁻¹A}v for very stiff SPD operators: solve count independent of λ_max t
phi_action, phi_action_batched, phi_combination, Etdrk4, NonlinearitySemilinear ∂ₜu = Lu + N(u) by exponential time differencing (order 4)
phi_combination_krylov, PhiSolver, KrylovPhiOptionsAdaptive Arnoldi φ-actions for non-symmetric generators (Etdrk4::with_phi_solver): 33× fewer generator applications than Taylor at τ‖G‖ = 4·10³
ReactionDiffusion, Species, ReactionSolver, RosenbrockOptionsMulti-species ∂ₜu = D Δu + f(t, x, u) by Strang splitting on any grid engine; stiff kinetics by adaptive L-stable Rosenbrock (ROS2)
CrossDiffusionConstant K×K cross-diffusion matrix D by exact modal splitting (D = PΛP⁻¹ verified; complex, negative or defective D rejected), with ReactionDiffusion::with_cross_diffusion
SubordinatedChernoffBochner–Phillips subordination of any engine
HypoellipticChernoffKolmogorov, Heisenberg and Engel (step-2/3 Carnot) operators

§Executor

ChernoffSemigroup<C, S> — wraps a ChernoffFunction and a step count; call .evolve(t, &f) to compute (S(t/n))ⁿ f.

§Examples

ExampleDescription
heat_2d_demo.rs2D tensor heat equation (Gaussian oracle, convergence table)
strang_advdiff_demo.rsStrang splitting for 1D advection-diffusion
cev_european_call.rsCEV European option pricing vs Schroder (1989) closed form
boundary_demo.rsBoundary policy showcase (Dirichlet, Neumann, periodic)
latency_tail.rsHFT-style p99.9 latency benchmark
resolvent_perf.rsLaplaceChernoffResolvent L-gate bench harness
heston_pricer.rsHeston ρ→0 pricer via palindromic Strang
sabr_pricer.rsSABR-on-H² via ManifoldChernoff<Hyperbolic2>
graph_par_speedup.rsParallel graph-heat speedup (--features parallel)
rough_heston_pricer.rsOracle-validated risk-neutral rough-Heston pricer (--rate/--price); honest scope: solver of a 4-factor Markov approximation, not validated vs true rough-Heston
cargo run -p semiflow --example heat_2d_demo

§Bindings

LanguagePackageNotes
Rustsemiflow (docs.rs)The full engine catalogue; no_std + alloc
Pythonsemiflow-pde90 classes and the functions version(), heisenberg_heat_kernel(), sample_gridfn2d(), edge_weight_grad(), edge_weight_grad_batched(), graph_expmv_frechet(), symmetric_op_expmv_frechet(), assemble_conservative_csr_1d(), mass_lumped_evolve(), phi_action(), phi_action_batched(), phi_combination(), shift1d_coeff_grad(), richardson_weights(); NumPy in/out; complete .pyi stubs; see the PyPI page
JavaScript / WASM@semiflow/wasmLite build on npm; the heavy-grid engines need a --features full build; see the npm page
C / C++semiflow-ffiextern "C" ABI with catch_unwind on every entry point; header semiflow.h

The bindings mirror the user-facing engines, not the internal composition types (AxisLift, StrangSplit, … are Rust-side building blocks). Variable coefficients cross the language boundary as pre-sampled arrays (evaluated in Rust, no call back into the host language during evolve); some classes also accept a host-language callback (e.g. Heat1D.with_a_function in Python, Heat1D.withAFunction in JS, smf_state_new_with_closure in C). The Bindings guide has side-by-side examples.

§Documentation

If you want to…Read
Get startedQuickstart · User Guide · Install
Use a bindingBindings guide (C / Python / WASM)
Browse the Rust APIdocs.rs/semiflow
See worked examplescrates/semiflow/examples
Understand accuracy and stability policyPrecision policy · API stability
Read design decisionsArchitecture Decision Records
Follow changesCHANGELOG · GitHub Releases

§Accuracy and design

Every numerical claim is gated in CI against a closed-form or high-order reference oracle (convergence-order and sup-norm tests). Design principles: no_std + alloc core; 3 runtime dependencies; SIMD hot paths isolated to src/simd/ (AVX2 on x86_64, NEON on aarch64, scalar fallback elsewhere); bit-reproducible parallelism across thread counts; no unsafe in the math kernels. Builds with and without simd agree to rounding but not always bit for bit, so golden files are tied to one configuration.

§How to cite

If you use SemiFlow in academic work, cite both the software and the theorem.

@software{volkov2026semiflow,
  author  = {Volkov, Ilia},
  title   = {{SemiFlow}: {Chernoff} Approximation of Operator Semigroups},
  year    = {2026},
  version = {0.15.0-beta},
  doi     = {10.5281/zenodo.20837851},
  url     = {https://doi.org/10.5281/zenodo.20837851}
}

@article{Remizov2025,
  author  = {I. D. Remizov},
  title   = {Chernoff Approximations of the Solution of Linear ODE with Variable Coefficients},
  journal = {Vladikavkaz Math. J.},
  volume  = {27},
  number  = {4},
  pages   = {124--135},
  year    = {2025},
  doi     = {10.46698/a3908-1212-5385-q}
}

The concept DOI 10.5281/zenodo.20837851 always resolves to the latest version; CITATION.cff has the full entry (GitHub’s “Cite this repository” reads it).

§License

Dual-licensed under MIT or Apache-2.0, at your option.

§Author, contributing, security

SemiFlow is created and maintained by Ilia Volkov. See CONTRIBUTING.md and CODE_OF_CONDUCT.md. Report vulnerabilities privately as described in SECURITY.md — not in public issues.

Re-exports§

pub use crate::adaptive::AdaptiveOutcome;
pub use crate::adaptive::AdaptivePI;
pub use crate::adjoint::AdjointApply;
pub use crate::adjoint::AdjointChernoff;
pub use crate::adjoint_fp::AdjointFokkerPlanckChernoff;
pub use crate::adjoint_fp::Adjointable;
pub use crate::adjoint_fp::MeasureState;
pub use crate::approximation::assert_in_subspace;
pub use crate::approximation::ApproximationSubspace;
pub use crate::approximation::LadderRung;
pub use crate::axis::Axis;
pub use crate::axis::AxisLift;
pub use crate::carnot_complex::ComplexTripleJump;
pub use crate::carnot_complex::CplxGridFn5;
pub use crate::carnot_complex::GAMMA_STAR;
pub use crate::carnot_stepk::Filiform5X1;
pub use crate::carnot_stepk::Filiform5X2;
pub use crate::chernoff::ApplyChernoffExt;
pub use crate::chernoff::ChernoffFunction;
pub use crate::chernoff::ChernoffSemigroup;
pub use crate::chernoff::Evolver;
pub use crate::chernoff::Growth;
pub use crate::complex::SemiflowComplex;
pub use crate::conservative::steady_state_dirichlet_1d;
pub use crate::conservative::ConservativeDiffusionChernoff;
pub use crate::conservative_assemble::assemble_conservative_csr_1d;
pub use crate::conservative_assemble::assemble_conservative_csr_nd;
pub use crate::controller::ClassicalPI;
pub use crate::controller::H211bFilter;
pub use crate::controller::StepController;
pub use crate::cross_diffusion::CrossDiffusion;
pub use crate::diffusion::DiffusionChernoff;
pub use crate::diffusion4::Diffusion4thChernoff;
pub use crate::diffusion4_zeta4::Diffusion4thZeta4Chernoff;
pub use crate::diffusion6::Diffusion6thChernoff;
pub use crate::diffusion6_zeta6::Diffusion6thZeta6Chernoff;
pub use crate::diffusion8_zeta8::Diffusion8thZeta8Chernoff;
pub use crate::drift_reaction::DriftReactionChernoff;
pub use crate::drift_reaction_zeta4::DriftReactionZeta4Chernoff;
pub use crate::dual::Dual;
pub use crate::entry_sensitivity::EntrySensitivity;
pub use crate::error::SemiflowError;
pub use crate::etdrk4::Etdrk4;
pub use crate::expmv::DiffusionExpmvChernoff;
pub use crate::float::SemiflowFloat;
pub use crate::generator_action::CsrGenerator;
pub use crate::generator_action::DivFormGenerator;
pub use crate::generator_action::GeneratorAction;
pub use crate::generator_action::NegLaplacianGenerator;
pub use crate::graph::Graph;
pub use crate::graph::Laplacian;
pub use crate::graph::LaplacianKind;
pub use crate::graph_adjoint_presampled::fill_abscissa_times;
pub use crate::graph_adjoint_presampled::PreSampledLaplacianSeq;
pub use crate::graph_adjoint_presampled::PreSampledMagnusAdj;
pub use crate::graph_adjoint_presampled::PreSampledVarCoefAdj;
pub use crate::graph_frechet::graph_expmv_frechet;
pub use crate::graph_frechet_mesh::graph_expmv_frechet_plan;
pub use crate::graph_frechet_mesh::FrechetPlan;
pub use crate::graph_heat::GraphHeatChernoff;
pub use crate::graph_heat4::GraphHeat4thChernoff;
pub use crate::graph_heat6::GraphHeat6thChernoff;
pub use crate::graph_krylov::dense_graph_expmv_ref;
pub use crate::graph_krylov::graph_expmv_krylov;
pub use crate::graph_krylov::graph_expmv_matvec_count;
pub use crate::graph_krylov::GraphKrylovChernoff;
pub use crate::graph_krylov::KrylovPath;
pub use crate::graph_krylov::MAX_DENSE_N;
pub use crate::graph_sensitivity::adjoint_state_gradient;
pub use crate::graph_sensitivity::apply_edge_weight_deriv;
pub use crate::graph_sensitivity::magnus_step_jvp_into;
pub use crate::graph_sensitivity::EdgeWeightSensitivity;
pub use crate::graph_sensitivity::GeneratorSensitivity;
pub use crate::graph_sensitivity::NodeTimescaleSensitivity;
pub use crate::graph_signal::CsrRowIter;
pub use crate::graph_signal::GraphSignal;
pub use crate::graph_traj::GraphTraj;
pub use crate::graph_traj::SegmentWeightFn;
pub use crate::graph_traj::MAX_GRAPH_TRAJ_SEGMENTS;
pub use crate::graph_var_coef::VarCoefGraphHeatChernoff;
pub use crate::grid::BoundaryPolicy;
pub use crate::grid::Grid1D;
pub use crate::grid::InterpKind;
pub use crate::grid::OobPolicy;
pub use crate::grid2d::Grid2D;
pub use crate::grid3d::Grid3D;
pub use crate::grid_fn::GridFn1D;
pub use crate::grid_fn2d::GridFn2D;
pub use crate::grid_fn3d::GridFn3D;
pub use crate::grid_nd::GridFnND;
pub use crate::grid_nd::GridND;
pub use crate::gridless::GridlessChernoff;
pub use crate::gridless::ParticleReduction;
pub use crate::hdr::HdrSnapshot;
pub use crate::heisenberg_kernel::heisenberg_heat_kernel;
pub use crate::hormander::HeisenbergGroup;
pub use crate::hormander::HeisenbergX;
pub use crate::hormander::HeisenbergY;
pub use crate::hormander::HypoellipticChernoff;
pub use crate::hormander::KolmogorovDiffusionX1;
pub use crate::hormander::KolmogorovDriftX0;
pub use crate::hormander::KolmogorovPhaseSpace;
pub use crate::hormander::VectorField;
pub use crate::hormander_engel::EngelX1;
pub use crate::hormander_engel::EngelX2;
pub use crate::howland::HowlandLift;
pub use crate::howland::HowlandState;
pub use crate::howland::TimedChernoffFunction;
pub use crate::killed_dirichlet::KilledDirichletChernoff;
pub use crate::killing::BallRegion;
pub use crate::killing::BoxRegion;
pub use crate::killing::KillingChernoff;
pub use crate::killing::KillingRegion;
pub use crate::killing_order2::DirichletHeat2ndChernoff;
pub use crate::killing_soft::ClosureKillingRate;
pub use crate::killing_soft::Killing2ndChernoff;
pub use crate::killing_soft::KillingRate;
pub use crate::magnus6_graph::MagnusGraphHeat6thChernoff;
pub use crate::magnus_graph::LaplacianAtTime;
pub use crate::magnus_graph::MagnusGraphHeatChernoff;
pub use crate::manifold::BoundedGeometryManifold;
pub use crate::manifold::Hyperbolic2;
pub use crate::manifold::Sphere2;
pub use crate::manifold::Torus;
pub use crate::manifold_chernoff::ManifoldChernoff;
pub use crate::manifold_kahler::FubiniStudyCp1;
pub use crate::mass_operator::dense_massk_expmv_ref;
pub use crate::mass_operator::mass_lumped_evolve;
pub use crate::mass_operator::MassKOperator;
pub use crate::mass_operator::TriangularFactor;
pub use crate::matrix_2d3d::MatrixDiffusionChernoff2D;
pub use crate::matrix_2d3d::MatrixDiffusionChernoff3D;
pub use crate::matrix_2d3d::MatrixGridFn2D;
pub use crate::matrix_2d3d::MatrixGridFn3D;
pub use crate::matrix_system::MatrixDiffusionChernoff;
pub use crate::matrix_system::MatrixGridFn1D;
pub use crate::matrix_system_complex::MatrixDiffusionChernoffComplex;
pub use crate::matrix_system_complex::MatrixGridFnComplex1D;
pub use crate::multilayer::multilayer_evolve;
pub use crate::multilayer::Layer;
pub use crate::multilayer::MassWeightedConservativeChernoff;
pub use crate::multilayer::MultilayerStack;
pub use crate::nonlinearity::AllenCahn;
pub use crate::nonlinearity::Nonlinearity;
pub use crate::nonlinearity::NonlinearityDiff;
pub use crate::nonseparable2d::NonSeparable2DChernoff;
pub use crate::nonseparable2d_aniso::NonSeparable2DAnisotropicChernoff;
pub use crate::nonseparable_mixed::NonSeparableMixedChernoff;
pub use crate::obstacle::ClosureObstacle;
pub use crate::obstacle::ConstantObstacle;
pub use crate::obstacle::Obstacle;
pub use crate::obstacle::ObstacleChernoff;
pub use crate::obstacle_nd::ObstacleChernoffND;
pub use crate::phi_action::dense_phi_aug_ref;
pub use crate::phi_action::phi_action;
pub use crate::phi_action::phi_action_batched;
pub use crate::phi_action::phi_combination;
pub use crate::phi_action::phi_cost_probe;
pub use crate::phi_action::PHI_MAX;
pub use crate::phi_krylov::expmv_krylov;
pub use crate::phi_krylov::phi_combination_krylov;
pub use crate::phi_krylov::KrylovPhiOptions;
pub use crate::phi_krylov::KrylovPhiReport;
pub use crate::phi_krylov::PhiSolver;
pub use crate::phi_shift::phi_sweep_probe;
pub use crate::point_eval::sample_gridfn2d;
pub use crate::point_eval::PointEval;
pub use crate::quantum_graph::KirchhoffVertex;
pub use crate::quantum_graph::QuantumGraph;
pub use crate::quantum_graph::QuantumGraphHeatChernoff;
pub use crate::quantum_graph::QuantumGraphSignal;
pub use crate::quantum_schrodinger::QuantumGraphComplexSignal;
pub use crate::quantum_schrodinger::QuantumSchrödingerChernoff;
pub use crate::rational_krylov::rational_krylov_expmv;
pub use crate::rational_krylov::RationalKrylov;
pub use crate::rational_krylov::RationalKrylovChernoff;
pub use crate::rational_krylov::RationalOptions;
pub use crate::rational_krylov::RationalReport;
pub use crate::reaction::AllenCahnReaction;
pub use crate::reaction::Brusselator;
pub use crate::reaction::FisherKpp;
pub use crate::reaction::FitzHughNagumo;
pub use crate::reaction::FnReaction;
pub use crate::reaction::GrayScott;
pub use crate::reaction::Kinetics;
pub use crate::reaction::LinearReaction;
pub use crate::reaction::Nagumo;
pub use crate::reaction_diffusion::NodalField;
pub use crate::reaction_diffusion::ReactionDiffusion;
pub use crate::reaction_diffusion::Species;
pub use crate::reaction_diffusion::SpeciesEngine;
pub use crate::reaction_stiff::ReactionSolver;
pub use crate::reaction_stiff::RosenbrockOptions;
pub use crate::reflection::HalfSpaceRegion;
pub use crate::reflection::ReflectedHeatChernoff;
pub use crate::reflection::ReflectingRegion;
pub use crate::resolvent::LaplaceChernoffResolvent;
pub use crate::resolvent::LaplaceChernoffResolventResidual;
pub use crate::resolvent::LaplaceQuadrature;
pub use crate::resolvent::Sampleable;
pub use crate::resolvent_complex::EvalComplex;
pub use crate::resolvent_jump::ResolventJumpChernoff;
pub use crate::resolvent_jump_nd::ResolventJumpChernoff2D;
pub use crate::resolvent_jump_nd::ResolventJumpChernoff3D;
pub use crate::reverse_ad::forward_with_checkpoints;
pub use crate::reverse_ad::recompute_segment;
pub use crate::reverse_ad::step_jacobian_col;
pub use crate::reverse_ad::CheckpointSchedule;
pub use crate::reverse_ad::ReverseChernoff;
pub use crate::reverse_ad::TransposeApply;
pub use crate::reverse_region::RegionMap;
pub use crate::richardson::extrapolate_into;
pub use crate::richardson::richardson_weights;
pub use crate::richardson::StepIntegrator;
pub use crate::richardson::MAX_RICHARDSON_LEVELS;
pub use crate::robin::HalfSpaceRobin;
pub use crate::robin::RobinHeatChernoff;
pub use crate::robin::RobinRegion;
pub use crate::schrodinger::SchrodingerChernoff;
pub use crate::schrodinger::SchrodingerState;
pub use crate::schrodinger_complex::SchrödingerChernoffComplex;
pub use crate::schrodinger_complex_state::GridFnComplex1D;
pub use crate::scratch::ScratchPool;
pub use crate::scratch::ScratchVec;
pub use crate::shift1d::ShiftChernoff1D;
pub use crate::shift_nd::AnisotropicShiftChernoffND;
pub use crate::shift_nd::GaussHermiteTensor;
pub use crate::shift_nd::SquareMatrix;
pub use crate::shift_nd_adaptive::AnisotropicShiftAdaptiveQ;
pub use crate::shift_nd_zeta2::AnisotropicShiftZeta2ND;
pub use crate::smolyak::SmolyakGridND;
pub use crate::spd_resolvent::Precond;
pub use crate::spd_resolvent::ResolventMethod;
pub use crate::spd_resolvent::SolveReport;
pub use crate::spd_resolvent::SpdResolvent;
pub use crate::spd_resolvent::SpdSolver;
pub use crate::state::Discrete;
pub use crate::state::HilbertState;
pub use crate::state::State;
pub use crate::strang::StrangSplit;
pub use crate::strang2d::Strang2D;
pub use crate::strang3d::Strang3D;
pub use crate::strang3d_axislift::AxisLift3D;
pub use crate::strang_graph::StrangSplitGraph;
pub use crate::subordinated::GammaSubordinator;
pub use crate::subordinated::InverseGaussianSubordinator;
pub use crate::subordinated::LevySubordinator;
pub use crate::subordinated::StableSubordinator;
pub use crate::subordinated::SubordinatedChernoff;
pub use crate::symmetric_operator::dense_csr_expmv_ref;
pub use crate::symmetric_operator::SymmetricLinearOp;
pub use crate::symmetric_operator::SymmetricOperator;
pub use crate::truncated_exp::TruncatedExpDiffusionChernoff;
pub use crate::truncated_exp4::TruncatedExp4WithCache;
pub use crate::truncated_exp4::TruncatedExp4thDiffusionChernoff;
pub use crate::tt_chernoff::TtChernoff;
pub use crate::tt_chernoff::TtState;
pub use crate::tt_coupled::CoupledTtChernoff;
pub use crate::tt_coupled::CouplingTopology;
pub use crate::tt_varcoef::VarCoefTt;
pub use crate::varcoef_magnus_graph::compute_rho_bar;
pub use crate::varcoef_magnus_graph::VarCoefMagnusGraphHeatChernoff;
pub use crate::varcoef_magnus_graph::WeightAtTime;
pub use crate::wentzell::DynamicWentzellChernoff;
pub use crate::wentzell::HalfSpaceWentzell;
pub use crate::wentzell::WentzellRegion;
pub use crate::tt_dense_coupling_api::S3DenseCouplingEvolver;s3-poc
pub use crate::tt_drift_spectral_api::S3DriftSpectralEvolver;s3-poc
pub use crate::tt_nonlinear_spectral::Reaction;s3-poc
pub use crate::tt_nonlinear_spectral_api::S3BurgersColeHopf;s3-poc
pub use crate::tt_nonlinear_spectral_api::S3ReactionDiffusion;s3-poc
pub use crate::tt_nonsep_varcoef::CoefRole;s3-poc
pub use crate::tt_nonsep_varcoef::CpCoef;s3-poc
pub use crate::tt_nonsep_varcoef::CpTerm;s3-poc
pub use crate::tt_nonsep_varcoef_api::S3NonSepVarCoefEvolver;s3-poc
pub use crate::tt_varcoef_spectral::AxisCoef;s3-poc
pub use crate::tt_varcoef_spectral::S3VarCoefEvolver;s3-poc

Modules§

adaptive
AdaptivePI — generic adaptive PI integrator (Wave 4, ADR-0044).
adjoint
Adjoint (backward) semigroup wrapper for any ChernoffFunction<F> whose state implements HilbertState<F>.
adjoint_fp
Adjoint Fokker-Planck Chernoff on M(ℝ^D), weak-* topology (ADR-0107 AMD1, §38).
approximation
ApproximationSubspace<const K, F> — opt-in marker super-trait (v3.0 B1, ADR-0073). LadderRung<const K, F> — sealed super-trait for ζ-ladder rungs (v5.0 A.6, ADR-0100).
axis
Axis discriminator and AxisLift per-axis adapter.
boundary
Boundary policies, hit records, and index/value dispatch helpers.
carnot_complex
Complex-time order-4 Carnot Chernoff via the complex triple-jump (ADR-0136 Amendment 2 STRONG-GO, math.md §28.bis.8, v8.0.0 F4).
carnot_stepk
Step-4 filiform Carnot group Chernoff approximation (ADR-0136 Amendment 1, math.md §28.bis.7, v8.0.0 F4 order-2 real baseline).
chernoff
Core Chernoff abstraction: ChernoffFunction trait and Evolver executor.
complex
v4.0 B6 — SemiflowComplex trait (ADR-0079, math.md §30.2).
conservative
ConservativeDiffusionChernoff — order-2 conservative (FV divergence-form) variable-coefficient diffusion (ADR-0187 D2, §56).
conservative_assemble
Harmonic-mean face assembler → SymmetricOperator<F> (ADR-0187 D1, §56.1–56.2).
controller
Step-size controllers for crate::AdaptivePI (Wave 4, ADR-0044).
cross_diffusion
Cross-diffusion with a constant matrix: ∂ₜu = DΔu + f(t, x, u) (ADR-0213, math §70).
diffusion
DiffusionChernoff — ζ-A Chernoff for A_self = ∂_x(a(x)·∂_x) (v0.3.0, ADR-0008).
diffusion4
Diffusion4thChernoff — ζ⁴ Chernoff for A_self = ∂_x(a(x)·∂_x) (v0.6.0, ADR-0013).
diffusion6
Diffusion6thChernoff — ζ⁶ Chernoff for A_self = ∂_x(a(x)·∂_x) (v0.7.0, ADR-0015).
diffusion4_zeta4
Diffusion4thZeta4Chernoff — order-4-temporal ζ⁴ kernel (ADR-0086 Path β resolution).
diffusion6_zeta6
Diffusion6thZeta6Chernoff — order-6-temporal ζ⁶ kernel (ADR-0088 Wave I, ADR-0086 Path β-ladder rung K=3).
diffusion8_zeta8
Diffusion8thZeta8Chernoff — order-8-temporal ζ⁸ kernel (ADR-0088 Wave II, ADR-0090).
drift_reaction
DriftReactionChernoff — RK2 characteristic-flow Chernoff for B = b(x)∂_x + c(x) (v0.2.2, ADR-0006 Amendment 5, math.md §9.3).
drift_reaction_zeta4
DriftReactionZeta4Chernoff — order-4-temporal ζ⁴ sibling for L = a(x)∂ₓₓ + b(x)∂ₓ + c(x) (ADR-0131, math.md §27.7-bis, v7.0.0).
dual
Dual<F> — forward-mode dual-number scalar field for automatic differentiation.
entry_sensitivity
Fréchet sensitivity w.r.t. individual CSR entries of a symmetric operator (ADR-0186, §55.5).
error
Error taxonomy for semiflow.
etdrk4
ETDRK4 exponential time-differencing driver (ADR-0189 §D2).
expmv
DiffusionExpmvChernoff — tolerance-driven e^{τA}·v via Al-Mohy & Higham (2011) expmv action kernel (ADR-0121, math.md §45).
float
Sealed scalar-float trait used throughout semiflow.
general_operator
GeneralOperator — externally-assembled possibly non-symmetric CSR operator, and its scaled-truncated-Taylor action (ADR-0195, Issue #24).
generator_action
GeneratorAction<F> — minimal adapter trait over linear PDE generators (ADR-0189 §58.1).
graph
Frozen sparse weighted graph (Graph<F>) and graph Laplacian (Laplacian<F>) in hand-rolled CSR layout (ADR-0048, §1/§3).
graph_adjoint_presampled
Pre-sampled time-grid path for graph state-adjoint (ADR-0180).
graph_batched
Batched multi-channel evolve for graph heat kernels (ADR-0184, Issue #10). [C, N] channel-major layout; 0-ULP vs serial (D5); hoisted GL₄/GL₆/VC samples.
graph_frechet
graph_expmv_frechet — VJP gradient via the exact Duhamel integral (ADR-0185, ADR-0203).
graph_heat
Graph heat Chernoff kernels: order-1 (leading) and order-2 (ζ-A Taylor).
graph_heat4
Order-4 graph heat Chernoff via Padé[0,4] operator Taylor truncation.
graph_heat6
Order-6 graph heat Chernoff via operator-Taylor truncation.
graph_krylov
Depth-independent graph-semigroup action e^{-tL_G}·v via Krylov methods.
graph_sensitivity
Adjoint-state parameter-sensitivity for graph / Magnus kernels (Issue #1, ADR-0115).
graph_signal
GraphSignal<F> — dense Vec<F>-backed function on a graph’s node set.
graph_traj
Piecewise-smooth graph trajectory data structure.
graph_var_coef
Variable-coefficient graph heat Chernoff with ζ-A τ²-correction.
grid
Uniform 1-D grid and sub-grid interpolation.
grid2d
Grid2D — rectangular tensor-product geometry for the 2D extension.
grid3d
Grid3D — cuboid tensor-product geometry for the 3D extension.
grid_batched
Batched multi-channel evolve for 1-D grid kernels (ADR-0194, Issue #19).
grid_fn
GridFn1D — a function sampled on a Grid1D, implementing State.
grid_fn2d
GridFn2D — a function sampled on a Grid2D, implementing State.
grid_fn3d
GridFn3D — a function sampled on a Grid3D, implementing State.
grid_nd
GridND and GridFnND — d-dimensional tensor-product grid (v4.0 Wave C).
gridless
Gridless particle-ensemble Chernoff evolver — GridlessChernoff (v9.0.0, ADR-0155).
hdr
HDR percentile snapshot for L-gate latency harness.
heisenberg_kernel
Heisenberg group H₁ heat kernel oracle via Gaveau-Hulanicki integral form.
hormander
v3.1 A3 — Hörmander hypoelliptic Chernoff approximation (math.md §28, ADR-0077).
hormander_engel
Engel step-3 filiform Carnot group Chernoff approximation (ADR-0095, math.md §28.bis).
howland
B2 — Howland Nonautonomous Lift (math.md §23, ADR-0070).
killed_dirichlet
Order-2 hard absorbing wall via the killed Dirichlet generator Cayley map.
killing
Operator-level Dirichlet via Feynman–Kac killing (Butko 2018).
killing_order2
§21.9 — Order-2 hard-wall Dirichlet via the ODD (antisymmetric) image method (ADR-0176).
killing_soft
Killing2ndChernoff<C, K, F> — order-2 soft killing via symmetric Strang split.
magnus6_graph
Sixth-order Magnus expansion for time-dependent graph heat: ∂_t u = −L_G(t) u on a fixed-topology weighted graph.
magnus_graph
Fourth-order Magnus expansion for time-dependent graph heat: ∂_t u = −L_G(t) u on a fixed-topology weighted graph.
magnus_graph_adjoint
Graph state-adjoint for the truncated Magnus K=4 map (Issue #2, ADR-0115).
manifold
A4 — Riemannian Manifold Chernoff (math.md §24, ADR-0071).
manifold_chernoff
ManifoldChernoff<M, F> — Riemannian Chernoff wrapper (math.md §24, ADR-0071).
manifold_hyperbolic
Hyperbolic2<F> — Poincaré disk backend for BoundedGeometryManifold.
manifold_kahler
B5 (ADR-0129) — CP¹ Fubini-Study Kähler manifold backend (math.md §24.7-bis).
mass_operator
Generalized (M, K) entry point for lumped and consistent mass matrices (ADR-0186, §55.3–§55.4).
matrix_2d3d
MatrixDiffusionChernoff2D/3D — per-axis palindromic Strang for M-component coupled diffusion on 2D/3D tensor-product grids (ADR-0124).
matrix_system
v4.x Wave 2 — MatrixDiffusionChernoff<F, M> with palindromic Strang splitting.
matrix_system_complex
Complex matrix-valued Chernoff kernel (ADR-0128, §33.8 Para 3).
multilayer
Multilayer thermal stack for stiff multi-material conduction (§57, issue #14).
nonlinearity
Nonlinearity<F> and NonlinearityDiff<F> traits + concrete impls (ADR-0189 §D3).
nonseparable2d
NonSeparable2DChernoff — thin compatibility shim (v2.2 Wave C, ADR-0058).
nonseparable2d_aniso
NonSeparable2DAnisotropicChernoff — thin compatibility shim (v2.2 Wave C, ADR-0058).
nonseparable_mixed
NonSeparableMixedChernoff<X, Y, F, S> — generic non-separable 2D Chernoff operator.
nonseparable_mixed_closure
Closure-backed coupling implementations for NonSeparableMixedChernoff.
obstacle
Projective-splitting obstacle evolver / variational inequalities (math §44).
obstacle_gamma
Inactive-set Γ = V″ primitive for ObstacleChernoff (math §44.5.bis).
obstacle_nd
D≥2 projective-splitting obstacle evolver (math §44.5.ter).
phi_action
φ-function actions via the augmented-matrix construction (ADR-0189 §58.2).
phi_krylov
Adaptive Krylov (Arnoldi) φ-combination for any generator (ADR-0211, math §68).
point_eval
v4.0 A6 — PointEval<F> first-class API (ADR-0080, math.md §31).
quantum_graph
v3.1 B7 — Quantum graphs, Kirchhoff vertex condition (math §29, ADR-0078).
quantum_schrodinger
v7.0.0 #16 — Schrödinger on quantum graphs via complex Kirchhoff (ADR-0130, math §30.5-bis).
rational_krylov
Rational (shift-and-invert) Krylov action e^{−t·M⁻¹A}·v for SPD sparse operators (ADR-0206, math §66).
reaction
Pointwise reaction terms ∂ₜu = f(t, x, u) for ReactionDiffusion (ADR-0208).
reaction_diffusion
Semilinear reaction–diffusion systems on any Chernoff engine (ADR-0208).
reaction_stiff
Stiff kinetics: adaptive two-stage Rosenbrock (ROS2) reaction flow (ADR-0212, math §69).
reflection
B4 — Neumann via image method (math.md §25, ADR-0072).
reflection_regions
Additive ReflectingRegion<F> impls for BoxRegion<F, D> and BallRegion<F, D>.
resolvent
A1 — Laplace-Chernoff Resolvent (math.md §22, ADR-0069).
resolvent_complex
Complex-λ Laplace-Chernoff resolvent (math.md §22.9, ADR-0127).
resolvent_jump
F2 — Resolvent time-jump amortization (math.md §47, ADR-0134).
resolvent_jump_nd
F2 — 2D/3D parabolic LHP backends (math.md §47.8, ADR-0148, v8.2.0).
reverse_ad
ReverseChernoff — genuine reverse-mode AD over (F(τ))ⁿ via binomial checkpointing (math §51, ADR-0156 Amendment 2; v9.1.0 Shift B GENUINE).
reverse_region
DoF-aligned region partition for K>1 reverse-AD (§51.10, ADR-0177). RegionMap — DoF-aligned region partition for K>1 reverse-AD (math §51.10, ADR-0177; issue #1).
richardson
Richardson extrapolation in the step count (ADR-0207).
robin
A.3 Robin BC partial-additive port (math.md §3.5.tris, ADR-0098).
schrodinger
Schrödinger Chernoff i ψ_t = (−Δ + V(x)) ψ via palindromic Strang splitting.
schrodinger_complex
v4.0 B6 — Schrödinger Option B native-complex implementation (ADR-0079, math.md §30.3).
scratch
Grow-only scratch-buffer pool for allocation-free Chernoff hot loops (Wave 1, ADR-0041).
shift1d
ShiftChernoff1D — Chernoff function for L = a(x)∂² + b(x)∂ + c(x).
shift1d_vjp
Gradients w.r.t. ShiftChernoff1D’s coefficient fields (ADR-0197, Issue #25).
shift_nd
v4.0 A2 — AnisotropicShiftChernoffND<F, const D: usize> flagship (ADR-0081, math.md §32).
shift_nd_adaptive
ADR-0122 — adaptive per-point Gauss-Hermite quadrature q for AnisotropicShiftChernoffND (math.md §32.8).
shift_nd_zeta2
ADR-0112 AMENDMENT 2 — order-2 ζ² correction for AnisotropicShiftChernoffND.
smolyak
ADR-0123 — SmolyakGridND<F, const D: usize> sparse-grid quadrature backend.
spd_resolvent
SPD resolvent / steady solve x = (λ·M + A)⁻¹ b (ADR-0202 D1, math §62.1–§62.2).
state
State, HilbertState, and Discrete traits — 3-layer vector interface for Chernoff iteration (Wave 3, ADR-0043, v2.0 MAJOR).
strang
StrangSplit — Strang operator-splitting composer.
strang2d
Strang2D — palindromic Strang composition for 2D tensor-product generators.
strang2d_pencil
Strang2DPencil — palindromic Strang with per-pencil 1-D kernels (ADR-0196, Issue #21).
strang3d
Strang3D palindromic composition for 3D tensor-product generators.
strang3d_axislift
AxisLift3D — per-axis adapter lifting a 1D ChernoffFunction to 3D.
strang_graph
Palindromic Strang split for commuting graph Chernoff kernels.
subordinated
A.5 — SubordinatedChernoff via Butko 2018 (math.md §37, ADR-0103).
symmetric_operator
Generic symmetric positive-semidefinite operator entry point (ADR-0186, §55).
truncated_exp
TruncatedExpDiffusionChernoff — truncated-exp K=4 Chernoff for A_self = ∂_x(a(x)·∂_x) (v0.4.0, ADR-0011).
truncated_exp4
TruncatedExp4thDiffusionChernoff — truncated-exp K=4 + 4th-order stencil (v0.6.0, ADR-0013).
truncated_exp4_cached
Wave B2 cache types for TruncatedExp4thDiffusionChernoff (v0.13.0, ADR-0034 Amendment 1).
tt_chernoff
TT-Chernoff evolver — tensor-train Chernoff semigroup (math §50, §52.2 Amd 1).
tt_core
TT-core data structures and SVD rounding kernel (no_std+alloc, no new deps).
tt_coupled
CoupledTtChernoff — genuine cross-axis TT evolver (v9.1.0 Shift C, §52.9).
tt_dense_couplings3-poc
S³ POC — Dense / non-adjacent (all-pairs) coupling curse-escape.
tt_dense_coupling_apis3-poc
Public wrapper type for tt_dense_coupling (ADR-0169, v9.2.0).
tt_drift_spectrals3-poc
S³ POC — Complex-spectral drift pair factor (DriftSpectralPairFactor).
tt_drift_spectral_apis3-poc
Public wrapper type for tt_drift_spectral (ADR-0169, v9.2.0).
tt_nonlinear_spectrals3-poc
S³ nonlinear POC — Cole-Hopf Burgers (Seam A) + Strang-split RD (Seam B).
tt_nonlinear_spectral_apis3-poc
Public wrapper types for tt_nonlinear_spectral (ADR-0169, v9.2.0).
tt_nonsep_varcoefs3-poc
S³ POC — Non-separable variable-coefficient evolver (NonSepVarCoefSpectral).
tt_nonsep_varcoef_apis3-poc
Public wrapper type for tt_nonsep_varcoef (ADR-0169, v9.2.0).
tt_varcoef
VarCoefTt — additive-separable variable-coefficient evolver on crate::tt_chernoff::TtState.
tt_varcoef_spectrals3-poc
S³ POC — Variable-coefficient additive-split evolver (VarCoefSplitSpectral).
varcoef_magnus_graph
Variable-coefficient × time-dependent Magnus K=4 on graphs (ADR-0063).
wentzell
C-9 — Dynamic Wentzell/Robin BC via implicit Cayley boundary step (math.md §49, ADR-0151).

Macros§

impl_state_for_gridfn
Generate State<F> and HilbertState<F> impls for a grid-fn type.

Structs§

FrechetPlan
Pure cost/accuracy plan of one graph_expmv_frechet channel.
GridFnComplex1D
Native complex grid function: ψ(x_i) ∈ C for each node i.

Functions§

graph_expmv_frechet_plan
Predict node count, chain length, max degree, rounding weight and SpMV bound (§63.8). Pure.
phi_sweep_probe
(s, m) the φ-actions actually use for op and tau — shift-aware, unlike crate::phi_action::phi_cost_probe, which takes only a norm. Each φ sweep costs s·m generator applications. (0, 0) for an invalid τ or bound.