le 03-31-2016 06:52 AM
Dans la finalité, mon critère d'erreur dépend d'un ratio nbr_envoyé/nb_bitOK.
Et il ne faut pas que ce ratio soit supérieur à 10e-6.
03-31-2016 07:36 AM - modifié 03-31-2016 07:37 AM
de peur qu'elle ne se perde dans la nuée des échanges,
je réitère une de mes interrogations ... une éventuelle réponse m'intéresserait beaucoup.
voici le code ci-dessous :
La fonction "égalité?" indique False !
Je fais la soustraction pour pouvoir comparer la différence avec "Epsilon". (comme repris dans la doc de cette fonction)
Cette soustraction me montre une différence "très petite" ... m'indiquant que ces 2 DBLs peuvent "probablement" être considérés comme égaux.
Mais ... cette différence n'est pas inférieure ou égale à Epsilon ! ... mais vaut 2 x Epsilon (curieux, pourquoi le double?)
Dans d'autres tests j'ai même parfois obtenu une différence de 4 x Epsilon.
Donc, impossible d'utiliser cette fonction Epsilon pour établir qu'il y a une "proximité suffisante" pour conclure à une égalité.
ma question
Pourquoi "2 x Epsilon" ? (parfois 4x)
Dès lors ... comment utiliser cette fonction Epsilon ?
le 03-31-2016 07:57 AM
Ouadji,
J'ai fait le test chez moi, en reproduisant par rapport à ton screen, et pour ma part , c'est fonctionnel avec un delta à 0 et un booléen à true.
Quelle est la valeur exacte dans tes constantes ? Je suis peut être trompé par l'arrondi d'affichage.
Cdt,
Michael
le 03-31-2016 08:21 AM
il doit y avoir des chiffres masqués
quand on fait apparaitre tous les chiffres on voit bien les arrondis
le 03-31-2016 08:31 AM
Cela ne se produit pas de façon systématique.
Cela dépend de la façon dont tu "manipules" les DBLs.
Tu modifient le nombre de digits de précision, ensuite tu reviens au format de départ (des choses comma ça)
alors ... tu induis un arrondi différent dans des DBLs qui apparemment sont parfaitement égaux.
ci-joint un VI (LV2014) dans lequel le comportement se présente (j'aurais du placer directement le VI)
Le soucis n'est pas qu'il y ait des arrondis différents et que le fonction "égalité?" indique False.
Le soucis est que l'utilisation de la fonction "Machine Epsilon" ne permet pas de confirmer l'égaité (aux arrondis près)
et c'est pourtant le but premier de cette fonction "epsilon".
le 03-31-2016 08:40 AM
n'y a t il pas un problème d'exposant
pour additioner directement les mantise ?
03-31-2016 08:54 AM - modifié 03-31-2016 08:58 AM
@thib_fr : " n'y a-t-il pas un problème d'exposant "
ce n'est pas "de moi" ... voir ici
[edit] je n'ai pas additionné les mantisses, j'ai simplement "montré" que ces 3 nombres pouvaient parfaitement se représenter en IEEE754-64bits. [/edit]
90000000000000000 = 0x13FBE85EDC90000
le 03-31-2016 10:27 AM
il est d'accord avec labview
le 03-31-2016 10:54 AM
d'où vient ce nombre hexa : 0x4373FBE85EDC9006 ??
il ne correspond pas au nombre (décimal) 90000000000000100
le 03-31-2016 11:05 AM
j'ai juste testé avec le lien que tu as donné