SoftwareApplication
identifier: 10.5281/zenodo.2609003
name: Arpra
description: Arpra is a C library for analyzing the propagation of numerical error in arbitrary precision IEEE-754 floating-point computations.
description: Arpra is a C library for (Ar)bitrary-(p)recision (r)ange (a)nalysis of IEEE-754 floating-point computations, based on GNU MPFR. The main use-case of Arpra is to maintain computed upper and lower bounds of numerical error for all variables, at all times, throughout a computation. Arpra uses mixed trimmed interval/affine arithmetic with deviation term reduction to accomplish this. Affine arithmetic is a variant of interval arithmetic which accounts for variable correlations. As such, it does not suffer from the so-called 'dependency problem', where intervals grow overly large due to lack of consideration for variable correlations. The problem is described further at <https://en.wikipedia.org/wiki/Interval_arithmetic#Dependency_problem>. By combining the results of interval arithmetic and affine arithmetic, one avoids both the dependency problem of interval arithmetic, and the nonlinear function overshoot/undershoot problem of affine arithmetic. Arpra implements affine arithmetic using a GNU MPFR backend. MPFR is an arbitrary-precision floating-point library, meaning the floating-point MPFR variables can be of arbitrary precision. For more information, refer to the MPFR project website at <http://www.mpfr.org/>. By implementing affine arithmetic with an arbitrary-precision backend, one is able, for example, to test how a change in numerical precision or integration scheme affects local and global error during a long numerical simulation, without the interval 'explosion' problem regular interval arithmetic suffers from. For further information on the implementation and features of Arpra, such as range trimming and deviation term reduction, refer to the original published article: Turner, J. P., & Nowotny, T. (2021). Arpra: An Arbitrary Precision Range Analysis Library. Frontiers in Neuroinformatics, 30. https://doi.org/10.3389/fninf.2021.632729
code repository: https://github.com/arpra-project/arpra
author: https://orcid.org/0000-0002-9077-2658
keywords: Arbitrary Precision
keywords: Affine Arithmetic
keywords: Numerical analysis
keywords: Interval Arithmetic
keywords: Range Analysis
programming language: C
programming language: M4
programming language: Makefile
license:
  creative work: creativeWork
    name: LGPL-3.0

https://orcid.org/0000-0002-9077-2658
type: Person
given name: James
family name: Turner
name: James Turner
role name: Main Author
affiliation: Organization
  name: University of Sussex