________________________________________ From: Jordi Gutiérrez Hermoso [[email protected]] Sent: Wednesday, January 26, 2011 6:11 PM To: Chandra Sekhar Mallarapu Cc: [email protected] Subject: Re: [Help-gsl] strange behaviour of addition of floats and exponential function
2011/1/26 Chandra Sekhar Mallarapu <[email protected]>: > From: Jordi Gutiérrez Hermoso [[email protected]] > On 26 January 2011 09:18, Chandra Sekhar Mallarapu > <[email protected]> wrote: >> I am trying to do C=A+B, where >> A=0.0000000000000000021675312011946934078589202290913712085038187871567725434340800916288571897894144058 > > What data types are A, B, and C? I don't think there are any float > types in any common architecture that are broad enough to be accurate > to that many digits. > > A, B, C are double data type in C. Even if its not accurate till the > last digit, shouldn't it be accurate to some digits atleast? I think you ought to consult http://en.wikipedia.org/wiki/Floating_point_arithmetic for a brief overview and http://perso.ens-lyon.fr/jean-michel.muller/goldberg.pdf more a more in-depth treatment. In short, your expectations of how floating point arithmetic works need refinement. Thanks. What about this question? gsl_sf_exp(0.0000000000000000000000005731906218817495693050559208091994557794428814131237532386326994000326495726) gives me the value as 1.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, instead of the actual value. What can I do to get a correct answer for the result of the exponential function? --chandra _______________________________________________ Help-gsl mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-gsl
