Re: Sine and Cosine Accuracy on AMD64 and Pentium 4

glen herrmannsfeldt <gah@ugcs.caltech.edu>
28 May 2005 14:00:25 -0400

          From comp.compilers

Related articles
Sine and Cosine Accuracy on AMD64 and Pentium 4 scott.ladd@coyotegulch.com (Scott Robert Ladd) (2005-05-26)
Re: Sine and Cosine Accuracy on AMD64 and Pentium 4 gah@ugcs.caltech.edu (glen herrmannsfeldt) (2005-05-28)
Re: Sine and Cosine Accuracy on AMD64 and Pentium 4 jcrens@earthlink.net (Jack Crenshaw) (2005-07-17)
Re: Sine and Cosine Accuracy on AMD64 and Pentium 4 Juergen.Kahrs@vr-web.de (=?ISO-8859-1?Q?J=FCrgen_Kahrs?=) (2005-07-17)
Re: Sine and Cosine Accuracy on AMD64 and Pentium 4 gah@ugcs.caltech.edu (glen herrmannsfeldt) (2005-07-22)
Re: Sine and Cosine Accuracy on AMD64 and Pentium 4 henry@spsystems.net (2005-07-26)
| List of all articles for this month |

From: glen herrmannsfeldt <gah@ugcs.caltech.edu>
Newsgroups: comp.compilers
Date: 28 May 2005 14:00:25 -0400
Organization: Compilers Central
References: 05-05-215
Keywords: arithmetic

Scott Robert Ladd wrote:
> Let's consider the accuracy of sine and cosine. I've run tests as
> follows, using a program provided at the end of this message.


(snip)


> for (x = -range; x <= range; x += incr)
> {
> double s1 = sin(x);
> double c1 = cos(x);
> double one = s1 * s1 + c1 * c1;
> double diff = one - 1.0;
> final *= one;
>
> double accuracy1 = binary_accuracy(diff);


(snip)


I find this a very strange test for the accuracy of sin() and cos().
I suppose any that fail it are obviously bad, but a good result
doesn't give me much confidence in the functions.


A sin() that always returns 1 and cos() that always returns zero will
get a perfect score. As you are getting results better than the 53
bits for a double seems especially suspect.


-- glen


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.