Bonjour,
Amené à comparer des doubles, je me pose une question quasi rhétorique sur leur comparaison : est-ce que si, dans R, a > b, un mécanisme garantit que dans du code a > b ?
Un exemple sera plus parlant qu'un long discours :
premier double a, dont la valeur réelle est 42 et dont la valeur "codée" est 42.000 000 1
second double b, dont la valeur réelle est 42.000 000 01, et dont la valeur "codée" est 42.000 000 01
Si je considère epsilon = 10^-5, on se retrouve avec dans R, a < b et dans le programme, a > b, ce qui pourrait poser des problèmes si je ne m'intéresse pas qu'au fait qu'ils soient distincts, mais bien au fait que l'un soit supérieur à l'autre.
Et si aucun mécanisme ne garantit cela (et je ne vois pas comment un tel mécanisme pourrait exister), le code de la FAQ C ne peut pas être considéré comme valide : on peut dire si la distance entre a et b est inférieur à epsilon, et dans ce cas ils sont égaux, mais on ne peut tester l'infériorité ou la supériorité que si la distance entre a et b est supérieure à epsilon.
Je ne suis pas certain d'avoir été très clair, et si c'est le cas, n'hésitez pas à me le dire pour que je reformule.
Partager