Skip to main content

Fast, transparent first- and second-order automatic differentiation

Project description

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.

Project details


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.4.1.tar.gz (147.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.4.1-py3-none-any.whl (20.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ad-1.4.1.tar.gz
  • Upload date:
  • Size: 147.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ad-1.4.1.tar.gz
Algorithm Hash digest
SHA256 3cb709bd9a6ebc8d13bbb563cb61dc18a72d9a07694a9e3b87564bc162e5348c
MD5 83e6a8bfa36bf9f9c03184998daa0aab
BLAKE2b-256 dc79c3419d1af4592d2b6ceca022539932cf8f88731604558c1d4e8dea8bdeee

See more details on using hashes here.

Provenance

The following attestation bundles were made for ad-1.4.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.4.1-py3-none-any.whl.

File metadata

  • Download URL: ad-1.4.1-py3-none-any.whl
  • Upload date:
  • Size: 20.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ad-1.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 68508ae707c2dad18081e37416dbad8a5c628360cb8bbb08f2d3f7b3b976b2f3
MD5 8ad854f4c6f65f6f53e69a7a6a081007
BLAKE2b-256 d72bdf1b410b0dffa9b4a5e814374004abd942215168c48ae5d31fe622568185

See more details on using hashes here.

Provenance

The following attestation bundles were made for ad-1.4.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.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page