Automatic Differentiation Tool

An interactive application for generating automatic differentiation code.


Many areas of science and engineering involve methods that require calculating the derivatives of large, complex mathematical functions.


Automatic, or algorithmic, differentiation is a set of techniques for evaluating the derivatives of functions implemented in the form of a computer program. This allows for the efficient calculation of derivatives in large-scale applications where deriving expressions by hand is not practical.


The Automatic Differentiation Tool enables you to differentiate chained functions specified in a familiar Python-like syntax. The transformed code is generated in real-time giving you the ability to better understand the automatic differentiation process.

Input
Expressions
Forward mode AD (one param)
Forward mode AD (all params)
Adjoint mode AAD

Features

  • Learn about automatic differentiation in a fast and interactive way
  • Automatically generate Python instructions for forward (tangent) and backward (adjoint) mode derivative calculations
  • Plotting functionality to visualise functions and their derivatives
  • Works for multi-return, multi-parameter and multiple user defined functions
  • Supports common mathematical functions (e.g. log, exp, sin, cos)
  • Can be used recursively to obtain higher order derivatives

Future development

(not available in current version)
  • Functionality for conditional branching (e.g. if, for, while)
  • Support for non-numeric data types (e.g. strings, booleans, dictionaries, tuples, classes)