$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r83622 - sandbox/precision/libs/precision/doc/html/precision
From: pbristow_at_[hidden]
Date: 2013-03-28 09:58:50
Author: pbristow
Date: 2013-03-28 09:58:49 EDT (Thu, 28 Mar 2013)
New Revision: 83622
URL: http://svn.boost.org/trac/boost/changeset/83622
Log:
Missing html
Added:
   sandbox/precision/libs/precision/doc/html/precision/cmathinterop.html   (contents, props changed)
   sandbox/precision/libs/precision/doc/html/precision/complexinteract.html   (contents, props changed)
   sandbox/precision/libs/precision/doc/html/precision/complexinterop.html   (contents, props changed)
   sandbox/precision/libs/precision/doc/html/precision/context.html   (contents, props changed)
   sandbox/precision/libs/precision/doc/html/precision/limitsinterop.html   (contents, props changed)
   sandbox/precision/libs/precision/doc/html/precision/literals.html   (contents, props changed)
   sandbox/precision/libs/precision/doc/html/precision/lowerprecision.html   (contents, props changed)
   sandbox/precision/libs/precision/doc/html/precision/microfpu.html   (contents, props changed)
   sandbox/precision/libs/precision/doc/html/precision/quadprecision.html   (contents, props changed)
   sandbox/precision/libs/precision/doc/html/precision/thestandard.html   (contents, props changed)
   sandbox/precision/libs/precision/doc/html/precision/thetypedefs.html   (contents, props changed)
   sandbox/precision/libs/precision/doc/html/precision/thetypes.html   (contents, props changed)
