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-bugzi...@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.

Reply via email to