This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug math/13854] New: tan() is incorrect for large inputs on x86_64 and x86
- From: "aj at suse dot de" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sources dot redhat dot com
- Date: Thu, 15 Mar 2012 15:09:05 +0000
- Subject: [Bug math/13854] New: tan() is incorrect for large inputs on x86_64 and x86
- Auto-submitted: auto-generated
http://sourceware.org/bugzilla/show_bug.cgi?id=13854
Bug #: 13854
Summary: tan() is incorrect for large inputs on x86_64 and x86
Product: glibc
Version: 2.13
Status: NEW
Keywords: glibc_2.15
Severity: normal
Priority: P2
Component: math
AssignedTo: unassigned@sourceware.org
ReportedBy: aj@suse.de
CC: aj@suse.de, bugdal@aerifal.cx,
carlos@systemhalted.org, ppluzhnikov@google.com,
vincent-srcware@vinc17.net
Depends on: 13658
Blocks: 13851, 13852
Classification: Unclassified
+++ This bug was initially created as a clone of Bug #13658 +++
tan is inaccurate, see bug #13658 for a reference.
Test program:
#define _GNU_SOURCE
#include <stdio.h>
#include <math.h>
int main (void)
{
volatile float xf = 1e22;
float s1f, s2f;
volatile double xd = 1e22;
double s1d, s2d;
volatile long double xl = 1e22;
long double s1l, s2l;
s1d = tan (xd);
printf ("double: \n");
printf ("x = %.17g\n", xd);
printf ("s1 = %.17g\n", s1d);
s1f = tanf (xf);
printf ("\nfloat: \n");
printf ("x = %.17g\n", xf);
printf ("s1 = %.17g\n", s1f);
s1l = tanl (xl);
printf ("\nlong double: \n");
printf ("x = %.17Lg\n", xl);
printf ("s1 = %.17Lg\n", s1l);
return 0;
}
On x86-64:
double:
x = 1e+22
s1 = -1.6287782256068988
float:
x = 9.9999997781963084e+21
s1 = -1.0810239315032959
long double:
x = 1e+22
s1 = -0.52180662513577755
And on x86:
double:
x = 1e+22
s1 = -0.52180662513577758
float:
x = 9.9999997781963084e+21
s1 = -0.29305437207221985
long double:
x = 1e+22
s1 = -0.52180662513577755
The correct result of tan (1e22) is:
s1 = -1.6287782256068988
--
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.