Added: sandbox/precision/libs/precision/doc/html/precision/cmathinterop.html
==============================================================================
--- (empty file)
+++ sandbox/precision/libs/precision/doc/html/precision/cmathinterop.html	2013-03-28 09:58:49 EDT (Thu, 28 Mar 2013)
@@ -0,0 +1,75 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Interoperation with <cmath> and special functions</title>
+<link rel="stylesheet" href=".././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../index.html" title="Specific-Width Floating-Point Typedefs">
+<link rel="up" href="../index.html" title="Specific-Width Floating-Point Typedefs">
+<link rel="prev" href="thestandard.html" title="Place in the standard">
+<link rel="next" href="limitsinterop.html" title="Interoperation with <limits>">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src=".././images/boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="thestandard.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="limitsinterop.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section precision_cmathinterop">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="precision.cmathinterop"></a><a class="link" href="cmathinterop.html" title="Interoperation with <cmath> and special functions">Interoperation with <cmath>
+    and special functions</a>
+</h2></div></div></div>
+<p>
+      It is not proposed to make any mandatory changes to <code class="computeroutput"><span class="special"><</span><span class="identifier">cmath</span><span class="special">></span></code>
+      or special functions.
+    </p>
+<p>
+      Any of the optional floating-point <code class="computeroutput"><span class="keyword">typedef</span></code>s
+      having specified width that are <code class="computeroutput"><span class="keyword">typedef</span></code>ed
+      from the built-in types <code class="computeroutput"><span class="keyword">float</span></code>,
+      <code class="computeroutput"><span class="keyword">double</span></code>, and <code class="computeroutput"><span class="keyword">long</span>
+      <span class="keyword">double</span></code> should automatically be supported
+      by the implementation's existing <code class="computeroutput"><span class="special"><</span><span class="identifier">cmath</span><span class="special">></span></code>
+      and special functions.
+    </p>
+<p>
+      Implementation-specific optional floating-point <code class="computeroutput"><span class="keyword">typedef</span></code>s
+      having specified width that are not derived from <code class="computeroutput"><span class="keyword">float</span></code>,
+      <code class="computeroutput"><span class="keyword">double</span></code>, and <code class="computeroutput"><span class="keyword">long</span>
+      <span class="keyword">double</span></code> can optionally be supported by
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">cmath</span><span class="special">></span></code> and special functions. This is considered
+      an implementation detail.
+    </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+        Support of elementary functions (and possibly some special functions, even
+        where only optional) can be very useful for real-life computational regimes.
+      </p></td></tr>
+</table></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2013 Paul A. Bristow, Christopher Kormanyos, John Maddock<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="thestandard.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="limitsinterop.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/precision/libs/precision/doc/html/precision/complexinteract.html
==============================================================================
--- (empty file)
+++ sandbox/precision/libs/precision/doc/html/precision/complexinteract.html	2013-03-28 09:58:49 EDT (Thu, 28 Mar 2013)
@@ -0,0 +1,46 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Interaction with complex</title>
+<link rel="stylesheet" href=".././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../index.html" title="Specific-Width Floating-Point Types">
+<link rel="up" href="../index.html" title="Specific-Width Floating-Point Types">
+<link rel="prev" href="precision/newfloattypes.html" title="Proposed new section">
+<link rel="next" href="microfpu.html" title="Improved efficiency and robustness for microcontrollers">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src=".././images/boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="precision/newfloattypes.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="microfpu.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section precision_complexinteract">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="precision.complexinteract"></a><a class="link" href="complexinteract.html" title="Interaction with complex">Interaction with complex</a>
+</h2></div></div></div>
+<p>
+      TBD: Describe interaction with <complex>
+    </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2013 Paul A. Bristow, Christopher Kormanyos, John Maddock<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="precision/newfloattypes.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="microfpu.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/precision/libs/precision/doc/html/precision/complexinterop.html
==============================================================================
--- (empty file)
+++ sandbox/precision/libs/precision/doc/html/precision/complexinterop.html	2013-03-28 09:58:49 EDT (Thu, 28 Mar 2013)
@@ -0,0 +1,61 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Interoperation with <complex></title>
+<link rel="stylesheet" href=".././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../index.html" title="Specific-Width Floating-Point Typedefs">
+<link rel="up" href="../index.html" title="Specific-Width Floating-Point Typedefs">
+<link rel="prev" href="limitsinterop.html" title="Interoperation with <limits>">
+<link rel="next" href="quadprecision.html" title="Specifying 128-bit precision">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src=".././images/boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="limitsinterop.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="quadprecision.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section precision_complexinterop">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="precision.complexinterop"></a><a class="link" href="complexinterop.html" title="Interoperation with <complex>">Interoperation with <complex></a>
+</h2></div></div></div>
+<p>
+      It is not proposed to make any mandatory changes to <code class="computeroutput"><span class="special"><</span><span class="identifier">complex</span><span class="special">></span></code>.
+    </p>
+<p>
+      Any of the optional floating-point <code class="computeroutput"><span class="keyword">typedef</span></code>s
+      having specified width that are <code class="computeroutput"><span class="keyword">typedef</span></code>ed
+      from the built-in types <code class="computeroutput"><span class="keyword">float</span></code>,
+      <code class="computeroutput"><span class="keyword">double</span></code>, and <code class="computeroutput"><span class="keyword">long</span>
+      <span class="keyword">double</span></code> should automatically be supported
+      by the implementation's existing <code class="computeroutput"><span class="special"><</span><span class="identifier">complex</span><span class="special">></span></code>.
+    </p>
+<p>
+      Implementation-specific optional floating-point <code class="computeroutput"><span class="keyword">typedef</span></code>s
+      having specified width that are <span class="emphasis"><em>not derived from <code class="computeroutput"><span class="keyword">float</span></code>,
+      <code class="computeroutput"><span class="keyword">double</span></code>, and <code class="computeroutput"><span class="keyword">long</span>
+      <span class="keyword">double</span></code></em></span> can optionally be
+      supported by <code class="computeroutput"><span class="special"><</span><span class="identifier">complex</span><span class="special">></span></code>. This is considered an implementation detail.
+    </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2013 Paul A. Bristow, Christopher Kormanyos, John Maddock<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="limitsinterop.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="quadprecision.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/precision/libs/precision/doc/html/precision/context.html
==============================================================================
--- (empty file)
+++ sandbox/precision/libs/precision/doc/html/precision/context.html	2013-03-28 09:58:49 EDT (Thu, 28 Mar 2013)
@@ -0,0 +1,52 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>The context among existing implementations</title>
+<link rel="stylesheet" href=".././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../index.html" title="Specific-Width Floating-Point Typedefs">
+<link rel="up" href="../index.html" title="Specific-Width Floating-Point Typedefs">
+<link rel="prev" href="lowerprecision.html" title="Extending to lower precision">
+<link rel="next" href="references.html" title="References">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src=".././images/boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="lowerprecision.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="references.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section precision_context">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="precision.context"></a><a class="link" href="context.html" title="The context among existing implementations">The context among existing implementations</a>
+</h2></div></div></div>
+<p>
+      Many existing implementations already support <code class="computeroutput"><span class="keyword">float</span></code>,
+      <code class="computeroutput"><span class="keyword">double</span></code>, and <code class="computeroutput"><span class="keyword">long</span>
+      <span class="keyword">double</span></code>. In addition, some of these either
+      are or strive to be compliant with <a href="http://en.wikipedia.org/wiki/IEEE_floating_point" target="_top">IEEE_
+      floating-point format</a>. In these cases, it will be straightforward to
+      support (at least) a subset of the proposed optional floating-point <code class="computeroutput"><span class="keyword">typedef</span></code>s having specified width by adding any
+      desired optional type definitions and the corresponding macro definitions.
+    </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2013 Paul A. Bristow, Christopher Kormanyos, John Maddock<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="lowerprecision.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="references.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/precision/libs/precision/doc/html/precision/limitsinterop.html
==============================================================================
--- (empty file)
+++ sandbox/precision/libs/precision/doc/html/precision/limitsinterop.html	2013-03-28 09:58:49 EDT (Thu, 28 Mar 2013)
@@ -0,0 +1,91 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Interoperation with <limits></title>
+<link rel="stylesheet" href=".././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../index.html" title="Specific-Width Floating-Point Typedefs">
+<link rel="up" href="../index.html" title="Specific-Width Floating-Point Typedefs">
+<link rel="prev" href="cmathinterop.html" title="Interoperation with <cmath> and special functions">
+<link rel="next" href="complexinterop.html" title="Interoperation with <complex>">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src=".././images/boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="cmathinterop.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="complexinterop.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section precision_limitsinterop">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="precision.limitsinterop"></a><a class="link" href="limitsinterop.html" title="Interoperation with <limits>">Interoperation with <limits></a>
+</h2></div></div></div>
+<p>
+      It is not proposed to make any mandatory changes to <code class="computeroutput"><span class="special"><</span><span class="identifier">limits</span><span class="special">></span></code>.
+    </p>
+<p>
+      Any of the optional floating-point <code class="computeroutput"><span class="keyword">typedef</span></code>s
+      having specified width that are <code class="computeroutput"><span class="keyword">typedef</span></code>ed
+      from the built-in types <code class="computeroutput"><span class="keyword">float</span></code>,
+      <code class="computeroutput"><span class="keyword">double</span></code>, and <code class="computeroutput"><span class="keyword">long</span>
+      <span class="keyword">double</span></code> should automatically be supported
+      by the implementation's existing <code class="computeroutput"><span class="special"><</span><span class="identifier">limits</span><span class="special">></span></code>.
+    </p>
+<p>
+      Implementation-specific optional floating-point <code class="computeroutput"><span class="keyword">typedef</span></code>s
+      having specified width that are not derived from <code class="computeroutput"><span class="keyword">float</span></code>,
+      <code class="computeroutput"><span class="keyword">double</span></code>, and <code class="computeroutput"><span class="keyword">long</span>
+      <span class="keyword">double</span></code> can optionally be supported by
+      <code class="computeroutput"><span class="special"><</span><span class="identifier">limits</span><span class="special">></span></code>. This is considered an implementation detail.
+    </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+        Support for <code class="computeroutput"><span class="special"><</span><span class="identifier">limits</span><span class="special">></span></code>, even where optional, can be very useful,
+        especially for portability. This allows programs to query the floating-point
+        limits at compile-time and use, among other things, <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><>::</span><span class="identifier">is_iec559</span></code>
+        to verify conformance with <a href="http://en.wikipedia.org/wiki/IEEE_floating_point" target="_top">IEEE_
+        floating-point format</a>.
+      </p></td></tr>
+</table></div>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+        Each of the optional floating-point <code class="computeroutput"><span class="keyword">typedef</span></code>s
+        having specified width can only have <code class="computeroutput"><span class="keyword">true</span></code>
+        for the value of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><>::</span><span class="identifier">is_iec559</span></code> if its underlying type (be it
+        <code class="computeroutput"><span class="keyword">float</span></code>, <code class="computeroutput"><span class="keyword">double</span></code>,
+        <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>
+        or an implementation-dependent type) conforms with one of <code class="computeroutput"><span class="identifier">binary16</span></code>,
+        <code class="computeroutput"><span class="identifier">binary32</span></code>, <code class="computeroutput"><span class="identifier">binary64</span></code>,
+        or <code class="computeroutput"><span class="identifier">binary128</span></code> in <a href="http://en.wikipedia.org/wiki/IEEE_floating_point" target="_top">IEEE_
+        floating-point format</a>.
+      </p></td></tr>
+</table></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2013 Paul A. Bristow, Christopher Kormanyos, John Maddock<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="cmathinterop.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="complexinterop.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/precision/libs/precision/doc/html/precision/literals.html
==============================================================================
--- (empty file)
+++ sandbox/precision/libs/precision/doc/html/precision/literals.html	2013-03-28 09:58:49 EDT (Thu, 28 Mar 2013)
@@ -0,0 +1,92 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Handling floating-point literals</title>
+<link rel="stylesheet" href=".././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../index.html" title="Specific-Width Floating-Point Typedefs">
+<link rel="up" href="../index.html" title="Specific-Width Floating-Point Typedefs">
+<link rel="prev" href="thetypedefs.html" title="The proposed typedefs and potential extensions">
+<link rel="next" href="thestandard.html" title="Place in the standard">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src=".././images/boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="thetypedefs.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="thestandard.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section precision_literals">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="precision.literals"></a><a class="link" href="literals.html" title="Handling floating-point literals">Handling floating-point literals</a>
+</h2></div></div></div>
+<p>
+      We will now examine how to use floating-point literal constants in combination
+      with the optional floating-point <code class="computeroutput"><span class="keyword">typedef</span></code>s
+      having specified width. This will be done in a manner analagous to the mechanism
+      specified for integer types having specified width, in other words using C-style
+      macros.
+    </p>
+<p>
+      The header <code class="computeroutput"><span class="special"><</span><span class="identifier">cstdfloat</span><span class="special">></span></code> should contain all necessary C-style function
+      macros in the form shown below.
+    </p>
+<pre class="programlisting"><span class="identifier">FLOAT</span><span class="special">{</span><span class="number">16</span> <span class="number">32</span> <span class="number">64</span> <span class="number">128</span> <span class="number">256</span> <span class="identifier">MAX</span><span class="special">}</span><span class="identifier">_C</span>
+</pre>
+<p>
+      The code below, for example, initializes a constant <code class="computeroutput"><span class="identifier">float128_t</span></code>
+      value using one of these macros.
+    </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">cstdfloat</span><span class="special">></span>
+
+<span class="identifier">constexpr</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">float128_t</span> <span class="identifier">euler</span> <span class="special">=</span> <span class="identifier">FLOAT128_C</span><span class="special">(</span><span class="number">0.57721566490153286060651209008240243104216</span><span class="special">);</span>
+</pre>
+<p>
+      The following code initializes a constant <code class="computeroutput"><span class="identifier">float16_t</span></code>
+      value using another one of these macros.
+    </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">cstdfloat</span><span class="special">></span>
+
+<span class="identifier">constexpr</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">float16_t</span> <span class="identifier">euler</span> <span class="special">=</span> <span class="identifier">FLOAT16_C</span><span class="special">(</span><span class="number">0.577216</span><span class="special">);</span>
+</pre>
+<p>
+      In addition, the header <code class="computeroutput"><span class="special"><</span><span class="identifier">cstdfloat</span><span class="special">></span></code> should contain all necessary macros of
+      the form:
+    </p>
+<pre class="programlisting"><span class="identifier">FLOAT_</span><span class="special">[</span><span class="identifier">FAST</span> <span class="identifier">LEAST</span><span class="special">]{</span><span class="number">16</span> <span class="number">32</span> <span class="number">64</span> <span class="number">128</span> <span class="number">256</span><span class="special">}</span><span class="identifier">_MIN</span>
+<span class="identifier">FLOAT_</span><span class="special">[</span><span class="identifier">FAST</span> <span class="identifier">LEAST</span><span class="special">]{</span><span class="number">16</span> <span class="number">32</span> <span class="number">64</span> <span class="number">128</span> <span class="number">256</span><span class="special">}</span><span class="identifier">_MAX</span>
+<span class="identifier">FLOATMAX_MIN</span>
+<span class="identifier">FLOATMAX_MAX</span>
+</pre>
+<p>
+      These macros can be used to query the ranges of the optional floating-point
+      <code class="computeroutput"><span class="keyword">typedef</span></code>s having specified width
+      at compile-time. For example,
+    </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">limits</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">cstdfloat</span><span class="special">></span>
+
+<span class="identifier">static_assert</span><span class="special">(</span><span class="identifier">FLOATMAX_MAX</span> <span class="special">></span> <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="keyword">float</span><span class="special">>::</span><span class="identifier">max</span><span class="special">)(),</span>
+              <span class="string">"The floating-point range is too small."</span><span class="special">);</span>
+</pre>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2013 Paul A. Bristow, Christopher Kormanyos, John Maddock<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="thetypedefs.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="thestandard.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/precision/libs/precision/doc/html/precision/lowerprecision.html
==============================================================================
--- (empty file)
+++ sandbox/precision/libs/precision/doc/html/precision/lowerprecision.html	2013-03-28 09:58:49 EDT (Thu, 28 Mar 2013)
@@ -0,0 +1,67 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Extending to lower precision</title>
+<link rel="stylesheet" href=".././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../index.html" title="Specific-Width Floating-Point Typedefs">
+<link rel="up" href="../index.html" title="Specific-Width Floating-Point Typedefs">
+<link rel="prev" href="quadprecision.html" title="Specifying 128-bit precision">
+<link rel="next" href="context.html" title="The context among existing implementations">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src=".././images/boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="quadprecision.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="context.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section precision_lowerprecision">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="precision.lowerprecision"></a><a class="link" href="lowerprecision.html" title="Extending to lower precision">Extending to lower precision</a>
+</h2></div></div></div>
+<p>
+      Some implementations for cost-sensitive microcontroller platforms support
+      <code class="computeroutput"><span class="keyword">float</span></code>, <code class="computeroutput"><span class="keyword">double</span></code>,
+      and <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>,
+      and some of these are compliant with <a href="http://en.wikipedia.org/wiki/IEEE_floating_point" target="_top">IEEE_
+      floating-point format</a>. Some of these implementations treat <code class="computeroutput"><span class="keyword">double</span></code> exactly as <code class="computeroutput"><span class="keyword">float</span></code>,
+      and even treat <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>
+      exactly as <code class="computeroutput"><span class="keyword">double</span></code>. This is permitted
+      by the standard which does not prescribe the precision for any floating-point
+      (or integer) types, leaving them to be implementation-defined. On these platforms,
+      the existing floating-point types could optionally be type-defined to <code class="computeroutput"><span class="identifier">float32_t</span></code>. Optional support for an extension
+      to <code class="computeroutput"><span class="identifier">float16_t</span></code> could provide
+      a very useful and efficient floating-point type with half-precision, but reduced
+      range.
+    </p>
+<p>
+      Some implementations for cost-sensitive microcontroller platforms also support
+      a 24-bit floating-point type. Here, an extension of the optional floating-point
+      <code class="computeroutput"><span class="keyword">typedef</span></code>s with specified width
+      could include <code class="computeroutput"><span class="identifier">float24_t</span></code>. This
+      would be equivalent to three-quarter precision floating-point, which is not
+      specified in <a href="http://en.wikipedia.org/wiki/IEEE_floating_point" target="_top">IEEE_
+      floating-point format</a>.
+    </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2013 Paul A. Bristow, Christopher Kormanyos, John Maddock<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="quadprecision.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="context.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/precision/libs/precision/doc/html/precision/microfpu.html
==============================================================================
--- (empty file)
+++ sandbox/precision/libs/precision/doc/html/precision/microfpu.html	2013-03-28 09:58:49 EDT (Thu, 28 Mar 2013)
@@ -0,0 +1,63 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Improved efficiency and robustness for microcontrollers</title>
+<link rel="stylesheet" href=".././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../index.html" title="Specific-Width Floating-Point Typedefs">
+<link rel="up" href="../index.html" title="Specific-Width Floating-Point Typedefs">
+<link rel="prev" href="complexinterop.html" title="Interoperation with <complex>">
+<link rel="next" href="context.html" title="The context within existing implementations">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src=".././images/boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="complexinterop.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="context.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section precision_microfpu">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="precision.microfpu"></a><a class="link" href="microfpu.html" title="Improved efficiency and robustness for microcontrollers">Improved efficiency and robustness
+    for microcontrollers</a>
+</h2></div></div></div>
+<p>
+      TBD by Chris: Describe cost-sensitive floating-point regime. TBD by Chris -
+      add reference to your book!
+    </p>
+<p>
+      TBD by Chris: Describe recent confidential meetings with tier-one silicon suppliers
+      and the relevant problems discussed therein.
+    </p>
+<p>
+      TBD: Cite these as personal communications.
+    </p>
+<p>
+      TBD by Chris: Explain how standards adherence and specified width can help
+      to solve these problems by improving reliability and safety.
+    </p>
+<p>
+      TBD ba Chris: Add an example and remarks on functional safety and any relevant
+      citations from to ISO/IEC 26262.
+    </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2013 Paul A. Bristow, Christopher Kormanyos, John Maddock<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="complexinterop.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="context.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/precision/libs/precision/doc/html/precision/quadprecision.html
==============================================================================
--- (empty file)
+++ sandbox/precision/libs/precision/doc/html/precision/quadprecision.html	2013-03-28 09:58:49 EDT (Thu, 28 Mar 2013)
@@ -0,0 +1,132 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Specifying 128-bit precision</title>
+<link rel="stylesheet" href=".././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../index.html" title="Specific-Width Floating-Point Typedefs">
+<link rel="up" href="../index.html" title="Specific-Width Floating-Point Typedefs">
+<link rel="prev" href="complexinterop.html" title="Interoperation with <complex>">
+<link rel="next" href="lowerprecision.html" title="Extending to lower precision">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src=".././images/boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="complexinterop.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="lowerprecision.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section precision_quadprecision">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="precision.quadprecision"></a><a class="link" href="quadprecision.html" title="Specifying 128-bit precision">Specifying 128-bit precision</a>
+</h2></div></div></div>
+<p>
+      The proposed <code class="computeroutput"><span class="keyword">typedef</span></code> <code class="computeroutput"><span class="identifier">float128_t</span></code> provides a standardized way to
+      specify quadruple-precision (<a href="http://en.wikipedia.org/wiki/Quadruple-precision_floating-point_format" target="_top">Quadruple-precision
+      floating-point format</a>) in C++.
+    </p>
+<p>
+      On powerful PCs and workstations, implementation-specific versions of <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>
+      as well as various floating-point extensions to 128-bit have been treated in
+      a variety of ways. This has resulted in numerous portability problems.
+    </p>
+<p>
+      The Intel X8087 chipset
+      is capable of performing calculations with internal 80-bit registers. This
+      increases the width of the significand from 53 to 63 bits, thereby gaining
+      about 3 decimal digits precision and extending it from 18 and 21. If an implementation
+      has a type that uses all 80 bits from this chipset to calculate <a href="http://en.wikipedia.org/wiki/Extended_precision" target="_top">Extended
+      precision</a>, it could could use an optional <code class="computeroutput"><span class="keyword">typedef</span></code>
+      of this type to <code class="computeroutput"><span class="identifier">float80_t</span></code>.
+    </p>
+<p>
+      Some hardware, for example Sparc,
+      provides a full 128-bit quadruple-precision floating-point chip. An implementation
+      for this kind of architecture might already have a built-in type corresponding
+      to <code class="computeroutput"><span class="identifier">binary128</span></code>, and this type
+      could be optionally <code class="computeroutput"><span class="keyword">typedef</span></code>ed
+      to <code class="computeroutput"><span class="identifier">float128_t</span></code>.
+    </p>
+<p>
+      GCC has recently developed quadruple-precision support on a variety of platforms
+      using GCC libquadmath.
+      However, the implementation-specific type <code class="computeroutput"><span class="identifier">__float128</span></code>
+      is used rather than <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>.
+      These implementations could optionally <code class="computeroutput"><span class="keyword">typedef</span></code>
+      <code class="computeroutput"><span class="identifier">__float128</span></code> to <code class="computeroutput"><span class="identifier">float128_t</span></code> in addition to any other optional
+      <code class="computeroutput"><span class="keyword">typedef</span></code>s.
+    </p>
+<p>
+      Darwin
+      <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>
+      uses a double-double format developed first by <a href="http://keithbriggs.info/doubledouble.html" target="_top">Keith
+      Briggs</a>. This gives about 106-bits of precision (about 33 decimal digits)
+      but has rather odd behavior at the extremes making implementation of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><>::</span><span class="identifier">epsilon</span><span class="special">()</span></code> problematic.
+    </p>
+<p>
+      It may be useful if future implementations for powerful PCs and workstations
+      strive to make implementation-specific extensions to 128-bit floating-point
+      or the built-in type <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>
+      equivalent to <code class="computeroutput"><span class="identifier">binary128</span></code>, and
+      to include the corresponding <code class="computeroutput"><span class="keyword">typedef</span></code>
+      to <code class="computeroutput"><span class="identifier">float128_t</span></code>.
+    </p>
+<p>
+      Some architectures have hardware support for this. Those lacking direct hardware
+      support can use software emulation.
+    </p>
+<h5>
+<a name="precision.quadprecision.h0"></a>
+      <span class="phrase"><a name="precision.quadprecision.survey_of_extended_precision_types"></a></span><a class="link" href="quadprecision.html#precision.quadprecision.survey_of_extended_precision_types">Survey
+      of extended-precision types</a>
+    </h5>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
+          <a href="http://gcc.gnu.org/onlinedocs/gcc/Floating-Types.html" target="_top">GNU
+          C supports additional floating types, <code class="computeroutput"><span class="identifier">__float80</span></code>
+          and <code class="computeroutput"><span class="identifier">__float128</span></code> to support
+          80-bit (XFmode) and 128-bit (TFmode) floating types.</a>
+        </li>
+<li class="listitem">
+          <a href="http://software.intel.com/en-us/forums/topic/358472" target="_top">Extended
+          or Quad IEEE FP formats</a> by Intel Intel64 mode on Linux (V12.1)
+          provides 128 bit <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>
+          in C, however it appears that it only provides computation at 80-bit format
+          giving 64-bit significand precision, and other bits are just padding.
+        </li>
+<li class="listitem">
+          <a href="http://software.intel.com/en-us/forums/topic/358476" target="_top">Intel
+          FORTRAN REAL*16</a> is an actual 128-bit IEEE quad, emulated in software.
+          But "I don't know of any plan to implement full C support for 128-bit
+          IEEE format, although evidently ifort has support libraries." This
+          is equivalent to the proposed float128_t type.
+        </li>
+<li class="listitem">
+          The 360/85 and follow-on System/370 added support for a 128-bit "extended"
+          <a href="http://en.wikipedia.org/wiki/Extended_precision#IBM_extended_precision_formats" target="_top">IBM
+          extended precision formats</a>. These formats are still supported in
+          the current design, where they are now called the "hexadecimal floating
+          point" (HFP) formats.
+        </li>
+</ol></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2013 Paul A. Bristow, Christopher Kormanyos, John Maddock<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="complexinterop.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="lowerprecision.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/precision/libs/precision/doc/html/precision/thestandard.html
==============================================================================
--- (empty file)
+++ sandbox/precision/libs/precision/doc/html/precision/thestandard.html	2013-03-28 09:58:49 EDT (Thu, 28 Mar 2013)
@@ -0,0 +1,114 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Place in the standard</title>
+<link rel="stylesheet" href=".././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../index.html" title="Specific-Width Floating-Point Typedefs">
+<link rel="up" href="../index.html" title="Specific-Width Floating-Point Typedefs">
+<link rel="prev" href="literals.html" title="Handling floating-point literals">
+<link rel="next" href="cmathinterop.html" title="Interoperation with <cmath> and special functions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src=".././images/boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="literals.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="cmathinterop.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section precision_thestandard">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="precision.thestandard"></a><a class="link" href="thestandard.html" title="Place in the standard">Place in the standard</a>
+</h2></div></div></div>
+<p>
+      The proper place for defining the optional floating-point <code class="computeroutput"><span class="keyword">typedef</span></code>s
+      having specified width should be oriented along the lines of the current standard.
+      Consider the existing specification of integer <code class="computeroutput"><span class="keyword">typedef</span></code>s
+      having specified width in C++11. A partial synopsis is shown below.
+    </p>
+<p>
+      18.4 Integer types [cstdint]
+    </p>
+<p>
+      18.4.1 Header <cstdint> synopsis [cstdint.syn]
+    </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">std</span>
+<span class="special">{</span>
+  <span class="keyword">typedef</span> <span class="keyword">signed</span> <span class="identifier">integer</span> <span class="identifier">type</span> <span class="identifier">int8_t</span><span class="special">;</span>  <span class="comment">// optional</span>
+  <span class="keyword">typedef</span> <span class="keyword">signed</span> <span class="identifier">integer</span> <span class="identifier">type</span> <span class="identifier">int16_t</span><span class="special">;</span> <span class="comment">// optional</span>
+  <span class="keyword">typedef</span> <span class="keyword">signed</span> <span class="identifier">integer</span> <span class="identifier">type</span> <span class="identifier">int32_t</span><span class="special">;</span> <span class="comment">// optional</span>
+  <span class="keyword">typedef</span> <span class="keyword">signed</span> <span class="identifier">integer</span> <span class="identifier">type</span> <span class="identifier">int64_t</span><span class="special">;</span> <span class="comment">// optional</span>
+<span class="special">}</span>
+
+<span class="comment">// ... and the corresponding least and fast types.</span>
+</pre>
+<p>
+      It is not immediately obvious where the optional floating-point <code class="computeroutput"><span class="keyword">typedef</span></code>s having specified width should reside.
+      One potential place is <code class="computeroutput"><span class="special"><</span><span class="identifier">cstdint</span><span class="special">></span></code>. The <code class="computeroutput"><span class="keyword">int</span></code>,
+      however, implies integer types. Here, we prefer the proposed new header <code class="computeroutput"><span class="special"><</span><span class="identifier">cstdfloat</span><span class="special">></span></code>.
+    </p>
+<p>
+      We propose to add a new header <code class="computeroutput"><span class="special"><</span><span class="identifier">cstdfloat</span><span class="special">></span></code>
+      to the standard library. The header <code class="computeroutput"><span class="special"><</span><span class="identifier">cstdfloat</span><span class="special">></span></code>
+      should contain all optional floating-point <code class="computeroutput"><span class="keyword">typedef</span></code>s
+      having specified width included in the implementation and the corresponding
+      C-style macros shown above.
+    </p>
+<p>
+      Section 18.4 could be extended as shown below.
+    </p>
+<p>
+      18.4? Integer and Floating-Point Types Having Specified Width
+    </p>
+<p>
+      18.4.1 Header <cstdint> synopsis [cstdint.syn]
+    </p>
+<p>
+      18.4.2? Header <cstdfloat> synopsis [cstdfloat.syn]
+    </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">std</span>
+<span class="special">{</span>
+  <span class="keyword">typedef</span> <span class="identifier">floating</span><span class="special">-</span><span class="identifier">point</span> <span class="identifier">type</span> <span class="identifier">float16_t</span><span class="special">;</span>   <span class="comment">// optional.</span>
+  <span class="keyword">typedef</span> <span class="identifier">floating</span><span class="special">-</span><span class="identifier">point</span> <span class="identifier">type</span> <span class="identifier">float32_t</span><span class="special">;</span>   <span class="comment">// optional.</span>
+  <span class="keyword">typedef</span> <span class="identifier">floating</span><span class="special">-</span><span class="identifier">point</span> <span class="identifier">type</span> <span class="identifier">float64_t</span><span class="special">;</span>   <span class="comment">// optional.</span>
+  <span class="keyword">typedef</span> <span class="identifier">floating</span><span class="special">-</span><span class="identifier">point</span> <span class="identifier">type</span> <span class="identifier">float80_t</span><span class="special">;</span>   <span class="comment">// optional.</span>
+  <span class="keyword">typedef</span> <span class="identifier">floating</span><span class="special">-</span><span class="identifier">point</span> <span class="identifier">type</span> <span class="identifier">float128_t</span><span class="special">;</span>  <span class="comment">// optional.</span>
+  <span class="keyword">typedef</span> <span class="identifier">floating</span><span class="special">-</span><span class="identifier">point</span> <span class="identifier">type</span> <span class="identifier">float256_t</span><span class="special">;</span>  <span class="comment">// optional.</span>
+  <span class="keyword">typedef</span> <span class="identifier">floating</span><span class="special">-</span><span class="identifier">point</span> <span class="identifier">type</span> <span class="identifier">floatmax_t</span><span class="special">;</span>  <span class="comment">// optional.</span>
+
+  <span class="keyword">typedef</span> <span class="identifier">floating</span><span class="special">-</span><span class="identifier">point</span> <span class="identifier">type</span> <span class="identifier">float_least16_t</span><span class="special">;</span>  <span class="comment">// optional.</span>
+  <span class="keyword">typedef</span> <span class="identifier">floating</span><span class="special">-</span><span class="identifier">point</span> <span class="identifier">type</span> <span class="identifier">float_least32_t</span><span class="special">;</span>  <span class="comment">// optional.</span>
+  <span class="keyword">typedef</span> <span class="identifier">floating</span><span class="special">-</span><span class="identifier">point</span> <span class="identifier">type</span> <span class="identifier">float_least64_t</span><span class="special">;</span>  <span class="comment">// optional.</span>
+  <span class="keyword">typedef</span> <span class="identifier">floating</span><span class="special">-</span><span class="identifier">point</span> <span class="identifier">type</span> <span class="identifier">float_least80_t</span><span class="special">;</span>  <span class="comment">// optional.</span>
+  <span class="keyword">typedef</span> <span class="identifier">floating</span><span class="special">-</span><span class="identifier">point</span> <span class="identifier">type</span> <span class="identifier">float_least128_t</span><span class="special">;</span> <span class="comment">// optional.</span>
+  <span class="keyword">typedef</span> <span class="identifier">floating</span><span class="special">-</span><span class="identifier">point</span> <span class="identifier">type</span> <span class="identifier">float_least256_t</span><span class="special">;</span> <span class="comment">// optional.</span>
+
+  <span class="keyword">typedef</span> <span class="identifier">floating</span><span class="special">-</span><span class="identifier">point</span> <span class="identifier">type</span> <span class="identifier">float_fast16_t</span><span class="special">;</span>  <span class="comment">// optional.</span>
+  <span class="keyword">typedef</span> <span class="identifier">floating</span><span class="special">-</span><span class="identifier">point</span> <span class="identifier">type</span> <span class="identifier">float_fast32_t</span><span class="special">;</span>  <span class="comment">// optional.</span>
+  <span class="keyword">typedef</span> <span class="identifier">floating</span><span class="special">-</span><span class="identifier">point</span> <span class="identifier">type</span> <span class="identifier">float_fast64_t</span><span class="special">;</span>  <span class="comment">// optional.</span>
+  <span class="keyword">typedef</span> <span class="identifier">floating</span><span class="special">-</span><span class="identifier">point</span> <span class="identifier">type</span> <span class="identifier">float_fast80_t</span><span class="special">;</span>  <span class="comment">// optional.</span>
+  <span class="keyword">typedef</span> <span class="identifier">floating</span><span class="special">-</span><span class="identifier">point</span> <span class="identifier">type</span> <span class="identifier">float_fast128_t</span><span class="special">;</span> <span class="comment">// optional.</span>
+  <span class="keyword">typedef</span> <span class="identifier">floating</span><span class="special">-</span><span class="identifier">point</span> <span class="identifier">type</span> <span class="identifier">float_fast256_t</span><span class="special">;</span> <span class="comment">// optional.</span>
+<span class="special">}</span>
+</pre>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2013 Paul A. Bristow, Christopher Kormanyos, John Maddock<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="literals.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="cmathinterop.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/precision/libs/precision/doc/html/precision/thetypedefs.html
==============================================================================
--- (empty file)
+++ sandbox/precision/libs/precision/doc/html/precision/thetypedefs.html	2013-03-28 09:58:49 EDT (Thu, 28 Mar 2013)
@@ -0,0 +1,235 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>The proposed typedefs and potential extensions</title>
+<link rel="stylesheet" href=".././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../index.html" title="Specific-Width Floating-Point Typedefs">
+<link rel="up" href="../index.html" title="Specific-Width Floating-Point Typedefs">
+<link rel="prev" href="introduction.html" title="Introduction">
+<link rel="next" href="literals.html" title="Handling floating-point literals">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src=".././images/boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="introduction.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="literals.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section precision_thetypedefs">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="precision.thetypedefs"></a><a class="link" href="thetypedefs.html" title="The proposed typedefs and potential extensions">The proposed typedefs and potential
+    extensions</a>
+</h2></div></div></div>
+<p>
+      The core of this proposal is based on the optional floating-point <code class="computeroutput"><span class="keyword">typedef</span></code>s <code class="computeroutput"><span class="identifier">float16_t</span></code>,
+      <code class="computeroutput"><span class="identifier">float32_t</span></code>, <code class="computeroutput"><span class="identifier">float64_t</span></code>,
+      <code class="computeroutput"><span class="identifier">float128_t</span></code>, their corresponding
+      least and fast types, and the corresponding maximum-width type.
+    </p>
+<p>
+      For example,
+    </p>
+<pre class="programlisting"><span class="comment">// Sample partial synopsis of <cstdfloat></span>
+
+<span class="keyword">namespace</span> <span class="identifier">std</span>
+<span class="special">{</span>
+  <span class="keyword">typedef</span> <span class="keyword">float</span>       <span class="identifier">float32_t</span><span class="special">;</span>
+  <span class="keyword">typedef</span> <span class="keyword">double</span>      <span class="identifier">float64_t</span><span class="special">;</span>
+  <span class="keyword">typedef</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">float128_t</span><span class="special">;</span>
+  <span class="keyword">typedef</span> <span class="identifier">float128_t</span>  <span class="identifier">floatmax_t</span><span class="special">;</span>
+
+  <span class="comment">// ... and the corresponding least and fast types.</span>
+<span class="special">}</span>
+</pre>
+<p>
+      These proposed optional floating-point <code class="computeroutput"><span class="keyword">typedef</span></code>s
+      are to conform with the corresponding specifications of <code class="computeroutput"><span class="identifier">binary16</span></code>,
+      <code class="computeroutput"><span class="identifier">binary32</span></code>, <code class="computeroutput"><span class="identifier">binary64</span></code>,
+      and <code class="computeroutput"><span class="identifier">binary128</span></code> in <a href="http://en.wikipedia.org/wiki/IEEE_floating_point" target="_top">IEEE_
+      floating-point format</a>. In particular, <code class="computeroutput"><span class="identifier">float16_t</span></code>,
+      <code class="computeroutput"><span class="identifier">float32_t</span></code>, <code class="computeroutput"><span class="identifier">float64_t</span></code>,
+      and <code class="computeroutput"><span class="identifier">float128_t</span></code> correspond to
+      floating-point types with 11, 24, 53, and 113 binary significand digits, respectively.
+      These are defined in <a href="http://en.wikipedia.org/wiki/IEEE_floating_point" target="_top">IEEE_
+      floating-point format</a>, and there are more detailed descriptions of
+      each type at <a href="http://en.wikipedia.org/wiki/Half_precision_floating-point_format" target="_top">IEEE
+      half-precision floating-point format</a>, <a href="http://en.wikipedia.org/wiki/Single_precision_floating-point_format" target="_top">IEEE
+      single-precision floating-point format</a>, <a href="http://en.wikipedia.org/wiki/Double_precision_floating-point_format" target="_top">IEEE
+      double-precision floating-point format</a>, <a href="http://en.wikipedia.org/wiki/Quadruple-precision_floating-point_format" target="_top">Quadruple-precision
+      floating-point format</a>, and <a href="http://en.wikipedia.org/wiki/Extended_precision#IEEE_754_extended_precision_formats" target="_top">IEEE
+      754 extended precision formats and x86 80-bit Extended Precision Format</a>.
+    </p>
+<p>
+      Here, we specifically mean equivalence of the following.
+    </p>
+<pre class="programlisting"><span class="identifier">float16_t</span>  <span class="special">==</span> <span class="identifier">binary16</span><span class="special">;</span>
+<span class="identifier">float32_t</span>  <span class="special">==</span> <span class="identifier">binary32</span><span class="special">;</span>
+<span class="identifier">float64_t</span>  <span class="special">==</span> <span class="identifier">binary64</span><span class="special">;</span>
+<span class="identifier">float128_t</span> <span class="special">==</span> <span class="identifier">binary128</span><span class="special">;</span>
+</pre>
+<p>
+      This equivalence results in far-reaching benefits.
+    </p>
+<p>
+      It means that floating-point software written with <code class="computeroutput"><span class="identifier">float16_t</span></code>,
+      <code class="computeroutput"><span class="identifier">float32_t</span></code>, <code class="computeroutput"><span class="identifier">float64_t</span></code>,
+      and <code class="computeroutput"><span class="identifier">float128_t</span></code> should behave
+      identically when used on any platform with any implementation that correctly
+      supports the <code class="computeroutput"><span class="keyword">typedef</span></code>s.
+    </p>
+<p>
+      It also creates the opportunity to implement quadruple-precision (<a href="http://en.wikipedia.org/wiki/Quadruple-precision_floating-point_format" target="_top">Quadruple-precision
+      floating-point format</a>) in a specified, and therefore portable, fashion.
+    </p>
+<p>
+      One could envision two ways to name the proposed optional floating-point <code class="computeroutput"><span class="keyword">typedef</span></code>s having specified width:
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          <code class="computeroutput"><span class="identifier">float11_t</span><span class="special">,</span>
+          <span class="identifier">float24_t</span><span class="special">,</span>
+          <span class="identifier">float53_t</span><span class="special">,</span>
+          <span class="identifier">float113_t</span><span class="special">,</span>
+          <span class="special">...</span></code>
+        </li>
+<li class="listitem">
+          <code class="computeroutput"><span class="identifier">float16_t</span><span class="special">,</span>
+          <span class="identifier">float32_t</span><span class="special">,</span>
+          <span class="identifier">float64_t</span><span class="special">,</span>
+          <span class="identifier">float128_t</span><span class="special">,</span>
+          <span class="special">...</span></code>
+        </li>
+</ul></div>
+<p>
+      The first set above is intuitively coined from IEE754:2008.
+      It is also consistent with the gist of integer types having specified width
+      such as <code class="computeroutput"><span class="identifier">int64_t</span></code>, in so far
+      as the number of binary digits of <span class="emphasis"><em>significand</em></span> precision
+      is contained within the name of the data type.
+    </p>
+<p>
+      On the other hand, the second set with the size of the <span class="emphasis"><em>whole type</em></span>
+      contained within the name may be more intuitive to users. Here, we prefer the
+      latter naming scheme.
+    </p>
+<p>
+      No matter what naming scheme is used, the exact layout and number of significand
+      and exponent bits can be confirmed as IEEE754 by checking <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">type</span><span class="special">>::</span><span class="identifier">is_iec559</span>
+      <span class="special">==</span> <span class="keyword">true</span></code>,
+      and the byte-order.
+    </p>
+<p>
+      We will now consider several examples showing how various implementations might
+      introduce some of the optional floating-point <code class="computeroutput"><span class="keyword">typedef</span></code>s
+      having specified width into the <code class="computeroutput"><span class="identifier">std</span></code>
+      namespace.
+    </p>
+<p>
+      An implementation has <code class="computeroutput"><span class="keyword">float</span></code> and
+      <code class="computeroutput"><span class="keyword">double</span></code> corresponding to IEEE754
+      <code class="computeroutput"><span class="identifier">binary32</span></code>, <code class="computeroutput"><span class="identifier">binary64</span></code>,
+      respectively. This implementation could introduce <code class="computeroutput"><span class="identifier">float32_t</span></code>,
+      <code class="computeroutput"><span class="identifier">float64_t</span></code>, and <code class="computeroutput"><span class="identifier">floatmax_t</span></code> into the <code class="computeroutput"><span class="identifier">std</span></code>
+      namespace as shown below.
+    </p>
+<pre class="programlisting"><span class="comment">// In <cstdfloat></span>
+
+<span class="keyword">namespace</span> <span class="identifier">std</span>
+<span class="special">{</span>
+  <span class="keyword">typedef</span> <span class="keyword">float</span>     <span class="identifier">float32_t</span><span class="special">;</span>
+  <span class="keyword">typedef</span> <span class="keyword">double</span>    <span class="identifier">float64_t</span><span class="special">;</span>
+  <span class="keyword">typedef</span> <span class="identifier">float64_t</span> <span class="identifier">floatmax_t</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+      There may be a need for octuple-precision float, in other words an extension
+      to <code class="computeroutput"><span class="identifier">float256_t</span></code> with about 240
+      binary significand digits of precision. In addition, a <code class="computeroutput"><span class="identifier">float512_t</span></code>
+      type with even more precision may be considered as a option. Beyond these,
+      there may be potential extension to multiprecision types, even <a href="http://en.wikipedia.org/wiki/Arbitrary_precision" target="_top">arbitrary
+      precision</a>, in the future.
+    </p>
+<p>
+      Consider an implementation for a supercomputer. This platform might have <code class="computeroutput"><span class="keyword">float</span></code>, <code class="computeroutput"><span class="keyword">double</span></code>,
+      and <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>
+      corresponding to IEEE754 <code class="computeroutput"><span class="identifier">binary32</span></code>,
+      <code class="computeroutput"><span class="identifier">binary64</span></code>, and <code class="computeroutput"><span class="identifier">binary128</span></code>, respectively. In addition, this
+      platform might have a floating-point type with octuple-precision. The implementation
+      for this supercomputer could introduce its optional floating-point <code class="computeroutput"><span class="keyword">typedef</span></code>s having specified width into the <code class="computeroutput"><span class="identifier">std</span></code> namespace as shown below.
+    </p>
+<pre class="programlisting"><span class="comment">// In <cstdfloat></span>
+
+<span class="keyword">namespace</span> <span class="identifier">std</span>
+<span class="special">{</span>
+  <span class="keyword">typedef</span> <span class="keyword">float</span>                <span class="identifier">float32_t</span><span class="special">;</span>
+  <span class="keyword">typedef</span> <span class="keyword">double</span>               <span class="identifier">float64_t</span><span class="special">;</span>
+  <span class="keyword">typedef</span> <span class="keyword">long</span> <span class="keyword">double</span>          <span class="identifier">float128_t</span><span class="special">;</span>
+  <span class="keyword">typedef</span> <span class="identifier">floating</span><span class="special">-</span><span class="identifier">point</span> <span class="identifier">type</span>  <span class="identifier">float256_t</span><span class="special">;</span>
+  <span class="keyword">typedef</span> <span class="identifier">float256_t</span>           <span class="identifier">floatmax_t</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+      A cost-sensitive 8-bit microcontroller platform without an FPU does not have
+      sufficient resources to support the eight-byte, 64-bit <code class="computeroutput"><span class="identifier">binary64</span></code>
+      type in a feasible fashion. An implementation for this platform can, however,
+      support half-precision <code class="computeroutput"><span class="identifier">float16_t</span></code>
+      and single-precision <code class="computeroutput"><span class="identifier">float32_t</span></code>.
+      This implementation could introduce its optional floating-point <code class="computeroutput"><span class="keyword">typedef</span></code>s having specified width into the <code class="computeroutput"><span class="identifier">std</span></code> namespace as shown below.
+    </p>
+<pre class="programlisting"><span class="comment">// In <cstdfloat></span>
+
+<span class="keyword">namespace</span> <span class="identifier">std</span>
+<span class="special">{</span>
+  <span class="keyword">typedef</span> <span class="identifier">floating</span><span class="special">-</span><span class="identifier">point</span> <span class="identifier">type</span>  <span class="identifier">float16_t</span><span class="special">;</span>
+  <span class="keyword">typedef</span> <span class="keyword">float</span>                <span class="identifier">float32_t</span><span class="special">;</span>
+  <span class="keyword">typedef</span> <span class="identifier">float32_t</span>            <span class="identifier">floatmax_t</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+      The popular Intel X8087 chipset
+      architecture supports a 10-byte floating-point format. It may be useful to
+      extend the optional support to <code class="computeroutput"><span class="identifier">float80_t</span></code>.
+      Several implementations using <a href="http://en.wikipedia.org/wiki/Extended_precision#IEEE_754_extended_precision_formats#" target="_top">x86
+      Extended Precision Format</a> already exist in practice.
+    </p>
+<p>
+      Consider an implementation that supports single-precision <code class="computeroutput"><span class="keyword">float</span></code>,
+      double-precision <code class="computeroutput"><span class="keyword">double</span></code>, and 10-byte
+      <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>.
+      This implementation could introduce its optional <code class="computeroutput"><span class="keyword">typedef</span></code>s
+      <code class="computeroutput"><span class="identifier">float32_t</span></code>, <code class="computeroutput"><span class="identifier">float64_t</span></code>,
+      <code class="computeroutput"><span class="identifier">float80_t</span></code>, and <code class="computeroutput"><span class="identifier">floatmax_t</span></code> into the <code class="computeroutput"><span class="identifier">std</span></code>
+      namespace as shown below.
+    </p>
+<pre class="programlisting"><span class="comment">// In <cstdfloat></span>
+
+<span class="keyword">namespace</span> <span class="identifier">std</span>
+<span class="special">{</span>
+  <span class="keyword">typedef</span> <span class="keyword">float</span>       <span class="identifier">float32_t</span><span class="special">;</span>
+  <span class="keyword">typedef</span> <span class="keyword">double</span>      <span class="identifier">float64_t</span><span class="special">;</span>
+  <span class="keyword">typedef</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">float80_t</span><span class="special">;</span>
+  <span class="keyword">typedef</span> <span class="identifier">float80_t</span>   <span class="identifier">floatmax_t</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2013 Paul A. Bristow, Christopher Kormanyos, John Maddock<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="introduction.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="literals.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/precision/libs/precision/doc/html/precision/thetypes.html
==============================================================================
--- (empty file)
+++ sandbox/precision/libs/precision/doc/html/precision/thetypes.html	2013-03-28 09:58:49 EDT (Thu, 28 Mar 2013)
@@ -0,0 +1,229 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>The proposed types and potential extensions</title>
+<link rel="stylesheet" href=".././boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../index.html" title="Specific-Width Floating-Point Types">
+<link rel="up" href="../index.html" title="Specific-Width Floating-Point Types">
+<link rel="prev" href="introduction.html" title="Introduction">
+<link rel="next" href="suffixes.html" title="How to define floating-point literal suffixes?">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="" width="180" height="90" src=".././images/boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="introduction.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="suffixes.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section precision_thetypes">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="precision.thetypes"></a><a class="link" href="thetypes.html" title="The proposed types and potential extensions">The proposed types and potential extensions</a>
+</h2></div></div></div>
+<p>
+      The core of this proposal is based on the types <code class="computeroutput"><span class="identifier">float16_t</span></code>,
+      <code class="computeroutput"><span class="identifier">float32_t</span></code>, <code class="computeroutput"><span class="identifier">float64_t</span></code>,
+      <code class="computeroutput"><span class="identifier">float128_t</span></code>, and their corresponding
+      least and fast types. These floating-point types have specified widths and
+      they are to conform with the corresponding types <code class="computeroutput"><span class="identifier">binary16</span></code>,
+      <code class="computeroutput"><span class="identifier">binary32</span></code>, <code class="computeroutput"><span class="identifier">binary64</span></code>,
+      and <code class="computeroutput"><span class="identifier">binary128</span></code> specified in
+      <a href="http://en.wikipedia.org/wiki/IEEE_floating_point" target="_top">IEEE_ floating-point
+      format</a>. In particular, <code class="computeroutput"><span class="identifier">float16_t</span></code>,
+      <code class="computeroutput"><span class="identifier">float32_t</span></code>, <code class="computeroutput"><span class="identifier">float64_t</span></code>,
+      and <code class="computeroutput"><span class="identifier">float128_t</span></code> correspond to
+      floating-point types with 11, 24, 53, and 113 binary significand digits, respectively.
+      These are defined in <a href="http://en.wikipedia.org/wiki/IEEE_floating_point" target="_top">IEEE_
+      floating-point format</a>, and there are more detailed descrptions of each
+      type at <a href="http://en.wikipedia.org/wiki/Half_precision_floating-point_format" target="_top">IEEE
+      half-precision floating-point format</a>, <a href="http://en.wikipedia.org/wiki/Single_precision_floating-point_format" target="_top">IEEE
+      single-precision floating-point format</a>, <a href="http://en.wikipedia.org/wiki/Double_precision_floating-point_format" target="_top">IEEE
+      double-precision floating-point format</a>, <a href="http://en.wikipedia.org/wiki/Quadruple-precision_floating-point_format" target="_top">Quadruple-precision
+      floating-point format</a>, and <a href="http://en.wikipedia.org/wiki/Extended_precision#IEEE_754_extended_precision_formats" target="_top">IEEE
+      754 extended precision formats and x86 80-bit Extended Precision Format</a>.
+    </p>
+<p>
+      One could envision two ways to name the proposed floating-point types having
+      specified width:
+    </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+          <code class="computeroutput"><span class="identifier">float11_t</span><span class="special">,</span>
+          <span class="identifier">float24_t</span><span class="special">,</span>
+          <span class="identifier">float53_t</span><span class="special">,</span>
+          <span class="identifier">float113_t</span><span class="special">,</span>
+          <span class="special">...</span></code>
+        </li>
+<li class="listitem">
+          <code class="computeroutput"><span class="identifier">float16_t</span><span class="special">,</span>
+          <span class="identifier">float32_t</span><span class="special">,</span>
+          <span class="identifier">float64_t</span><span class="special">,</span>
+          <span class="identifier">float128_t</span><span class="special">,</span>
+          <span class="special">...</span></code>
+        </li>
+</ul></div>
+<p>
+      The first set above is intuitively coined from IEE754:2008.
+      It is also consistent with the gist of integer types having specified width
+      such as <code class="computeroutput"><span class="identifier">int64_t</span></code>, in so far
+      as the number of binary digits of <span class="emphasis"><em>significand</em></span> precision
+      is contained within the name of the data type.
+    </p>
+<p>
+      On the other hand, the second set with the size of the <span class="emphasis"><em>whole type</em></span>
+      contained within the name may be more intuitive to users. Here, we prefer this
+      naming scheme.
+    </p>
+<p>
+      No matter what naming scheme is used, the exact layout and number of significand
+      and exponent bits can be confirmed as IEEE754 by checking <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">type</span><span class="special">>::</span><span class="identifier">is_iec559</span>
+      <span class="special">==</span> <span class="keyword">true</span></code>.
+    </p>
+<p>
+      We will now consider several examples showing how various implementations might
+      include floating-point types having specified width.
+    </p>
+<p>
+      An implementation that has <code class="computeroutput"><span class="keyword">float</span></code>
+      and <code class="computeroutput"><span class="keyword">double</span></code> corresponding to IEEE
+      754 <code class="computeroutput"><span class="identifier">binary32</span></code>, <code class="computeroutput"><span class="identifier">binary64</span></code>, respectively, could introduce
+      <code class="computeroutput"><span class="identifier">float32_t</span></code> and <code class="computeroutput"><span class="identifier">float64_t</span></code> into the <code class="computeroutput"><span class="identifier">std</span></code>
+      namespace as shown below.
+    </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">std</span>
+<span class="special">{</span>
+  <span class="keyword">typedef</span> <span class="keyword">float</span>  <span class="identifier">float32_t</span><span class="special">;</span>
+  <span class="keyword">typedef</span> <span class="keyword">double</span> <span class="identifier">float64_t</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+      There may be a need for octuple-precision float, in other words <code class="computeroutput"><span class="identifier">float256_t</span></code> with about 240 binary significand
+      digits of precision. In addition, a <code class="computeroutput"><span class="identifier">float512_t</span></code>
+      type with even more precision may be considered as a option. Beyond these,
+      there may be potential extension to multiprecision types in the future.
+    </p>
+<p>
+      Consider an implementation for a supercomputer. This platform might have <code class="computeroutput"><span class="keyword">float</span></code>, <code class="computeroutput"><span class="keyword">double</span></code>,
+      and <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>
+      corresponding to IEEE 754 <code class="computeroutput"><span class="identifier">binary32</span></code>,
+      <code class="computeroutput"><span class="identifier">binary64</span></code>, and <code class="computeroutput"><span class="identifier">binary128</span></code>, respectively. In addition, this
+      platform might have a user-defined type with octuple-precision. The implementation
+      for this supercomputer could introduce floating-point types having specified
+      width into the <code class="computeroutput"><span class="identifier">std</span></code> namespace
+      as shown below.
+    </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">std</span>
+<span class="special">{</span>
+  <span class="keyword">typedef</span> <span class="keyword">float</span>                     <span class="identifier">float32_t</span><span class="special">;</span>
+  <span class="keyword">typedef</span> <span class="keyword">double</span>                    <span class="identifier">float64_t</span><span class="special">;</span>
+  <span class="keyword">typedef</span> <span class="keyword">long</span> <span class="keyword">double</span>               <span class="identifier">float128_t</span><span class="special">;</span>
+  <span class="keyword">typedef</span> <span class="identifier">my_octuple_precision_type</span> <span class="identifier">float256_t</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+      A cost-sensitive 8-bit microcontroller platform without an FPU does not have
+      sufficient resources to support eight-byte <code class="computeroutput"><span class="identifier">binary64</span></code>
+      in a feasible fashion. An implementation on this platform can, however, support
+      half-precision <code class="computeroutput"><span class="identifier">float16_t</span></code> and
+      single-precision <code class="computeroutput"><span class="identifier">float32_t</span></code>.
+      The implementation for this 8-bit microcontroller could introduce floating-point
+      types having specified width into the <code class="computeroutput"><span class="identifier">std</span></code>
+      namespace as shown below.
+    </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">std</span>
+<span class="special">{</span>
+  <span class="keyword">typedef</span> <span class="identifier">my_half_precision_type</span> <span class="identifier">float16_t</span><span class="special">;</span>
+  <span class="keyword">typedef</span> <span class="keyword">float</span>                  <span class="identifier">float32_t</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+      The popular Intel X8087 chipset
+      architecture supports a 10-byte floating-point format. So it may be useful
+      to provide optional support for <code class="computeroutput"><span class="identifier">float80_t</span></code>.
+      In our opinion, there is no type that is analogous to <code class="computeroutput"><span class="identifier">float80_t</span></code>
+      in <a href="http://en.wikipedia.org/wiki/IEEE_floating_point" target="_top">IEEE_ floating-point
+      format</a>, but several implementations already exist in practice.
+    </p>
+<p>
+      An implementation that supports single-precision <code class="computeroutput"><span class="keyword">float</span></code>,
+      double-precision <code class="computeroutput"><span class="keyword">double</span></code>, and 10-byte
+      <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>
+      could introduce <code class="computeroutput"><span class="identifier">float32_t</span></code>,
+      <code class="computeroutput"><span class="identifier">float64_t</span></code>, and <code class="computeroutput"><span class="identifier">float80_t</span></code> into the <code class="computeroutput"><span class="identifier">std</span></code>
+      namespace as shown below.
+    </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">std</span>
+<span class="special">{</span>
+  <span class="keyword">typedef</span> <span class="keyword">float</span>       <span class="identifier">float32_t</span><span class="special">;</span>
+  <span class="keyword">typedef</span> <span class="keyword">double</span>      <span class="identifier">float64_t</span><span class="special">;</span>
+  <span class="keyword">typedef</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">float80_t</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+      We will now examine how to use floating-point literal constants in combination
+      with floating-point types having specified width.
+    </p>
+<p>
+      At present, the only way to provide a floating-point literal constant value
+      with precision exceeding the precision of <code class="computeroutput"><span class="keyword">long</span>
+      <span class="keyword">double</span></code> is to use a character string
+      in association with type conversion for a user-defined extended-precision type.
+      For example, construction from a string as well as the <code class="computeroutput"><span class="identifier">from_string</span></code>
+      method are used for this purpose in Boost.Math,
+      Boost.Multiprecision
+      and GCC libquadmath.
+    </p>
+<p>
+      The sample below, for instance, uses the <code class="computeroutput"><span class="identifier">cpp_dec_float_50</span></code>
+      type from Boost.Multiprecision
+      to initialize the Euler-gamma constant with 50 decimal digits of precision.
+    </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">multiprecision</span><span class="special">/</span><span class="identifier">cpp_dec_float</span><span class="special">></span>
+
+<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">cpp_dec_float_50</span> <span class="identifier">mp_type</span><span class="special">;</span>
+
+<span class="keyword">const</span> <span class="identifier">mp_type</span> <span class="identifier">euler</span><span class="special">(</span><span class="string">"0.577215664901532860606512090082402431042159335939924"</span><span class="special">);</span>
+</pre>
+<p>
+      Construction from string is inappropriate for the proposed floating-point types
+      having specified width. These should be copy assignable and copy constructable
+      from floating-point literal constants. This requires slight changes to the
+      core language including the addition of new floating-point literal constant
+      suffixes. For instance, the sample below uses a potential <code class="computeroutput"><span class="identifier">Q</span></code>
+      suffix is used to initialize the Euler-gamma constant stored in a <code class="computeroutput"><span class="identifier">float128_t</span></code>.
+    </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">cstdfloat</span><span class="special">></span>
+
+<span class="identifier">constexpr</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">float128_t</span> <span class="identifier">euler</span> <span class="special">=</span> <span class="number">0.57721566490153286060651209008240243104216</span><span class="identifier">Q</span><span class="special">;</span>
+</pre>
+<p>
+      Suffixes will be described in greater detail below.
+    </p>
+<p>
+      It would also be useful to have a method of querying the size of types, similar
+      to that provided by <a href="http://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html" target="_top">GCC
+      3.7.2 Common Predefined Macros</a>, for example, <code class="computeroutput"><span class="identifier">__SIZEOF_LONG_DOUBLE__</span></code>.
+      But similar macros are not defined for <code class="computeroutput"><span class="identifier">__float128</span></code>
+      nor for <code class="computeroutput"><span class="identifier">__float80</span></code>.
+    </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2013 Paul A. Bristow, Christopher Kormanyos, John Maddock<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="introduction.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="suffixes.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>