Anomalie #68

Erreur dans la macro FLOAT_EQ (comparaison de deux floats) et proposition de solution

Added by Vincent Morard over 7 years ago.

Status:NouveauStart date:02/09/2010
Priority:NormalDue date:
Assignee:-% Done:

100%

Category:-Estimated time:0.00 hour
Target version:-

Description

La macro FLOAT_EQ permet de comparer deux float à Epsilon près.

Cependant : FLOAT_EQ(10.0,10.0) retourne TRUE -->OK
mais
V=DataTraits<F_SIMPLE >::default_value::max_value();
FLOAT_EQ(V,V) retourne FALSE !!!

Il faut remplacer la macro actuelle:
#define FLOAT_EQ(x,v) (((v - EPSILON) < x) && (x <( v + EPSILON)))

par celle-ci:
#define FLOAT_EQ(x,y) (abs(x-y) < EPSILON)

Also available in: Atom PDF