This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug math/13381] New: rounding problem wih sincosl
- From: "gastineau at imcce dot fr" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sources dot redhat dot com
- Date: Fri, 04 Nov 2011 12:50:55 +0000
- Subject: [Bug math/13381] New: rounding problem wih sincosl
- Auto-submitted: auto-generated
http://sourceware.org/bugzilla/show_bug.cgi?id=13381
Bug #: 13381
Summary: rounding problem wih sincosl
Product: glibc
Version: 2.14
Status: NEW
Severity: normal
Priority: P2
Component: math
AssignedTo: aj@suse.de
ReportedBy: gastineau@imcce.fr
Classification: Unclassified
With some input values, the sincosl function and sinl returns a different value
for the sin part.
This problem occurs with glibc 2.14.
The code source is at the end of the message.
The output with these compilers is :
gcc -m64 bugsincos.c -O0 -o bugsincos -lm
./bugsincos
diffC=0.000000e+00 C1=0xf.e8f0776670a18eap-4 C=0xf.e8f0776670a18eap-4
diffS=-6.776264e-21 S1=0xd.903ba52345a81a4p-7 S=0xd.903ba52345a81a5p-7
diffS must be 0 if same algorithm is used inside the math library.
If I compile with "-O3", the problem doesn't occur because it doesn't use the
math library.
I give some system information below and the source code.
MickaÃl
xxxxx$ gcc -m64 bugsincos.c -O0 -o bugsincos -lm
xxxxx$ ./bugsincos
diffC=0.000000e+00 C1=0xf.e8f0776670a18eap-4 C=0xf.e8f0776670a18eap-4
diffS=-6.776264e-21 S1=0xd.903ba52345a81a4p-7 S=0xd.903ba52345a81a5p-7
xxxxx$ nm bugsincos | grep sincosl
U sincosl@@GLIBC_2.2.5
xxxxx$ rpm -qa | grep glibc
glibc-static-2.14-5.x86_64
glibc-headers-2.14-5.x86_64
glibc-devel-2.14-5.x86_64
glibc-2.14-5.i686
glibc-common-2.14-5.x86_64
glibc-2.14-5.x86_64
xxxxx$ gcc --version
gcc (GCC) 4.6.1 20110908 (Red Hat 4.6.1-9)
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-------------- cut here----------------
#include <mathimf.h>
#include <stdio.h>
int main()
{
long double X=0xd.96c3941c1094ed5p-7L;
long double C=cosl(X);
long double S=sinl(X);
long double C1, S1;
sincosl(X, &S1, &C1);
printf("diffC=%Le C1=%La C=%La\n", C1-C, C1, C);
printf("diffS=%Le S1=%La S=%La\n", S1-S, S1, S);
return 0;
}
-------------- cut here----------------
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.