Adding complex numbers to expression template algorithmic differentiation tools

Fuente: arXiv
Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Sagebaum, Max, Gauger, Nicolas R.
Format: Preprint
Veröffentlicht: 2025
Schlagworte:
Online-Zugang:
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
_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