What is CADNA?
The CADNA (Control of Accuracy and Debugging for Numerical
Applications) software estimates round-off errors in
CADNA uses the CESTAC method to estimate in any computed result which digits are affected by round-off errors. Moreover CADNA implements all the concepts and definitions of the stochastic arithmetic, specially the definitions of order relations and equality relation. To be very short, these definitions take into account the accuracy of the operands. Therefore CADNA enables a real numerical debugging by detecting numerical instabilities which usually involve numerical noise. The last (but not the least) tool provided by CADNA is that data errors can be taken into account for the estimation of the final accuracy.
CADNA contains all the controls that are necessary for a good and efficient implementation of the CESTAC method. These controls, that were pointed out by the theoretical study, lead to a self-validation of the library. CADNA is able to detect when the conditions for a right estimation of the round-off errors are not satisfied anymore and when it happens, CADNA is able to advise the users.
CADNA works on FORTRAN (77 or 90), C, and C++ codes but needs a F90/F95 or a C++ compiler. CADNA is a library which provides new numerical types: the stochastic types. The library includes the definitions of all arithmetic operations, order relations and elementary functions for the stochastic types. Therefore the use of CADNA in a code requires only a few modifications: essentially changes in the declarations of variables. The round-off error control is only performed on the stochastic types and the accuracy estimation is available for any intermediate or final result. For the output, only the exact significant digits are displayed. When a result is numerical noise the symbol @.0 is printed.