SkillAgentSearch skills...

Dynagrad

Define-by-run arbitrary higher order autodiff for scalars in Rust. Deferred: tensor calculus implementation.

Install / Use

/learn @exbibyte/Dynagrad
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Dynamic Automatic Differentiation in Rust

A pedagogical attempt at auto-differentiation. This is based on the autograd package and other variations of it as well as literature references (eg: The Art of Differentiating Computer Programs, An Introduction to Algorithmic Differentiation – Uwe Naumann).

Support:

  • forward mode
  • reverse mode
  • a composition thereof for higher-order derivatives.

Todo:

  • Multidimension support, possibly with help of ndarray crate
  • Add support for Ricci calculus notation for symbolic manipulation (reference: Computing Higher Order Derivatives of Matrix and Tensor Expressions by Laue et al.)
  • More ops and tests (see src/core.rs)

Plots:

<p align="center"> <img src="images/eg_simple_plot_tan.png" alt="drawing" width="400"/> <img src="images/eg_simple_plot_sin.png" alt="drawing" width="400"/> </p>
View on GitHub
GitHub Stars7
CategoryDevelopment
Updated2y ago
Forks0

Languages

Rust

Security Score

75/100

Audited on Nov 17, 2023

No findings