Nasrine Damouche
University of Perpignan
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Nasrine Damouche.
formal methods for industrial critical systems | 2015
Nasrine Damouche; Matthieu Martel; Alexandre Chapoutot
Numerical programs performing floating-point computations are very sensitive to the way formulas are written. These last years, several techniques have been proposed concerning the transformation of arithmetic expressions in order to improve their accuracy and, in this article, we go one step further by automatically transforming larger pieces of code containing assignments and control structures. We define a set of transformation rules allowing the generation, under certain conditions and in polynomial time, of larger expressions by performing limited formal computations, possibly among several iterations of a loop. These larger expressions are better suited to improve the numerical accuracy of the target variable. We use abstract interpretation-based static analysis techniques to over-approximate the roundoff errors in programs and during the transformation of expressions. A prototype has been implemented and experimental results are presented concerning classical numerical algorithm analysis and algorithm for embedded systems.
numerical software verification | 2016
Nasrine Damouche; Matthieu Martel; Pavel Panchekha; Chen Qiu; Alexander Sanchez-Stern; Zachary Tatlock
We introduce FPBench, a standard benchmark format for validation and optimization of numerical accuracy in floating-point computations. FPBench is a first step toward addressing an increasing need in our community for comparisons and combinations of tools from different application domains. To this end, FPBench provides a basic floating-point benchmark format and accuracy measures for comparing different tools. The FPBench format and measures allow comparing and composing different floating-point tools. We describe the FPBench format and measures and show that FPBench expresses benchmarks from recent papers in the literature, by building an initial benchmark suite drawn from these papers. We intend for FPBench to grow into a standard benchmark suite for the members of the floating-point tools research community.
logic based program synthesis and transformation | 2015
Nasrine Damouche; Matthieu Martel; Alexandre Chapoutot
Among other objectives, rewriting programs serves as a useful technique to improve numerical accuracy. However, this optimization is not intuitive and this is why we switch to automatic transformation techniques. We are interested in the optimization of numerical programs relying on the IEEE754 floating-point arithmetic. In this article, our main contribution is to study the impact of optimizing the numerical accuracy of programs on the time required by numerical iterative methods to converge. To emphasize the usefulness of our tool, we make it optimize several examples of numerical methods such as Jacobis method, Newton-Raphsons method, etc. We show that significant speedups are obtained in terms of number of iterations, time and flops.
Electronic Notes in Theoretical Computer Science | 2015
Nasrine Damouche; Matthieu Martel; Alexandre Chapoutot
Numerical programs performing floating-point computations are very sensitive to the way formulas are written. Several techniques have been proposed concerning the transformation of expressions in order to improve their accuracy and now we aim at going a step further by automatically transforming larger pieces of code containing several assignments and control structures. This article presents a case study in this direction. We consider a PID controller and we transform its code in order to improve its accuracy. The experimental data obtained when we compare the different versions of the code (which are mathematically equivalent) show that those transformations have a significant impact on the accuracy of the computations.
computing frontiers | 2015
Nasrine Damouche; Matthieu Martel; Alexandre Chapoutot
Static analysis by abstract interpretation is one of the most successful techniques used to over-approximate the roundoff errors in numerical programs. In our case, we are interested in using this method to improve the accuracy of programs which perform floating-point computations, known for their sensitivity to the way formulas are written. We are interested in transforming automatically pieces of code by applying to them several rewriting rules. In this article, we demonstrate the effectiveness of our approach on a non-trivial numerical simulation code.
software and compilers for embedded systems | 2017
Nasrine Damouche; Matthieu Martel; Alexandre Chapoutot
Floating-point numbers are used to approximate the exact real numbers in a wide range of domains like numerical simulations, embedded software, etc. However, floating-point numbers are a finite approximation of real numbers. In practice, this approximation may introduce round-off errors and this can lead to catastrophic results. To cope with this issue, we have developed a tool which corrects partly these round-off errors and which consequently improves the numerical accuracy of computations by automatically transforming programs in a source to source manner. Our transformation, relies on static analysis by abstract interpretation and operates on pieces of code with assignments, conditionals and loops. In former work, we have focused on the intraprocedural transformation of programs and, in this article, we introduce the interprocedural transformation to improve accuracy.
international conference on control decision and information technologies | 2016
Nasrine Damouche; Matthieu Martel; Alexandre Chapoutot
In floating-point arithmetic, a desirable property of computations is to be accurate, since in many industrial context small or large perturbations due to round-off errors may cause considerable damages. To cope with this matter of fact, we have developed a tool which corrects these errors by automatically transforming programs in a source to source manner. Our transformation, relying on static analysis by abstract abstraction, concerns pieces of code with assignments, conditionals and loops. By transforming programs, we can significantly optimize the numerical accuracy of computations by minimizing the error relatively to the exact result. An interesting side-effect of our technique is that more accurate computations may make it possible to use smaller data-types. In this article, we show that our transformed programs, executed in single precision, may compete with not transformed codes executed in double precision.
AFM@NFM | 2017
Nasrine Damouche; Matthieu Martel
international conference on pervasive and embedded computing and communication systems | 2018
Nasrine Damouche; Matthieu Martel
international conference on control decision and information technologies | 2018
Nasrine Damouche; Matthieu Martel