Skip to content

Add diffop module and bump to v0.3.0#26

Merged
gvonness-apolitical merged 1 commit intomainfrom
feature/diffop-module
Feb 25, 2026
Merged

Add diffop module and bump to v0.3.0#26
gvonness-apolitical merged 1 commit intomainfrom
feature/diffop-module

Conversation

@gvonness-apolitical
Copy link
Contributor

Summary

  • Add diffop module: arbitrary mixed partial derivative evaluation via jet coefficient extraction (Faà di Bruno formula)
  • New public API: MultiIndex, JetPlan, eval_dyn, mixed_partial, hessian
  • Plan-once evaluate-many design with pushforward grouping and prime window slot assignment
  • Bump version 0.2.0 → 0.3.0 across workspace, README, CHANGELOG, and SECURITY.md
  • 23 integration tests, Criterion benchmarks, and documentation in README, algorithms.md, and crate-level docs

Test plan

  • cargo test --workspace --features "bytecode,taylor,laurent,stde,serde,diffop" — all tests pass
  • cargo clippy --features "diffop" -- -D warnings — clean
  • cargo fmt --all -- --check — clean
  • Cross-validation: diffop::hessian matches tape.hessian() on Rosenbrock at multiple points

Add arbitrary differential operator evaluation via jet coefficient
extraction. The diffop module enables computing any mixed partial
derivative of a recorded tape through a single forward pushforward per
group of active variables, using the multivariate Faà di Bruno formula.

Key additions:
- MultiIndex type for specifying mixed partial derivatives
- JetPlan for precomputed slot assignments (plan once, evaluate many)
- eval_dyn for evaluating plans at arbitrary points via TaylorDyn
- mixed_partial and hessian convenience functions
- Prime window sliding for collision-free slot assignment
- Pushforward grouping to avoid slot contamination

Includes 23 integration tests, Criterion benchmarks, and documentation
updates across README, CHANGELOG, algorithms.md, and crate-level docs.
@gvonness-apolitical gvonness-apolitical merged commit 98020ac into main Feb 25, 2026
6 checks passed
@gvonness-apolitical gvonness-apolitical deleted the feature/diffop-module branch February 25, 2026 14:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant