Export Citations
Save this search
Please login to be able to save your searches and receive alerts for new content matching your search criteria.
Numerical Fuzz: A Type System for Rounding Error Analysis
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue PLDIArticle No.: 226, Pages 1954–1978https://doi.org/10.1145/3656456Algorithms operating on real numbers are implemented as floating-point computations in practice, but floating-point operations introduce roundoff errors that can degrade the accuracy of the result. We propose Λnum, a functional programming language with ...
Efficient CHAD
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue POPLArticle No.: 36, Pages 1060–1088https://doi.org/10.1145/3632878We 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) technique that has ...
Solvable Polynomial Ideals: The Ideal Reflection for Program Analysis
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue POPLArticle No.: 25, Pages 724–752https://doi.org/10.1145/3632867This paper presents a program analysis method that generates program summaries involving polynomial arithmetic. Our approach builds on prior techniques that use solvable polynomial maps for summarizing loops. These techniques are able to generate all ...
Synthesizing Precise Static Analyzers for Automatic Differentiation
Proceedings of the ACM on Programming Languages (PACMPL), Volume 7, Issue OOPSLA2Article No.: 291, Pages 1964–1992https://doi.org/10.1145/3622867We present Pasado, a technique for synthesizing precise static analyzers for Automatic Differentiation. Our technique allows one to automatically construct a static analyzer specialized for the Chain Rule, Product Rule, and Quotient Rule computations ...
Efficient Dual-Numbers Reverse AD via Well-Known Program Transformations
Proceedings of the ACM on Programming Languages (PACMPL), Volume 7, Issue POPLArticle No.: 54, Pages 1573–1600https://doi.org/10.1145/3571247Where 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 backpropagator ...
When Less Is More: Consequence-Finding in a Weak Theory of Arithmetic
Proceedings of the ACM on Programming Languages (PACMPL), Volume 7, Issue POPLArticle No.: 44, Pages 1275–1307https://doi.org/10.1145/3571237This paper presents a theory of non-linear integer/real arithmetic and algorithms for reasoning about this theory. The theory can be conceived of as an extension of linear integer/real arithmetic with a weakly-axiomatized multiplication symbol, which ...
- research-articleJanuary 2023
You Only Linearize Once: Tangents Transpose to Gradients
Proceedings of the ACM on Programming Languages (PACMPL), Volume 7, Issue POPLArticle No.: 43, Pages 1246–1274https://doi.org/10.1145/3571236Automatic 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 on the AD systems ...
A general construction for abstract interpretation of higher-order automatic differentiation
Proceedings of the ACM on Programming Languages (PACMPL), Volume 6, Issue OOPSLA2Article No.: 161, Pages 1007–1035https://doi.org/10.1145/3563324We present a novel, general construction to abstractly interpret higher-order automatic differentiation (AD). Our construction allows one to instantiate an abstract interpreter for computing derivatives up to a chosen order. Furthermore, since our ...
- research-articleJanuary 2022
Provably correct, asymptotically efficient, higher-order reverse-mode automatic differentiation
- Faustyna Krawiec,
- Simon Peyton Jones,
- Neel Krishnaswami,
- Tom Ellis,
- Richard A. Eisenberg,
- Andrew Fitzgibbon
Proceedings of the ACM on Programming Languages (PACMPL), Volume 6, Issue POPLArticle No.: 48, Pages 1–30https://doi.org/10.1145/3498710In this paper, we give a simple and efficient implementation of reverse-mode automatic differentiation, which both extends easily to higher-order functions, and has run time and memory consumption linear in the run time of the original program. In ...
- research-articleAugust 2021Distinguished Paper
Getting to the point: index sets and parallelism-preserving autodiff for pointful array programming
- Adam Paszke,
- Daniel D. Johnson,
- David Duvenaud,
- Dimitrios Vytiniotis,
- Alexey Radul,
- Matthew J. Johnson,
- Jonathan Ragan-Kelley,
- Dougal Maclaurin
Proceedings of the ACM on Programming Languages (PACMPL), Volume 5, Issue ICFPArticle No.: 88, Pages 1–29https://doi.org/10.1145/3473593We present a novel programming language design that attempts to combine the clarity and safety of high-level functional languages with the efficiency and parallelism of low-level numerical languages. We treat arrays as eagerly-memoized functions on typed ...
- research-articleJanuary 2021
𝜆ₛ: computable semantics for differentiable programming with higher-order functions and datatypes
Proceedings of the ACM on Programming Languages (PACMPL), Volume 5, Issue POPLArticle No.: 3, Pages 1–31https://doi.org/10.1145/3434284Deep learning is moving towards increasingly sophisticated optimization objectives that employ higher-order functions, such as integration, continuous optimization, and root-finding. Since differentiable programming frameworks such as PyTorch and ...
Optimal approximate sampling from discrete probability distributions
Proceedings of the ACM on Programming Languages (PACMPL), Volume 4, Issue POPLArticle No.: 36, Pages 1–31https://doi.org/10.1145/3371104This paper addresses a fundamental problem in random variate generation: given access to a random source that emits a stream of independent fair bits, what is the most accurate and entropy-efficient algorithm for sampling from a discrete probability ...
Sound and robust solid modeling via exact real arithmetic and continuity
Proceedings of the ACM on Programming Languages (PACMPL), Volume 3, Issue ICFPArticle No.: 99, Pages 1–29https://doi.org/10.1145/3341703Algorithms for solid modeling, i.e., Computer-Aided Design (CAD) and computer graphics, are often specified on real numbers and then implemented with finite-precision arithmetic, such as floating-point. The result is that these implementations do not ...
- research-articleJuly 2019
Efficient differentiable programming in a functional array-processing language
Proceedings of the ACM on Programming Languages (PACMPL), Volume 3, Issue ICFPArticle No.: 97, Pages 1–30https://doi.org/10.1145/3341701We present a system for the automatic differentiation (AD) of a higher-order functional array-processing language. The core functional language underlying this system simultaneously supports both source-to-source forward-mode AD and global optimisations ...
Efficient automated repair of high floating-point errors in numerical libraries
Proceedings of the ACM on Programming Languages (PACMPL), Volume 3, Issue POPLArticle No.: 56, Pages 1–29https://doi.org/10.1145/3290369Floating point computation is by nature inexact, and numerical libraries that intensively involve floating-point computations may encounter high floating-point errors. Due to the wide use of numerical libraries, it is highly desired to reduce high ...