@misc{ieee754-exceptions, added-at = {2007-10-09T07:04:05.000+0200}, author = {Bindel, David and Riedy, E. Jason}, biburl = {http://www.bibsonomy.org/bibtex/240d93f2b40efad3c754aef07c5c3dc08/ejr}, ejr-withauthor = {David Bindel}, howpublished = {IEEE-754r revision meeting}, interhash = {cf9312bb1b9aa5736b512a5176febd41}, intrahash = {40d93f2b40efad3c754aef07c5c3dc08}, keywords = {floatingpoint ieee754}, month = {August}, role = {presentation}, timestamp = {2007-10-09T07:04:05.000+0200}, title = {Exception Handling Interfaces, Implementations, and Evaluation}, url = {http://grouper.ieee.org/groups/754/meeting-materials/2002-08-22-pres.pdf}, year = 2002 } @misc{lang-tools-ieee754, added-at = {2007-10-09T07:04:05.000+0200}, author = {Riedy, E. Jason}, biburl = {http://www.bibsonomy.org/bibtex/2d9acf137472c48cd39527976dd61696d/ejr}, howpublished = {{ARITH}'05}, interhash = {b9d57a4176d2921d2e8a7de294205eaa}, intrahash = {d9acf137472c48cd39527976dd61696d}, keywords = {floatingpoint ieee754}, role = {panel participant}, timestamp = {2007-10-09T07:04:05.000+0200}, title = {Modern Language Tools and {754R}}, url = {http://purl.oclc.org/NET/jason-riedy/resume/material/arith17-slides.pdf}, year = 2005 } @techreport{tridiag-lawn, added-at = {2007-10-09T07:02:59.000+0200}, author = {Marques, Osni A. and Riedy, E. Jason and Vömel, Christof}, biburl = {http://www.bibsonomy.org/bibtex/2cdded1a468730acebe1a5b72cd540dd8/ejr}, institution = {Netlib}, interhash = {92b6c9b42a7401843f1729062b423a8d}, intrahash = {cdded1a468730acebe1a5b72cd540dd8}, keywords = {eigenvalue floatingpoint ieee754 lapack lawn}, lawn = {172}, month = {September}, note = {Also issued as UCB//CSD-05-1414; expanded from SISC version}, number = 172, timestamp = {2007-10-09T07:02:59.000+0200}, title = {Benefits of IEEE-754 Features in Modern Symmetric Tridiagonal Eigensolvers}, type = {LAPACK Working Note}, url = {http://www.netlib.org/lapack/lawnspdf/lawn172.pdf}, year = 2005 } @inproceedings{arith-lang, abstract = {The entire process of creating and executing applications that solve interesting problems with acceptable cost and accuracy involves a complex interaction among hardware, system software, programming environments, mathematical software libraries, and applications software, all mediated by standards for arithmetic, operating systems, and programming environments. This panel will discuss various issues arising among these various contending points of view, sometimes from the point of view of issues raised during the current IEEE 754R standards revision effort.}, added-at = {2007-10-09T06:59:39.000+0200}, author = {Hough, David and Hay, Bill and Kidder, Jeff and Riedy, E. Jason and Jr., Guy L. Steele and Thomas, Jim}, biburl = {http://www.bibsonomy.org/bibtex/2c4c16874ca7686a01174ba4b107220f4/ejr}, booktitle = {17th IEEE Symposium on Computer Arithmetic (ARITH'05)}, doi = {10.1109/ARITH.2005.10}, interhash = {e8f49b4417861f41ce18765f600068ed}, intrahash = {c4c16874ca7686a01174ba4b107220f4}, isbn = {0-7695-2366-8}, keywords = {floatingpoint ieee754}, timestamp = {2007-10-09T06:59:39.000+0200}, title = {Arithmetic Interactions: From Hardware to Applications}, url = {http://purl.oclc.org/NET/jason-riedy/resume/material/arith17-slides.pdf}, year = 2005 } @article{tridiag-sisc, abstract = {Bisection is one of the most common methods used to compute the eigenvalues of symmetric tridiagonal matrices. Bisection relies on the Sturm count: For a given shift sigma, the number of negative pivots in the factorization $T - \sigma I = LDL^T$ equals the number of eigenvalues of T that are smaller than sigma. In IEEE-754 arithmetic, the value $\infty$ permits the computation to continue past a zero pivot, producing a correct Sturm count when $T$ is unreduced. Demmel and Li showed [IEEE Trans. Comput., 43 (1994), pp. 983–992] that using $\infty$ rather than testing for zero pivots within the loop could significantly improve performance on certain architectures. When eigenvalues are to be computed to high relative accuracy, it is often preferable to work with $LDL^T$ factorizations instead of the original tridiagonal $T$. One important example is the MRRR algorithm. When bisection is applied to the factored matrix, the Sturm count is computed from $LDL^T$ which makes differential stationary and progressive qds algorithms the methods of choice. While it seems trivial to replace $T$ by $LDL^T$, in reality these algorithms are more complicated: In IEEE-754 arithmetic, a zero pivot produces an overflow followed by an invalid exception (NaN, or "Not a Number") that renders the Sturm count incorrect. We present alternative, safe formulations that are guaranteed to produce the correct result. Benchmarking these algorithms on a variety of platforms shows that the original formulation without tests is always faster provided that no exception occurs. The transforms see speed-ups of up to 2.6x over the careful formulations. Tests on industrial matrices show that encountering exceptions in practice is rare. This leads to the following design: First, compute the Sturm count by the fast but unsafe algorithm. Then, if an exception occurs, recompute the count by a safe, slower alternative. The new Sturm count algorithms improve the speed of bisection by up to 2x on our test matrices. Furthermore, unlike the traditional tiny-pivot substitution, proper use of IEEE-754 features provides a careful formulation that imposes no input range restrictions.}, added-at = {2007-10-09T06:57:00.000+0200}, author = {Marques, Osni A. and Riedy, E. Jason and Vömel, Christof}, biburl = {http://www.bibsonomy.org/bibtex/22b60b413d9447d55594c945679fdb1dd/ejr}, doi = {10.1137/050641624}, interhash = {6e18714f1821dd9793eb11c311a49c1a}, intrahash = {2b60b413d9447d55594c945679fdb1dd}, issn = {1064-8275}, journal = {SIAM Journal on Scientific Computing}, keywords = {eigenvalue floatingpoint ieee754 siam sisc}, mrclass = {65F15}, mrnumber = {MR2272181}, number = 5, pages = {1613--1633}, timestamp = {2007-10-09T06:57:00.000+0200}, title = {Benefits of {IEEE-754} Features in Modern Symmetric Tridiagonal Eigensolvers}, volume = 28, year = 2006 }