English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

Browse thread
RE: [Caml-list] Efficient and canonical set representation?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2003-11-12 (17:20)
From: Diego Olivier Fernandez Pons <Diego.FERNANDEZ_PONS@e...>
Subject: Re: [Caml-list] Rounding mode

> Somewhat off topic but why is this necessary from a numerical math
> type of perspective. I am honestly curious as I don't see how this
> would interact with the calculation in a meaningful way.

You are right when you say that there are many sources of errors in
numerical computations and that rounding errors are usually
insignificant with respect to them.

The point is that stochastic arithmetic (and its deterministic variant
interval arithmetic) are useful to find where the accurancy of your
computation is falling drastically (e.g. cancellations)

I really haven't the place to explain extensively how CESTAC works but
there are a few explanations in the ANP website


(CADNA for C/C++ source codes, user's guide. Chapter 4. Survey of the
CESTAC method. Many examples also on the homepages).

The main idea is that in a first order approximation, the number of
significant digits of a result can be estimated with respects to the
dispersion of the different values it can take using several rounding

Then, you can avoid doing unstable computations like dividing by a
small number (epsilon) very noised which makes you believe it is a
good 'pivot' in a gaussian resolution, etc. The whole computation will
then give a more accurate value.

The website gives an example where usual gauss method finds

   x1 = 60 x2 = - 8.9 x3 = 0.0 and x4 = 1.0

when you estimate the errors, you find

   x1 = 1.0 x2 = 1.0 x3 = 0.1 e-07 and x4 = 1.0

exact values are

   x1 = 1 x2 = 1 x3 = 0.1 e-07 x4 = 1

The difference is only due to a 'bad' pivot succesfully detected and
therefore avoided.

        Diego Olivier

To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners