English
Related papers

Related papers: Don't Unroll Adjoint: Differentiating SSA-Form Pro…

200 papers

We show how the basic Combinatory Homomorphic Automatic Differentiation (CHAD) algorithm can be optimised, using well-known methods, to yield a simple, composable, and generally applicable reverse-mode automatic differentiation (AD)…

Programming Languages · Computer Science 2023-11-15 Tom Smeding , Matthijs Vákár

Software Architecture Descriptions (SADs) are essential for managing the inherent complexity of modern software systems. They enable high-level architectural reasoning, guide design decisions, and facilitate effective communication among…

Software Engineering · Computer Science 2026-02-10 Ahmad Hatahet , Christoph Knieke , Andreas Rausch

Automatic differentiation (AD) is conventionally understood as a family of distinct algorithms, rooted in two "modes" -- forward and reverse -- which are typically presented (and implemented) separately. Can there be only one? Following up…

Programming Languages · Computer Science 2022-12-07 Alexey Radul , Adam Paszke , Roy Frostig , Matthew Johnson , Dougal Maclaurin

Where dual-numbers forward-mode automatic differentiation (AD) pairs each scalar value with its tangent value, dual-numbers reverse-mode AD attempts to achieve reverse AD using a similarly simple idea: by pairing each scalar value with a…

Programming Languages · Computer Science 2025-03-04 Tom Smeding , Matthijs Vákár

Automatic differentiation (AD) is a range of algorithms to compute the numeric value of a function's (partial) derivative, where the function is typically given as a computer program or abstract syntax tree. AD has become immensely popular…

Programming Languages · Computer Science 2023-05-16 Tom Schrijvers , Birthe van den Berg , Fabrizio Riguzzi

Static alias analysis of different type of programming languages has been drawing researcher attention. However most of the results of existing techniques for alias analysis are not precise enough compared to needs of modern compilers.…

Programming Languages · Computer Science 2014-05-20 Mohamed A. El-Zawawy , Mohammad N. Alanazi

The need to efficiently calculate first- and higher-order derivatives of increasingly complex models expressed in Python has stressed or exceeded the capabilities of available tools. In this work, we explore techniques from the field of…

Machine Learning · Computer Science 2018-09-27 Bart van Merriënboer , Dan Moldovan , Alexander B Wiltschko

The standard dual-numbers construction works well for forward-mode automatic differentiation (AD) and is attractive due to its simplicity; recently, it also has been adapted to reverse-mode AD, but practical performance, especially on array…

Programming Languages · Computer Science 2025-07-18 Tom Smeding , Mikołaj Konarski , Simon Peyton Jones , Andrew Fitzgibbon

We introduce Combinatory Homomorphic Automatic Differentiation (CHAD), a principled, pure, provably correct define-then-run method for performing forward- and reverse-mode automatic differentiation (AD) on programming languages with…

Programming Languages · Computer Science 2026-05-05 Matthijs Vákár , Tom Smeding

For scientific machine learning tasks with a lot of custom code, picking the right Automatic Differentiation (AD) system matters. Our Julia package DifferentiationInterface$.$jl provides a common frontend to a dozen AD backends, unlocking…

Mathematical Software · Computer Science 2025-05-19 Guillaume Dalle , Adrian Hill

Where dual-numbers forward-mode automatic differentiation (AD) pairs each scalar value with its tangent derivative, dual-numbers /reverse-mode/ AD attempts to achieve reverse AD using a similarly simple idea: by pairing each scalar value…

Programming Languages · Computer Science 2022-05-24 Tom Smeding , Matthijs Vákár

Algorithmic differentiation (AD) is a set of techniques that provide partial derivatives of computer-implemented functions. Such a function can be supplied to state-of-the-art AD tools via its source code, or via an intermediate…

Mathematical Software · Computer Science 2023-07-10 Max Aehle , Johannes Blühdorn , Max Sagebaum , Nicolas R. Gauger

Sensitivity analysis plays an important role in searching for constitutive parameters (e.g. permeability) subsurface flow simulations. The mathematics behind is to solve a dynamic constrained optimization problem. Traditional methods like…

Computational Physics · Physics 2019-06-05 Shu Wang , Satish Karra , Daniel O'Malley

Shape optimization is of great significance in structural engineering, as an efficient geometry leads to better performance of structures. However, the application of gradient-based shape optimization for structural and architectural design…

Mathematical Software · Computer Science 2023-06-30 Gaoyuan Wu

Automated code generation allows for a separation between the development of a model, expressed via a domain specific language, and lower level implementation details. Algorithmic differentiation can be applied symbolically at the level of…

Programming Languages · Computer Science 2024-09-27 James R. Maddison

We present ForwardDiff, a Julia package for forward-mode automatic differentiation (AD) featuring performance competitive with low-level languages like C++. Unlike recently developed AD tools in other popular high-level languages such as…

Mathematical Software · Computer Science 2016-07-28 Jarrett Revels , Miles Lubin , Theodore Papamarkou

We show how forward-mode automatic differentiation (AD) can be employed within larger reverse-mode computations to dynamically differentiate broadcast operations in a GPU-friendly manner. Our technique fully exploits the broadcast…

Mathematical Software · Computer Science 2018-10-26 Jarrett Revels , Tim Besard , Valentin Churavy , Bjorn De Sutter , Juan Pablo Vielma

Artificial intelligence (AI) has revolutionized software engineering (SE) by enhancing software development efficiency. The advent of pre-trained models (PTMs) leveraging transfer learning has significantly advanced AI for SE. However,…

Software Engineering · Computer Science 2024-04-25 Zixiang Xian , Rubing Huang , Dave Towey , Chunrong Fang , Zhenyu Chen

Dominance is a fundamental concept in compilers based on static single assignment (SSA) form. It underpins a wide range of analyses and transformations and defines a core property of SSA: every use must be dominated by its definition. We…

Programming Languages · Computer Science 2026-04-30 Roland Leißa , Johannes Griebler

Unsupervised Domain Adaptation (UDA) aims to bridge the gap between a source domain, where labelled data are available, and a target domain only represented with unlabelled data. If domain invariant representations have dramatically…

Machine Learning · Computer Science 2020-12-04 Victor Bouvier , Philippe Very , Clément Chastagnol , Myriam Tami , Céline Hudelot