+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- MHonArc v2.6.18 -->
+<!--X-Subject: Re: round32 ( round64 ( X ) ) ?= round32 ( X ) -->
+<!--X-From-R13: "@ryfba V. T. Prror" <orrorN[OFV.GFOV.SRG> -->
+<!--X-Date: Thu, 31 Mar 2011 16:42:18 -0700 -->
+<!--X-Content-Type: text/plain -->
+<!--X-Head-End-->
+<html><head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+ <title>Re: round32 ( round64 ( X ) ) ?= round32 ( X )</title>
+ <meta name="pagetype" content="Index">
+ <link rel="stylesheet" href="beebe2011round32_files/754.css">
+</head>
+
+<body>
+
+<div class="msgcontents">
+<!--X-Body-Begin-->
+<!--X-User-Header-->
+<!--X-User-Header-End-->
+<!--X-TopPNI-->
+<hr>
+[<a href="http://grouper.ieee.org/groups/754/email/msg04165.html">Date Prev</a>][<a href="http://grouper.ieee.org/groups/754/email/msg04164.html">Date Next</a>][<a href="http://grouper.ieee.org/groups/754/email/msg04171.html">Thread Prev</a>][<a href="http://grouper.ieee.org/groups/754/email/msg04167.html">Thread Next</a>][<a href="http://grouper.ieee.org/groups/754/email/maillist.html#04169">Date Index</a>][<a href="http://grouper.ieee.org/groups/754/email/threads.html#04169">Thread Index</a>]
+<!--X-TopPNI-End-->
+<!--X-MsgBody-->
+<!--X-Subject-Header-Begin-->
+<h1>Re: round32 ( round64 ( X ) ) ?= round32 ( X )</h1>
+<hr>
+<!--X-Subject-Header-End-->
+<!--X-Head-of-Message-->
+<ul>
+<li><em>To</em>: <a href="mailto:
[email protected]">STDS-754@xxxxxxxxxxxxxxxxx</a></li>
+<li><em>Subject</em>: Re: round32 ( round64 ( X ) ) ?= round32 ( X )</li>
+<li><em>From</em>: "Nelson H. F. Beebe" <<a href="mailto:
[email protected]">beebe@xxxxxxxxxxxxx</a>></li>
+<li><em>Date</em>: Thu, 31 Mar 2011 17:41:22 -0600 (MDT)</li>
+<li><em>List-help</em>: <<a href="http://listserv.ieee.org/cgi-bin/wa?LIST=STDS-754">http://listserv.ieee.org/cgi-bin/wa?LIST=STDS-754</a>>, <<a href="mailto:
[email protected]?body=INFO%20STDS-754">mailto:
[email protected]?body=INFO%20STDS-754</a>></li>
+</ul>
+<!--X-Head-of-Message-End-->
+<!--X-Head-Body-Sep-Begin-->
+<hr>
+<!--X-Head-Body-Sep-End-->
+<!--X-Body-of-Message-->
+<pre style="margin: 0em;">Peter Lawrence asks about the infamous problem of double rounding on
+systems with long internal registers (Honeywell mainframes of 1970s,
+Motorola 68K, and current Intel x86 and x86_64 families).
+
+Double rounding is indeed a nuisance, and there is a surprising recent
+discovery that it could have been prevented if there were an unusual
+rounding mode, round-to-odd (RO(x)). The authors of the paper below
+show how to implement that rounding in software, and discuss how it
+can be used to fix the double-rounding problem.
+
+It is too late now to repair the mistakes of the past that are present
+in millions of installed systems, but it is good to know that careful
+research before designing hardware can be helpful.
+
+@String{j-IEEE-TRANS-COMPUT = "IEEE Transactions on Computers"}
+
+@Article{Boldo:2008:EFC,
+ author = "Sylvie Boldo and Guillaume Melquiond",
+ title = "Emulation of a {FMA} and Correctly Rounded Sums:
+ Proved Algorithms Using Rounding to Odd",
+ journal = j-IEEE-TRANS-COMPUT,
+ volume = "54",
+ number = "4",
+ pages = "462--471",
+ month = apr,
+ year = "2008",
+ CODEN = "ITCOB4",
+ DOI = "<a rel="nofollow" href="http://dx.doi.org/10.1109/TC.2007.70819%22">http://dx.doi.org/10.1109/TC.2007.70819"</a>;,
+ ISSN = "0018-9340",
+ bibdate = "Sat Feb 19 18:44:18 2011",
+ abstract = "Rounding to odd is a nonstandard rounding on
+ floating-point numbers. By using it for some
+ intermediate values instead of rounding to nearest,
+ correctly rounded results can be obtained at the end of
+ computations. We present an algorithm for emulating the
+ fused multiply-and-add operator. We also present an
+ iterative algorithm for computing the correctly rounded
+ sum of a set of floating-point numbers under mild
+ assumptions. A variation on both previous algorithms is
+ the correctly rounded sum of any three floating-point
+ numbers. This leads to efficient implementations, even
+ when this rounding is not available. In order to
+ guarantee the correctness of these properties and
+ algorithms, we formally proved them by using the Coq
+ proof checker.",
+ acknowledgement = ack-nhfb,
+ fjournal = "IEEE Transactions on Computers",
+ keyword = "round-to-odd (RO(x))",
+}
+
+See also discussions of the double-rounding problem in this recent
+useful book:
+
+@String{pub-BIRKHAUSER-BOSTON = "Birkh{\"a}user Boston Inc."}
+@String{pub-BIRKHAUSER-BOSTON:adr = "Cambridge, MA, USA"}
+
+@Book{Muller:2010:HFP,
+ author = "Jean-Michel Muller and Nicolas Brisebarre and Florent
+ de Dinechin and Claude-Pierre Jeannerod and Vincent
+ Lef{\`e}vre and Guillaume Melquiond and Nathalie Revol
+ and Damien Stehl{\'e} and Serge Torres",
+ title = "Handbook of Floating-Point Arithmetic",
+ publisher = pub-BIRKHAUSER-BOSTON,
+ address = pub-BIRKHAUSER-BOSTON:adr,
+ pages = "xxiii + 572",
+ year = "2010",
+ DOI = "<a rel="nofollow" href="http://dx.doi.org/10.1007/978-0-8176-4704-9%22">http://dx.doi.org/10.1007/978-0-8176-4704-9"</a>;,
+ ISBN = "0-8176-4704-X",
+ ISBN-13 = "978-0-8176-4704-9",
+ LCCN = "QA76.9.C62 H36 2010",
+ bibdate = "Thu Jan 27 16:18:58 2011",
+ price = "US\$90 (est.)",
+ acknowledgement = ack-nhfb,
+}
+
+-------------------------------------------------------------------------------
+- Nelson H. F. Beebe Tel: +1 801 581 5254 -
+- University of Utah FAX: +1 801 581 4148 -
+- Department of Mathematics, 110 LCB Internet e-mail: beebe@xxxxxxxxxxxxx -
+- 155 S 1400 E RM 233 beebe@xxxxxxx beebe@xxxxxxxxxxxx -
+- Salt Lake City, UT 84112-0090, USA URL: <a rel="nofollow" href="http://www.math.utah.edu/%7Ebeebe/">http://www.math.utah.edu/~beebe/</a> -
+-------------------------------------------------------------------------------
+
+</pre>
+<!--X-Body-of-Message-End-->
+<!--X-MsgBody-End-->
+<!--X-Follow-Ups-->
+<hr>
+<!--X-Follow-Ups-End-->
+<!--X-References-->
+<!--X-References-End-->
+<!--X-BotPNI-->
+<ul>
+<li>Prev by Date:
+<strong><a href="http://grouper.ieee.org/groups/754/email/msg04165.html">RE: round32 ( round64 ( X ) ) ?= round32 ( X )</a></strong>
+</li>
+<li>Next by Date:
+<strong><a href="http://grouper.ieee.org/groups/754/email/msg04164.html">Re: round32 ( round64 ( X ) ) ?= round32 ( X )</a></strong>
+</li>
+<li>Previous by thread:
+<strong><a href="http://grouper.ieee.org/groups/754/email/msg04171.html">round32 ( round64 ( X ) ) ?= round32 ( X )</a></strong>
+</li>
+<li>Next by thread:
+<strong><a href="http://grouper.ieee.org/groups/754/email/msg04167.html">FW: ISO/IEC/IEEE 60559 (IEEE Std 754-2008)</a></strong>
+</li>
+<li>Index(es):
+<ul>
+<li><a href="http://grouper.ieee.org/groups/754/email/maillist.html#04169"><strong>Date</strong></a></li>
+<li><a href="http://grouper.ieee.org/groups/754/email/threads.html#04169"><strong>Thread</strong></a></li>
+</ul>
+</li>
+</ul>
+
+<!--X-BotPNI-End-->
+<!--X-User-Footer-->
+<!--X-User-Footer-End-->
+</div>
+ <div class="lowernavbar">
+ <p>
+ <a href="http://grouper.ieee.org/groups/754/">754</a> |
+ <a href="http://grouper.ieee.org/groups/754/revision.html">revision</a> |
+ <a href="http://grouper.ieee.org/groups/754/faq.html">FAQ</a> |
+ <a href="http://grouper.ieee.org/groups/754/reading.html">references</a> |
+ <a href="http://grouper.ieee.org/groups/754/email/thread.html">list archive</a>
+ </p>
+ </div>
+
+
+</body></html>
\ No newline at end of file