[Bug c/67570] comparison rules fails
ka_bena at yahoo dot fr
gcc-bugzilla@gcc.gnu.org
Thu Sep 17 12:47:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67570
--- Comment #4 from BENAÏSSA <ka_bena at yahoo dot fr> ---
Thank you very much for your reply.
Please do not take care of the first set of values for
MIN_NORMALIZED and in place you can test those new values.
MIN_NORMALIZED
1.755494 E-038 for float
2.225074 E-308 for double
3.362103 E-4932 for __float128
All remainded values stays unchanged.
Addendum to precedent note:
the proposal is valid for any floating point operation between two
float or more with final result lower than (float)MIN_DENORMALIZED,
and I will consult the C99/C11 standards and bug 323.
I apologize by advance.
A.Benaïssa
Le Mercredi 16 septembre 2015 16h45, joseph at codesourcery dot com
<gcc-bugzilla@gcc.gnu.org> a écrit :
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67570
--- Comment #3 from joseph at codesourcery dot com <joseph at codesourcery dot
com> ---
I advise looking at __FLT_MAX__, __FLT_MIN__, __FLT_DENORM_MIN__ etc. as
predefined by the compiler to see the appropriate values of various
constants.
> Multiplying (float)MIN_NORMALIZED * (float)MIN_NORMALIZED and
> viewing this value with printf("%E..) we obtains
> result = 3.109021E-076 wuich is a valid double normalized value.
That's a matter of excess range and precision. See the C99/C11 standards
and bug 323.
More information about the Gcc-bugs
mailing list