Re: Sine and Cosine Accuracy on AMD64 and Pentium 4

henry@spsystems.net (Henry Spencer)
26 Jul 2005 13:18:20 -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: henry@spsystems.net (Henry Spencer)
Newsgroups: comp.compilers
Date: 26 Jul 2005 13:18:20 -0400
Organization: SP Systems, Toronto, Canada
References: 05-05-215 05-07-075 05-07-082
Keywords: arithmetic, testing

glen herrmannsfeldt <gah@ugcs.caltech.edu> wrote:
>There are algorithms where maintaining identities is more important
>than accuracy, some of which go by the name symplectic.
>A dynamics problem, for example, may find that conservation of energy
>is more important than the accurate final positions of the objects.


It's *very* common for numerical algorithms to depend much more on the
accuracy with which relationships between intermediate values are
preserved than on the accuracy of the individual intermediate values.


Kahan & Darcy observed, for example, that what matters to most matrix
algorithms is not the component-by-component accuracy of matrix
multiplication, but the magnitude of the error in some matrix norm
(that is, the size of `norm(product - A*B) / (norm(A)*norm(B))')
introduced by multiplication. This is significant because re-ordering
of the operations in matrix multiply to exploit pipelines, caches,
etc. -- which can make a huge difference in speed -- can noticeably
change component values but doesn't introduce significant error in
reasonable norms.


It can be very difficult to figure out just which relationships are
crucial to a particular algorithm, and how best to preserve them.
--
"Think outside the box -- the box isn't our friend." | Henry Spencer
                                                                -- George Herbert | henry@spsystems.net


Post a followup to this message

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