[CLN-list] Floating point overflow discrepancy
    Michael Miller 
    millermj at lemoyne.edu
       
    Mon Feb 21 07:05:17 CET 2011
    
    
  
The following code (to calculate x^100000):
   cl_R x="1.0L100000", y=1;
   for (int i=1; i<=100000; i++) y=x*y;
   cout << y << "\n";
   cout << exp(100000*ln(x)) << "\n";;
results in the output
   1.00000000000000302104L10000000000
   terminate called after throwing an instance of
     'cln::floating_point_overflow_exception'
   what():  floating point overflow.
   Aborted
I know that these are very large numbers, but the two calculations are
computing the same value.  If the first doesn't overflow, then why does
the second?
Mike
    
    
More information about the CLN-list
mailing list