Saved in:
Bibliographic Details
Main Authors: Sagebaum, Max, Gauger, Nicolas R.
Format: Preprint
Published: 2025
Subjects:
Online Access:https://arxiv.org/abs/2508.05371
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866916885301297152
author Sagebaum, Max
Gauger, Nicolas R.
author_facet Sagebaum, Max
Gauger, Nicolas R.
contents Operator overloading algorithmic differentiation (AD) tools are usually only developed for floating-point values. Algorithmic optimization for, e.g., linear systems solvers or matrix-matrix multiplications are often introduced via external functions or manual function specializations. Complex numbers can be viewed as aggregates of two floating-point values on which specialized operations are applied. Typically, these operations can be handled by the regular floating-point operations from the AD tool. Nevertheless, adding the complex number operations to the expression template framework of modern operator overloading AD tools has several benefits. The internal computations of a complex number operation are hidden, and the complex operations do not decompose into single operations. This leads to a smaller memory footprint of the recorded tape and faster gradient computation times. We will discuss these problems, analyze how complex numbers can be integrated into modern operator overloading AD tools, demonstrate an implementation in CoDiPack, and show performance results on a synthetic test case.
format Preprint
id arxiv_https___arxiv_org_abs_2508_05371
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle Adding complex numbers to expression template algorithmic differentiation tools
Sagebaum, Max
Gauger, Nicolas R.
Mathematical Software
68N30
G.1.4; G.4; D.2.2
Operator overloading algorithmic differentiation (AD) tools are usually only developed for floating-point values. Algorithmic optimization for, e.g., linear systems solvers or matrix-matrix multiplications are often introduced via external functions or manual function specializations. Complex numbers can be viewed as aggregates of two floating-point values on which specialized operations are applied. Typically, these operations can be handled by the regular floating-point operations from the AD tool. Nevertheless, adding the complex number operations to the expression template framework of modern operator overloading AD tools has several benefits. The internal computations of a complex number operation are hidden, and the complex operations do not decompose into single operations. This leads to a smaller memory footprint of the recorded tape and faster gradient computation times. We will discuss these problems, analyze how complex numbers can be integrated into modern operator overloading AD tools, demonstrate an implementation in CoDiPack, and show performance results on a synthetic test case.
title Adding complex numbers to expression template algorithmic differentiation tools
topic Mathematical Software
68N30
G.1.4; G.4; D.2.2
url https://arxiv.org/abs/2508.05371