Elsevier Science Home
Computer Physics Communications Program Library
Full text online from Science Direct
Programs in Physics & Physical Chemistry
CPC Home

[Licence| Download | New Version Template] aeat_v1_0.tar.gz(553 Kbytes)
Manuscript Title: CADNA: a library for estimating round-off error propagation
Authors: Fabienne Jézéquel, Jean-Marie Chesneaux
Program title: CADNA
Catalogue identifier: AEAT_v1_0
Distribution format: tar.gz
Journal reference: Comput. Phys. Commun. 178(2008)933
Programming language: Fortran.
Computer: PC running LINUX with an i686 or an ia64 processor, UNIX workstations including SUN, IBM.
Operating system: LINUX, UNIX.
Keywords: CADNA, CESTAC method, Discrete Stochastic Arithmetic, floating- point arithmetic, numerical validation, round-off errors.
PACS: 02.70.-c.
Classification: 4.14, 6.5, 20.

Nature of problem:
A simulation program which uses floating-point arithmetic generates round-off errors, due to the rounding performed at each assignment and at each arithmetic operation. Round-off error propagation may invalidate the result of a program. The CADNA library enables one to estimate round-off error propagation in any simulation program and to detect all numerical instabilities that may occur at run time.

Solution method:
The CADNA library [1] implements Discrete Stochastic Arithmetic [2-4] which is based on a probabilistic model of round-off errors. The program is run several times with a random rounding mode generating different results each time. From this set of results, CADNA estimates the number of exact significant digits in the result that would have been computed with standard floating-point arithmetic.

CADNA requires a Fortran 90 (or newer) compiler. In the program to be linked with the CADNA library, round-off errors on complex variables cannot be estimated. Furthermore array functions such as product or sum must not be used. Only the arithmetic operators and the abs, min, max and sqrt functions can be used for arrays.

Running time:
The version of a code which uses CADNA runs at least three times slower than its floating-point version. This cost depends on the computer architecture and can be higher if the detection of numerical instabilities is enabled. In this case, the cost may be related to the number of instabilities detected.

[1] The CADNA library, URL address: http://www.lip6.fr/cadna
[2] J.-M. Chesneaux, L'arithmétique Stochastique et le Logiciel CADNA, Habilitation á diriger des recherches, Université Pierre et Marie Curie, Paris, 1995.
[3] J. Vignes, A stochastic arithmetic for reliable scientific computation, Math. and Comp. in Sim. 35, 1993, pp. 233-261.
[4] J. Vignes, Discrete Stochastic Arithmetic for Validating Results of Numerical Software, Num. Algo. 37, 2004, pp. 377-390.