Skip to main content

AD

AD

Fast, transparent first- and second-order automatic differentiation for Python

Tests Documentation Ruff

codecov Quality Gate Status License: BSD-3

PyPI Downloads Python versions

Overview

The ad package allows you to easily and transparently perform first- and second-order automatic differentiation. Advanced math involving trigonometric, logarithmic, hyperbolic, and related functions can be evaluated directly using the ad.admath submodule.

All base numeric types are supported (int, float, complex, etc.). The package is designed so underlying numeric types interact as they normally do during calculations. In practice, ad behaves like a lightweight wrapper that tracks derivatives while preserving standard numeric behavior.

From the Wikipedia entry on Automatic differentiation:

"AD exploits the fact that every computer program, no matter how complicated, executes a sequence of elementary arithmetic operations (addition, subtraction, multiplication, division, etc.) and elementary functions (exp, log, sin, cos, etc.). By applying the chain rule repeatedly to these operations, derivatives of arbitrary order can be computed automatically, and accurate to working precision."

See the package documentation for details and examples.

Main Features

  • Transparent calculations with derivatives, requiring little or no modification to existing code (including NumPy-based code).
  • Broad mathematical operation support, including most functions from math and cmath, plus convenience trigonometric, hyperbolic, and logarithmic helpers (csc, acoth, ln, etc.). Comparison operators follow the same rules as the wrapped numeric values.
  • Seamless real and complex arithmetic through ad.admath counterparts.
  • Automatic gradient and Hessian function generator for optimization workflows with scipy.optimize via gh(your_func_here).
  • Linear algebra routines in ad.linalg similar to NumPy's linalg, without LAPACK dependency.

Linear Algebra Routines

Decompositions

  • chol: Cholesky decomposition
  • lu: LU decomposition
  • qr: QR decomposition

Solving equations and matrix inversion

  • solve: General solver for linear systems
  • lstsq: Least-squares solver for linear systems
  • inv: Multiplicative inverse of a matrix

Installation

uv pip install ad

Requires Python 3.10+. See the full installation guide.

Documentation

License

BSD-3-Clause.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ad-1.5.1.tar.gz (237.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ad-1.5.1-py3-none-any.whl (21.4 kB view details)

Uploaded Python 3

File details

Details for the file ad-1.5.1.tar.gz.

File metadata

  • Download URL: ad-1.5.1.tar.gz
  • Upload date:
  • Size: 237.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for ad-1.5.1.tar.gz
Algorithm Hash digest
SHA256 ee7c5dfe8744ba43bfac9e32b0c6e9f710ad71dc4174189c82f8a8a079bfb47b
MD5 9db5bcf7a5892478737fdc53e02648fc
BLAKE2b-256 7c4aa508b0fbc2835d49c85836a51fb6f90675a076140a92333a5b1b79b2a008

See more details on using hashes here.

Provenance

The following attestation bundles were made for ad-1.5.1.tar.gz:

Publisher: publish_dist.yml on eggzec/ad

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ad-1.5.1-py3-none-any.whl.

File metadata

  • Download URL: ad-1.5.1-py3-none-any.whl
  • Upload date:
  • Size: 21.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for ad-1.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3d0c8d00027c225ca20444a9853e5c986832909dbeec27078216c9a3f2f2873a
MD5 e9f3bbb35cbd21efa314569d80d5eaad
BLAKE2b-256 4861a2c983113347708bc5e6679f25d2e73595890296ada0f5f10ff5f9141a1e

See more details on using hashes here.

Provenance

The following attestation bundles were made for ad-1.5.1-py3-none-any.whl:

Publisher: publish_dist.yml on eggzec/ad

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

1.5.1 This release

2 files

1.5.0

2 files

1.4.1

2 files

1.4.0

2 files

1.3.2

1 file

1.3.1

1 file

1.3

1 file

1.2.3

1 file

1.2.2

1 file

1.2.1

1 file

1.2.0

1 file

1.1.7

1 file

1.1.6

1 file

1.1.5

1 file

1.1.3

1 file

1.1.2

1 file

1.1.1

1.1

2 files

1.0.3

2 files

1.0.2

2 files

1.0.1

2 files

1.0

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page