Bean: A Language for Backward Error Analysis

Fuente: arXiv
Guardado en:
Detalles Bibliográficos
Autores principales: Kellison, Ariel E., Zielinski, Laura, Bindel, David, Hsu, Justin
Formato: Preprint
Publicado: 2025
Materias:
Acceso en línea:
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
_version_ 1866918169737691136
author Kellison, Ariel E.
Zielinski, Laura
Bindel, David
Hsu, Justin
author_facet Kellison, Ariel E.
Zielinski, Laura
Bindel, David
Hsu, Justin
contents Backward error analysis offers a method for assessing the quality of numerical programs in the presence of floating-point rounding errors. However, techniques from the numerical analysis literature for quantifying backward error require substantial human effort, and there are currently no tools or automated methods for statically deriving sound backward error bounds. To address this gap, we propose Bean, a typed first-order programming language designed to express quantitative bounds on backward error. Bean's type system combines a graded coeffect system with strict linearity to soundly track the flow of backward error through programs. We prove the soundness of our system using a novel categorical semantics, where every Bean program denotes a triple of related transformations that together satisfy a backward error guarantee. To illustrate Bean's potential as a practical tool for automated backward error analysis, we implement a variety of standard algorithms from numerical linear algebra in Bean, establishing fine-grained backward error bounds via typing in a compositional style. We also develop a prototype implementation of Bean that infers backward error bounds automatically. Our evaluation shows that these inferred bounds match worst-case theoretical relative backward error bounds from the literature, underscoring Bean's utility in validating a key property of numerical programs: numerical stability.
format Preprint
id arxiv_https___arxiv_org_abs_2501_14550
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle Bean: A Language for Backward Error Analysis
Kellison, Ariel E.
Zielinski, Laura
Bindel, David
Hsu, Justin
Programming Languages
Logic in Computer Science
Numerical Analysis
Backward error analysis offers a method for assessing the quality of numerical programs in the presence of floating-point rounding errors. However, techniques from the numerical analysis literature for quantifying backward error require substantial human effort, and there are currently no tools or automated methods for statically deriving sound backward error bounds. To address this gap, we propose Bean, a typed first-order programming language designed to express quantitative bounds on backward error. Bean's type system combines a graded coeffect system with strict linearity to soundly track the flow of backward error through programs. We prove the soundness of our system using a novel categorical semantics, where every Bean program denotes a triple of related transformations that together satisfy a backward error guarantee. To illustrate Bean's potential as a practical tool for automated backward error analysis, we implement a variety of standard algorithms from numerical linear algebra in Bean, establishing fine-grained backward error bounds via typing in a compositional style. We also develop a prototype implementation of Bean that infers backward error bounds automatically. Our evaluation shows that these inferred bounds match worst-case theoretical relative backward error bounds from the literature, underscoring Bean's utility in validating a key property of numerical programs: numerical stability.
title Bean: A Language for Backward Error Analysis
topic Programming Languages
Logic in Computer Science
Numerical Analysis
url https://arxiv.org/abs/2501.14550