Automatic Differentiation Live

An educational 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.


Automatic Differentiation Live 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
  • 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)
  • Plotting functionality to visualise functions and their derivatives
  • Support for non-numeric data types (e.g. strings, booleans, dictionaries, tuples, classes)