This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: sparc, ia64: Compute cos(M_PI_2l) for your 128-bit long double please.


From: Rich Felker <dalias@aerifal.cx>
Date: Thu, 11 Apr 2013 08:39:02 -0400

> On Wed, Apr 10, 2013 at 11:38:50PM -0400, David Miller wrote:
>> From: "Carlos O'Donell" <carlos@redhat.com>
>> Date: Wed, 10 Apr 2013 16:47:26 -0400
>> 
>> > Could you check the answer for cos(M_PI_2l) on sparc for 128-bit
>> > long double?
>> 
>> 1) printf ("%.100Le\n", (long double)(M_PI_2l/2.0L));
> 
> 100 is not enough. The precision needs to be equal to at least the
> number of bits in the significand, and if the exponent is negative
> (not the case here), then it needs to be at least the sum of the
> exponent and number of bits in the significand.
> 
> I would just use something like "%.100000g\n". The %g format discards
> trailing zeros, and the huge precision will ensure you don't miss
> anything.


Yes we did lose about 11 digits of precision, here's what I get with all digits
represented:

1) 1.5707963267948966192313216916397513987395340490686477865022521659371483593314877680313657037913799285888671875e+00


2) 4.33590506506189051239852201302167598438116167312826517088796786054021932698682098964720558908937992221075038813778... × 10^-35


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]