autodj 0.2.9

Automatic Differentiation Library
Documentation
autodj-0.2.9 has been yanked.

Automatic Differentiation Library

crates.io docs build rust-clippy analyze

AUTOmatic Derivatives & Jacobians
by djmaxus and you

  • pre-alpha
  • play-ready

Contents

Motivation

For the living (and for my heart), I do research & development in the area of computational mathematics and wrote a whole bunch of sophisticated Jacobians by hand.

One day, I learned about automatic differentiation based on dual numbers. Almost the same day, I learned about Rust as well :crab:

  • No more devastating hand-written derivatives!
  • No more unsafe code!

Project goals

  • Develop open-source automatic differentiation library for both academic and commercial computational mathematitians
  • Gain experience of Rust programming

Anticipated features

  • Basic dual arithmetics as standalone feature
  • Number of variables to differentiate
    • single
    • multiple
      • static
      • dynamic
  • Calculation tracking (partial derivatives of intermediate values)
  • Third-party crates support (as features)
    • num
    • linear algebra crates
  • Advanced features
    • Inter-operability of different dual types (e.g., single and multiple dynamic)

    • Arbitrary type of dual number components

    • Rust-alike safety of interfaces

      e.g., Fn(...) -> Result<_,_> for binary operations and UUID-based tracking of variables

    • Numerical verification (or replacement) of derivatives (by definition)

    • Macro for automatic extensions of regular (i.e. non-dual) functions

    • no std

    • Optional calculation of derivatives

      • Iterator implementation as possible approach to lazy evaluation

You are very welcome to introduce issues to promote most wanted features or to report a bug.