Deutsch   English   Français   Italiano  
<j11jtbF7r47U1@mid.individual.net>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!weretis.net!feeder6.news.weretis.net!feeder8.news.weretis.net!3.eu.feeder.erje.net!feeder.erje.net!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From: pehache <pehache.7@gmail.com>
Newsgroups: fr.comp.sys.mac.programmation
Subject: =?UTF-8?Q?Re=3a_Y_a_comme_un_d=c3=a9faut?=
Date: Sat, 4 Dec 2021 17:39:07 +0100
Lines: 97
Message-ID: <j11jtbF7r47U1@mid.individual.net>
References: <1pjmz6k.1v0nod6mfq0rkN%josephb@nowhere.invalid>
 <j0vto8FsgsuU1@mid.individual.net>
 <1pjnmh9.11fmmgjvnnxyuN%josephb@nowhere.invalid>
 <j1168nF58rjU1@mid.individual.net>
 <1pjo2wu.1hc52gb1l7s1a3N%josephb@nowhere.invalid>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: individual.net ipO9/47JVRpu4JgsbUFtAAomrH6WTcinU5OddIsDErAl1yumqB
Cancel-Lock: sha1:TzBS3N/A0+ltnUcsyuItH+izuls=
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:78.0)
 Gecko/20100101 Thunderbird/78.10.1
In-Reply-To: <1pjo2wu.1hc52gb1l7s1a3N%josephb@nowhere.invalid>
Content-Language: fr
Bytes: 5586

Le 04/12/2021 à 15:25, Joseph-B a écrit :
> pehache <pehache.7@gmail.com> wrote:
> 
>> Le truc classique c'est (1+1e-16)-1 dont le résultat est zéro
>> exactement, parce que la représentation d'un flottant 64 bits ne peut
>> pas différencier (1+1e-16) de 1
> 
> Je me moque éperdument que les limites du calcul en virgule flottante à
> e-14 ou e-16 les confondent à zéro, 

Si tu n'essayes pas de comprendre ça, la discussion ne peut en effet pas 
aller bien loin.

> ce que vous n'avez pas l'air de
> comprendre c'est qu'il n'est pas admissible de la part d'ingénieurs de
> laisser faire en sorte que leur bijou d'intelligence et de science ne
> soit pas cohérent avec la réalité triviale.

Les bijoux en question sont tout à fait cohérents avec la "réalité 
triviale" à condition d'être utilisés avec discernement. En l'occurrence 
ce que tu considères comme étant ta "réalité triviale" est plus du 
ressort des calculs sur des nombres entiers ou en virgule fixe qu'en 
virgule flottante. A chaque problème le bon outil, on peut arriver à 
planter un clou avec un tournevis mais ce n'est pas top.

Je te signale qu'à ma connaissance tout ce qui est informatique 
financière/comptable n'utilise pas les calculs en virgule flottante mais 
en virgule fixe, justement pour ne pas tomber dans les problèmes 
d'arrondis inhérents à la représentation en virgule flottante. Certains 
langage ont des types en virgule fixe (typiquement le COBOL), et 
certains systèmes informatiques avaient même le support de la virgule 
fixe en hardware.

> 
>   Pour reprendre l'exemple de MV,
> (2.001 -2) avec une calculette à moins d'un euro retournera 0,001
> Ouais, mais c'est moche et trivial tandis que
> (2.001 -2) dans AppleScript retournera 9.9999999999989E-4

Historiquement, les calculettes basiques travaillaient en virgule fixe, 
justement. En virgule fixe, 2.001 ou 2.54 ont une représentation exacte.

Après, même quand un système/langage travaille en virgule flottante il 
ne faut pas confondre ce qu'il affiche et ce qu'il représente en 
interne. Par exemple dans Octave (Matlab-like) :

 >> (2.001-2)
ans =    1.0000e-03
 >> (2.001-2)*1e18
ans =    1.0000e+15
 >> int64((2.001-2)*1e18)
ans = 999999999999890

Il peut y avoir une mise en forme du résultat pour que ceux qui seraient 
choqués par le résultat informatique ne crient pas au scandale :)

> et ça c'est dû à une science tellement supérieure qu'elle devrait clore
> le bec des ignorants même si c'est en contradiction avec l'enseignement
> de l'arithmétique élémentaire.

Le truc c'est *jamais* personne n'a prétendu que l'arithmétique en 
virgule flottante était de l'arithmétique exacte. Dans l'enseignement du 
calcul numérique sur ordinateur c'est une des premières choses qu'on 
apprend (ou qu'on devrait apprendre) : en virgule flottante on fait des 
calculs FAUX. Tout l'enjeu est alors de maîtriser les pertes de 
précision au cours des calcul (car les erreurs d'arrondis ont la 
désagréable propriété de se cumuler et même parfois d'exploser), et de 
savoir écrire du code de façon à les minimiser.


> Mac, PC, Supercalculateur ou calculette à 2 balles, ne sont que des put…
> d'outils./
> Il n'est pas acceptable que ce soit à l'utilisateur lambda dans le cadre
> de son utilisation basique (2.001 -2 sur un Mac) de ne s'en prendre qu'à
> lui même parce qu'il a eu l'impudence de soumettre un calcul dont le
> résultat affiché (pour "légitime" qu'il soit) est en contradiction avec
> ce que ces pauvres ignorantins de maîtres d'école ont passé des vies à
> enseigner.

"A chaque problème le bon outil". Si tu plante ton clou avec un 
tournevis ce n'est pas au fabricant du tournevis qu'il faut t'en prendre 
si ça ne va pas.

> 
> D'après toi et OM ce serait au clampin utilisateur d'établir des
> procédures de tests de validité des librairies mathématiques que les
> ingénieurs d'Apple n'ont pas prix la peine de faire ?

Non mais déconner tu penses vraiment que les ingénieurs d'Apple sont 
idiots à ce point ?


-- 
"...[la moto] un engin qui par les lois de la physique ne peut pas
freiner en courbe.", SLD sur fr.rec.bricolage
"...sois ouvert aux idées des autres pour peu qu'elles aillent dans le
même sens que les tiennes.", ST sur fr.bio.medecine