# [Matrix-SIG] An Experiment in code-cleanup.

**Konrad Hinsen
**
hinsen@cnrs-orleans.fr

*Wed, 9 Feb 2000 18:17:30 +0100*

>* silently). Consider a function
*>*
*>* k0 = 100
*>* k = 99
*>* while k < k0:
*>* ..
*>* k0 = k
*>* k = ...
*>*
*>* which refines a calculation until the measure k stops decreasing.
*>* This algorithm may terminate when k is a float, but _fail_ when
*>* k is a double -- the extra precision may cause the algorithm
*
I'd call this a buggy implementation. Convergence criteria should be
explicit and not rely on the internal representation of data
types. Neither Python nor C guarantees you any absolute bounds for
precision and value range, and even languages that do (such as Fortran
9x) only promise to give you a data type that is *at least* as big as
your specification.
>* programming is all about. Numerical programmers need to know
*>* how big numbers are, and how much significance they have,
*>* and optimise calculations accordingly -- sometimes by _using_
*>* the precision of the working types to advantage.
*
If you care at all about portability, you shouldn't even think about
this.
Konrad.
--
-------------------------------------------------------------------------------
Konrad Hinsen | E-Mail: hinsen@cnrs-orleans.fr
Centre de Biophysique Moleculaire (CNRS) | Tel.: +33-2.38.25.55.69
Rue Charles Sadron | Fax: +33-2.38.63.15.17
45071 Orleans Cedex 2 | Deutsch/Esperanto/English/
France | Nederlands/Francais
-------------------------------------------------------------------------------