Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r83520 - in sandbox/precision/libs/precision/doc: . html html/precision html/precision/precision
From: pbristow_at_[hidden]
Date: 2013-03-22 12:58:58


Author: pbristow
Date: 2013-03-22 12:58:56 EDT (Fri, 22 Mar 2013)
New Revision: 83520
URL: http://svn.boost.org/trac/boost/changeset/83520

Log:
Updates to meet comments from Chris and John 21 Mar 13
Binary files modified:
   sandbox/precision/libs/precision/doc/precision.pdf
Text files modified:
   sandbox/precision/libs/precision/doc/html/index.html | 17 +++--
   sandbox/precision/libs/precision/doc/html/precision/abstract.html | 30 ++++++---
   sandbox/precision/libs/precision/doc/html/precision/background.html | 8 +-
   sandbox/precision/libs/precision/doc/html/precision/introduction.html | 28 ++++++---
   sandbox/precision/libs/precision/doc/html/precision/precision.html | 78 ++++++++++++++++++--------
   sandbox/precision/libs/precision/doc/html/precision/precision/integerfixedtypes.html | 8 +-
   sandbox/precision/libs/precision/doc/html/precision/precision/newfloattypes.html | 51 +++++++++-------
   sandbox/precision/libs/precision/doc/html/precision/references.html | 6 +-
   sandbox/precision/libs/precision/doc/html/precision/suffixes.html | 22 ++++++-
   sandbox/precision/libs/precision/doc/html/precision/version_id.html | 8 +-
   sandbox/precision/libs/precision/doc/precision.qbk | 117 +++++++++++++++++++++++++++------------
   11 files changed, 245 insertions(+), 128 deletions(-)

Modified: sandbox/precision/libs/precision/doc/html/index.html
==============================================================================
--- sandbox/precision/libs/precision/doc/html/index.html (original)
+++ sandbox/precision/libs/precision/doc/html/index.html 2013-03-22 12:58:56 EDT (Fri, 22 Mar 2013)
@@ -1,10 +1,10 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>Specification of Precision of Floating-point and Integer Types</title>
+<title>Specific-Width Floating-Point Types</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="Specification of Precision of Floating-point and Integer Types">
+<link rel="home" href="index.html" title="Specific-Width Floating-Point Types">
 <link rel="next" href="precision/abstract.html" title="Abstract">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,7 +22,7 @@
 <div class="titlepage">
 <div>
 <div><h2 class="title">
-<a name="precision"></a>Specification of Precision of Floating-point and Integer Types</h2></div>
+<a name="precision"></a>Specific-Width Floating-Point Types</h2></div>
 <div><div class="authorgroup">
 <div class="author"><h3 class="author">
 <span class="firstname">Paul A.</span> <span class="surname">Bristow</span>
@@ -30,8 +30,11 @@
 <div class="author"><h3 class="author">
 <span class="firstname">Christopher</span> <span class="surname">Kormanyos</span>
 </h3></div>
+<div class="author"><h3 class="author">
+<span class="firstname">John</span> <span class="surname">Maddock</span>
+</h3></div>
 </div></div>
-<div><p class="copyright">Copyright &#169; 2013 Paul A. Bristow, Christopher Kormanyos</p></div>
+<div><p class="copyright">Copyright &#169; 2013 Paul A. Bristow, Christopher Kormanyos, John Maddock</p></div>
 <div><div class="legalnotice">
 <a name="precision.legal"></a><p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
@@ -51,7 +54,7 @@
     - Q?</a></span></dt>
 <dt><span class="section">Specifying Precision</span></dt>
 <dd><dl>
-<dt><span class="section"><a href="precision/precision/integerfixedtypes.html">Existing Fixed
+<dt><span class="section"><a href="precision/precision/integerfixedtypes.html">Existing Specific
       precision integer types</a></span></dt>
 <dt><span class="section">Proposed new section</span></dt>
 </dl></dd>
@@ -60,7 +63,7 @@
 </dl>
 </div>
 <p>
- ISO/IEC JTC1 SC22 WG21 N??? - 2013-4-??
+ ISO/IEC JTC1 SC22 WG21/SG6 Numerics N??? - 2013-4-??
   </p>
 <div class="important"><table border="0" summary="Important">
 <tr>
@@ -82,7 +85,7 @@
 </table></div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: March 21, 2013 at 14:51:14 GMT</small></p></td>
+<td align="left"><p><small>Last revised: March 22, 2013 at 16:57:47 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>

Modified: sandbox/precision/libs/precision/doc/html/precision/abstract.html
==============================================================================
--- sandbox/precision/libs/precision/doc/html/precision/abstract.html (original)
+++ sandbox/precision/libs/precision/doc/html/precision/abstract.html 2013-03-22 12:58:56 EDT (Fri, 22 Mar 2013)
@@ -4,9 +4,9 @@
 <title>Abstract</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="Specification of Precision of Floating-point and Integer Types">
-<link rel="up" href="../index.html" title="Specification of Precision of Floating-point and Integer Types">
-<link rel="prev" href="../index.html" title="Specification of Precision of Floating-point and Integer Types">
+<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="../index.html" title="Specific-Width Floating-Point Types">
 <link rel="next" href="background.html" title="Background">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -27,11 +27,9 @@
 <a name="precision.abstract"></a><a class="link" href="abstract.html" title="Abstract">Abstract</a>
 </h2></div></div></div>
 <p>
- It is proposed to add several optional typedefs with fixed precisions for floating-point
- types including <code class="computeroutput"><span class="identifier">float32_t</span><span class="special">,</span>
- <span class="identifier">float64_t</span> <span class="identifier">_float128_t</span></code>
- (similar to <code class="computeroutput"><span class="identifier">int64_t</span></code> for integer
- types).
+ It is proposed to add several optional typedefs with specific precisions for
+ floating-point types including <code class="computeroutput"><span class="identifier">float32_t</span><span class="special">,</span> <span class="identifier">float64_t</span> <span class="identifier">_float128_t</span></code> (similar to <code class="computeroutput"><span class="identifier">int64_t</span></code>
+ for integer types).
     </p>
 <p>
       These will be defined in the global and <code class="computeroutput"><span class="identifier">std</span></code>
@@ -43,13 +41,23 @@
       <span class="keyword">double</span></code>.
     </p>
 <p>
- The objectives are to makes it easier to use higher-precision, to reduce errors
- in precision, and to improve portability.
+ The objectives are to:
     </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+ Make it easier to use higher-precision.
+ </li>
+<li class="listitem">
+ Reduce errors in precision.
+ </li>
+<li class="listitem">
+ Improve portability.
+ </li>
+</ul></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 &#169; 2013 Paul A. Bristow, Christopher Kormanyos<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 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>

Modified: sandbox/precision/libs/precision/doc/html/precision/background.html
==============================================================================
--- sandbox/precision/libs/precision/doc/html/precision/background.html (original)
+++ sandbox/precision/libs/precision/doc/html/precision/background.html 2013-03-22 12:58:56 EDT (Fri, 22 Mar 2013)
@@ -4,8 +4,8 @@
 <title>Background</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="Specification of Precision of Floating-point and Integer Types">
-<link rel="up" href="../index.html" title="Specification of Precision of Floating-point and Integer Types">
+<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="abstract.html" title="Abstract">
 <link rel="next" href="introduction.html" title="Introduction">
 </head>
@@ -65,7 +65,7 @@
       fixed-point</a>.
     </p>
 <p>
- Of coure, moving away from hardware supported types to software using templates
+ Of coure, moving away from hardware supported types to software using C++ templates
       carries a small price at compile-time, and a much bigger price at runtime.
     </p>
 <p>
@@ -86,7 +86,7 @@
 </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 &#169; 2013 Paul A. Bristow, Christopher Kormanyos<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 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>

Modified: sandbox/precision/libs/precision/doc/html/precision/introduction.html
==============================================================================
--- sandbox/precision/libs/precision/doc/html/precision/introduction.html (original)
+++ sandbox/precision/libs/precision/doc/html/precision/introduction.html 2013-03-22 12:58:56 EDT (Fri, 22 Mar 2013)
@@ -4,8 +4,8 @@
 <title>Introduction</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="Specification of Precision of Floating-point and Integer Types">
-<link rel="up" href="../index.html" title="Specification of Precision of Floating-point and Integer Types">
+<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="background.html" title="Background">
 <link rel="next" href="suffixes.html" title="How to specify extended precision constants - Q?">
 </head>
@@ -29,13 +29,21 @@
 <p>
       These developments have also revealed a need for more standard ways to specify
       precision, especially for extended precision, and to improve portability and
- give more confidence that the actual precision can be predicted. For example,
- support has been expressed on the <a href="http://lists.boost.org/Archives/boost/2013/03/201786.php" target="_top">Boost
- list discussion of precise floating-point types</a>
+ give more confidence that the actual precision can be exactly predicted. For
+ example, support has been expressed on the <a href="http://lists.boost.org/Archives/boost/2013/03/201786.php" target="_top">Boost
+ list discussion of precise floating-point types</a>.
     </p>
 <p>
       The reasons for this need are analogous to those that led to the introduction
- of fixed integer size like <code class="computeroutput"><span class="identifier">int64_t</span></code>.
+ of specific integer size like <code class="computeroutput"><span class="identifier">int64_t</span></code>.
+ </p>
+<p>
+ (Although Section 22.3 in the book "The C++ Standard Library Extensions",
+ P. Becker, Addison Wesley 2007, ISBN 0-321-41299-0, the section is called "Fixed-Size
+ Integer Types", used of the descriptor <span class="emphasis"><em>fixed</em></span> has
+ lead to some confusion. So the descriptor <span class="emphasis"><em>specific</em></span> is
+ here used to match the wording of C99 in the section on <code class="computeroutput"><span class="identifier">int_64_t</span>
+ <span class="special">...</span></code> in <code class="computeroutput"><span class="identifier">stdint</span><span class="special">.</span><span class="identifier">h</span></code>.)
     </p>
 <p>
       Recent specification of fixed-size integer types in C99, C11 and C++11 and
@@ -46,10 +54,12 @@
 <p>
       Similar specification of fixed-size floating-point types could potentially
       improve the C++ language significantly, especially in the scientific and engineering
- communities.
+ communities where other languages have found benefit from types that conform
+ exactly to the <a href="http://en.wikipedia.org/wiki/IEEE_floating_point" target="_top">IEEE_
+ floating-point format</a>.
     </p>
 <p>
- One example of how fixed-size integer types have proved invaluable is described
+ One example of how specific-size integer types have proved invaluable is described
       by Robert Ramey <a href="http://lists.boost.org/Archives/boost/2002/11/40432.php" target="_top">Usefulness
       of fixed integer sizes in portability (for Boost serialization library).</a>
     </p>
@@ -75,7 +85,7 @@
 </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 &#169; 2013 Paul A. Bristow, Christopher Kormanyos<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 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>

Modified: sandbox/precision/libs/precision/doc/html/precision/precision.html
==============================================================================
--- sandbox/precision/libs/precision/doc/html/precision/precision.html (original)
+++ sandbox/precision/libs/precision/doc/html/precision/precision.html 2013-03-22 12:58:56 EDT (Fri, 22 Mar 2013)
@@ -4,10 +4,10 @@
 <title>Specifying 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="Specification of Precision of Floating-point and Integer Types">
-<link rel="up" href="../index.html" title="Specification of Precision of Floating-point and Integer Types">
+<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="suffixes.html" title="How to specify extended precision constants - Q?">
-<link rel="next" href="precision/integerfixedtypes.html" title="Existing Fixed precision integer types">
+<link rel="next" href="precision/integerfixedtypes.html" title="Existing Specific precision integer types">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -27,7 +27,7 @@
 <a name="precision.precision"></a><a class="link" href="precision.html" title="Specifying Precision">Specifying Precision</a>
 </h2></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section"><a href="precision/integerfixedtypes.html">Existing Fixed
+<dt><span class="section"><a href="precision/integerfixedtypes.html">Existing Specific
       precision integer types</a></span></dt>
 <dt><span class="section">Proposed new section</span></dt>
 </dl></div>
@@ -49,15 +49,15 @@
         </li>
 </ul></div>
 <p>
- The first set above is intuitively coined from IEE754:2008. It is also consistent
- with the gist of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">uint32_t</span></code>, et al 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.
+ The first set above is intuitively coined from IEE754:2008.
+ It is also consistent with the gist of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">uint32_t</span></code>,
+ et al 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 using the size of the <span class="emphasis"><em>whole type</em></span>
- may seem more intuitive to users. The exact layout and number of significand
- and exponent bits can be confirmed by checking <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special">&lt;</span><span class="identifier">type</span><span class="special">&gt;::</span><span class="identifier">is_iec559</span>
+ may probably seem more intuitive to users. 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">&lt;</span><span class="identifier">type</span><span class="special">&gt;::</span><span class="identifier">is_iec559</span>
       <span class="special">==</span> <span class="keyword">true</span></code>.
     </p>
 <p>
@@ -116,7 +116,8 @@
       float128</a>.
     </p>
 <p>
- If we wish to ensure that we use all 80 bits to calculate <a href="http://en.wikipedia.org/wiki/Extended_precision" target="_top">Extended
+ If we wish to ensure that we use all 80 bits available from Intel 8087 chips
+ to calculate <a href="http://en.wikipedia.org/wiki/Extended_precision" target="_top">Extended
       precision</a> we would use a <code class="computeroutput"><span class="keyword">typedef</span>
       <span class="identifier">float80_t</span></code>.
     </p>
@@ -125,23 +126,50 @@
       software emulation, perhaps using a Boost.Multiprecision type <code class="computeroutput"><span class="identifier">cpp_dec_float_21</span></code>.
     </p>
 <p>
- Similarly if a quadrupole precision of 16-byte 128-bit format
- is desired, the specification of <code class="computeroutput"><span class="identifier">float128_t</span></code>
- will either direct the compiler to generate code using the hardware, or it
- will do this using software emulation. This might be generated by the compiler
- for GCC or delegated to a <code class="computeroutput"><span class="identifier">cpp_bin_float_128</span></code>
- type (under development for Boost.Multiprecision).
- </p>
-<p>
- <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>
- </p>
+ Similarly if a quadrupole precision of 16-byte 128-bit <a href="http://en.wikipedia.org/wiki/Quadruple-precision_floating-point_format" target="_top">Quadruple-precision
+ floating-point format</a> is desired, the specification of <code class="computeroutput"><span class="identifier">float128_t</span></code> will either direct the compiler
+ to generate code using the hardware, or it will do this using software emulation.
+ This might be generated by the compiler for GCC or delegated to a <code class="computeroutput"><span class="identifier">cpp_bin_float_128</span></code> type (under development
+ for Boost.Multiprecision).
+ </p>
+<h5>
+<a name="precision.precision.h0"></a>
+ <span class="phrase"><a name="precision.precision.existing_extended_precision_types"></a></span><a class="link" href="precision.html#precision.precision.existing_extended_precision_types">Existing
+ 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 &#169; 2013 Paul A. Bristow, Christopher Kormanyos<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 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>

Modified: sandbox/precision/libs/precision/doc/html/precision/precision/integerfixedtypes.html
==============================================================================
--- sandbox/precision/libs/precision/doc/html/precision/precision/integerfixedtypes.html (original)
+++ sandbox/precision/libs/precision/doc/html/precision/precision/integerfixedtypes.html 2013-03-22 12:58:56 EDT (Fri, 22 Mar 2013)
@@ -1,10 +1,10 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>Existing Fixed precision integer types</title>
+<title>Existing Specific precision integer types</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="Specification of Precision of Floating-point and Integer Types">
+<link rel="home" href="../../index.html" title="Specific-Width Floating-Point Types">
 <link rel="up" href="../precision.html" title="Specifying Precision">
 <link rel="prev" href="../precision.html" title="Specifying Precision">
 <link rel="next" href="newfloattypes.html" title="Proposed new section">
@@ -24,7 +24,7 @@
 </div>
 <div class="section precision_precision_integerfixedtypes">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="precision.precision.integerfixedtypes"></a><a class="link" href="integerfixedtypes.html" title="Existing Fixed precision integer types">Existing Fixed
+<a name="precision.precision.integerfixedtypes"></a><a class="link" href="integerfixedtypes.html" title="Existing Specific precision integer types">Existing Specific
       precision integer types</a>
 </h3></div></div></div>
 <p>
@@ -44,7 +44,7 @@
 </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 &#169; 2013 Paul A. Bristow, Christopher Kormanyos<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 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>

Modified: sandbox/precision/libs/precision/doc/html/precision/precision/newfloattypes.html
==============================================================================
--- sandbox/precision/libs/precision/doc/html/precision/precision/newfloattypes.html (original)
+++ sandbox/precision/libs/precision/doc/html/precision/precision/newfloattypes.html 2013-03-22 12:58:56 EDT (Fri, 22 Mar 2013)
@@ -4,9 +4,9 @@
 <title>Proposed new section</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="Specification of Precision of Floating-point and Integer Types">
+<link rel="home" href="../../index.html" title="Specific-Width Floating-Point Types">
 <link rel="up" href="../precision.html" title="Specifying Precision">
-<link rel="prev" href="integerfixedtypes.html" title="Existing Fixed precision integer types">
+<link rel="prev" href="integerfixedtypes.html" title="Existing Specific precision integer types">
 <link rel="next" href="../references.html" title="References">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -35,9 +35,10 @@
 <th align="left">Note</th>
 </tr>
 <tr><td align="left" valign="top"><p>
- It is not obvious where these typedef should reside. The obvious place
- is <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">cstdint</span><span class="special">&gt;</span></code> but <code class="computeroutput"><span class="keyword">int</span></code>
- implies integer types. (or &lt;cstdfloat&gt;?)
+ It is not obvious where these <code class="computeroutput"><span class="keyword">typedef</span></code>s
+ should reside. The obvious place is <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">cstdint</span><span class="special">&gt;</span></code>
+ but <code class="computeroutput"><span class="keyword">int</span></code> implies integer types.
+ (or a new &lt;cstdfloat&gt;?)
         </p></td></tr>
 </table></div>
 <p>
@@ -45,29 +46,35 @@
         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="keyword">signed</span> <span class="identifier">integer</span> <span class="identifier">type</span> <span class="identifier">float_32_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">float_64_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">float_80_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">float_128_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">float_256_t</span><span class="special">;</span> <span class="comment">// optional</span>
+ <span class="keyword">typedef</span> <span class="keyword">signed</span> <span class="identifier">floating</span><span class="special">-</span><span class="identifier">point</span> <span class="identifier">type</span> <span class="identifier">float_16_t</span><span class="special">;</span> <span class="comment">// optional.</span>
+ <span class="keyword">typedef</span> <span class="keyword">signed</span> <span class="identifier">floating</span><span class="special">-</span><span class="identifier">point</span> <span class="identifier">type</span> <span class="identifier">float_32_t</span><span class="special">;</span> <span class="comment">// optional.</span>
+ <span class="keyword">typedef</span> <span class="keyword">signed</span> <span class="identifier">floating</span><span class="special">-</span><span class="identifier">point</span> <span class="identifier">type</span> <span class="identifier">float_64_t</span><span class="special">;</span> <span class="comment">// optional.</span>
+ <span class="keyword">typedef</span> <span class="keyword">signed</span> <span class="identifier">floating</span><span class="special">-</span><span class="identifier">point</span> <span class="identifier">type</span> <span class="identifier">float_80_t</span><span class="special">;</span> <span class="comment">// optional.</span>
+ <span class="keyword">typedef</span> <span class="keyword">signed</span> <span class="identifier">floating</span><span class="special">-</span><span class="identifier">point</span> <span class="identifier">type</span> <span class="identifier">float_128_t</span><span class="special">;</span> <span class="comment">// optional.</span>
+ <span class="keyword">typedef</span> <span class="keyword">signed</span> <span class="identifier">floating</span><span class="special">-</span><span class="identifier">point</span> <span class="identifier">type</span> <span class="identifier">float_256_t</span><span class="special">;</span> <span class="comment">// optional.</span>
+ <span class="keyword">typedef</span> <span class="keyword">signed</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="keyword">signed</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="keyword">signed</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="keyword">signed</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="keyword">signed</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="keyword">signed</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="keyword">signed</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="keyword">signed</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="keyword">signed</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="keyword">signed</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="keyword">signed</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="keyword">signed</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="keyword">signed</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> <span class="comment">// namespace std</span>
 </pre>
-<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>
- Others might also be defined here?
- </p></td></tr>
-</table></div>
 <p>
         It is not proposed to make any change to <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span></code>.
       </p>
 <p>
         It is obviously highly desirable that <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span></code>
- is specialized for all floating or fixed-point types. And experience with
- Boost.Math
+ is specialized for all floating-point types. And experience with Boost.Math
         and Boost.Multiprecision
         is that the normal set of trig and others useful functions is also essential
         to make the type useful in real-life.
@@ -79,7 +86,7 @@
 </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 &#169; 2013 Paul A. Bristow, Christopher Kormanyos<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 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>

Modified: sandbox/precision/libs/precision/doc/html/precision/references.html
==============================================================================
--- sandbox/precision/libs/precision/doc/html/precision/references.html (original)
+++ sandbox/precision/libs/precision/doc/html/precision/references.html 2013-03-22 12:58:56 EDT (Fri, 22 Mar 2013)
@@ -4,8 +4,8 @@
 <title>References</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="Specification of Precision of Floating-point and Integer Types">
-<link rel="up" href="../index.html" title="Specification of Precision of Floating-point and Integer Types">
+<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="version_id.html" title="Version Info">
 </head>
@@ -78,7 +78,7 @@
 </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 &#169; 2013 Paul A. Bristow, Christopher Kormanyos<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 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>

Modified: sandbox/precision/libs/precision/doc/html/precision/suffixes.html
==============================================================================
--- sandbox/precision/libs/precision/doc/html/precision/suffixes.html (original)
+++ sandbox/precision/libs/precision/doc/html/precision/suffixes.html 2013-03-22 12:58:56 EDT (Fri, 22 Mar 2013)
@@ -4,8 +4,8 @@
 <title>How to specify extended precision constants - Q?</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="Specification of Precision of Floating-point and Integer Types">
-<link rel="up" href="../index.html" title="Specification of Precision of Floating-point and Integer Types">
+<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="precision.html" title="Specifying Precision">
 </head>
@@ -65,10 +65,26 @@
       more binary significand digits, (and possibly even extending beyond these to
       potential multiprecision types).
     </p>
+<p>
+ These are defined in <a href="http://dx.doi.org/10.1109/IEEESTD.2008.4610935" target="_top">IEEE
+ Standard for Floating-point Arithmetic, IEEE Std 754-2008</a>.
+ </p>
+<p>
+ There are detailed descriptions at <a href="http://en.wikipedia.org/wiki/IEEE_floating_point" target="_top">IEEE_
+ floating-point format</a>, with 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>
+ and these correspond to the proposed types below <code class="computeroutput"><span class="identifier">float16_t</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 &#169; 2013 Paul A. Bristow, Christopher Kormanyos<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 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>

Modified: sandbox/precision/libs/precision/doc/html/precision/version_id.html
==============================================================================
--- sandbox/precision/libs/precision/doc/html/precision/version_id.html (original)
+++ sandbox/precision/libs/precision/doc/html/precision/version_id.html 2013-03-22 12:58:56 EDT (Fri, 22 Mar 2013)
@@ -4,8 +4,8 @@
 <title>Version Info</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="Specification of Precision of Floating-point and Integer Types">
-<link rel="up" href="../index.html" title="Specification of Precision of Floating-point and Integer Types">
+<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="references.html" title="References">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -26,7 +26,7 @@
 <a name="precision.version_id"></a><a class="link" href="version_id.html" title="Version Info">Version Info</a>
 </h2></div></div></div>
 <p>
- Last edit to Quickbook file precision.qbk was at 02:51:14 PM on 2013-Mar-21.
+ Last edit to Quickbook file precision.qbk was at 04:57:47 PM on 2013-Mar-22.
     </p>
 <div class="tip"><table border="0" summary="Tip">
 <tr>
@@ -51,7 +51,7 @@
 </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 &#169; 2013 Paul A. Bristow, Christopher Kormanyos<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 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>

Modified: sandbox/precision/libs/precision/doc/precision.pdf
==============================================================================
Binary files. No diff available.

Modified: sandbox/precision/libs/precision/doc/precision.qbk
==============================================================================
--- sandbox/precision/libs/precision/doc/precision.qbk (original)
+++ sandbox/precision/libs/precision/doc/precision.qbk 2013-03-22 12:58:56 EDT (Fri, 22 Mar 2013)
@@ -1,17 +1,17 @@
-[article Specification of Precision of Floating-point and Integer Types
+[article Specific-Width Floating-Point Types
     [quickbook 1.5]
     [id precision]
- [copyright 2013 Paul A. Bristow, Christopher Kormanyos]
+ [copyright 2013 Paul A. Bristow, Christopher Kormanyos, John Maddock]
     [license
         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])
     ]
- [authors [Bristow, Paul A.], [Kormanyos, Christopher]]
+ [authors [Bristow, Paul A.], [Kormanyos, Christopher], [Maddock, John]]
     [source-mode c++]
 ]
 
-[/purpose paper for C++ ISO standards group WG21.]
+[/purpose paper for C++ ISO standards group WG21/SG6 numerics.]
 
 [def __Boost [@http://www.boost.org/ Boost]]
 [def __Boost_Math [@http://www.boost.org/doc/libs/1_53_0/libs/math/doc/html/index.html Boost.Math]]
@@ -24,7 +24,7 @@
 [def __NTL_quad_float [@http://shoup.net/ntl/doc/quad_float.txt NTL::quad_float]]
 [def __MPFR [@http://www.mpfr.org/ GNU MPFR library]]
 [def __GMP [@http://gmplib.org/ GNU Multiple Precision Arithmetic Library]]
-[def __Boost_multiprecision [@http://www.boost.org/doc/libs/1_53_0/libs/multiprecision/doc/html/index.html Boost.Multiprecision]]
+[def __Boost_Multiprecision [@http://www.boost.org/doc/libs/1_53_0/libs/multiprecision/doc/html/index.html Boost.Multiprecision]]
 [def __cpp_dec_float [@http://www.boost.org/doc/libs/1_53_0/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/cpp_dec_float.html cpp_dec_float]]
 [def __R [@http://www.r-project.org/ The R Project for Statistical Computing]]
 [def __e_float [@http://calgo.acm.org/910.zip e_float (TOMS Algorithm 910)]]
@@ -34,10 +34,23 @@
 [def __WolframAlpha [@http://www.wolframalpha.com/ Wolfram Alpha]]
 [def __Matlab [@http://www.mathworks.co.uk/products/matlab/ MATLAB]]
 [def __libquadmath [@http://gcc.gnu.org/onlinedocs/libquadmath/ GCC libquadmath]]
+[def __Quad [@http://software.intel.com/en-us/forums/topic/358472 Extended or Quad IEEE FP formats]]
+[def __IEEE754 [@http://dx.doi.org/10.1109/IEEESTD.2008.4610935 IEEE Standard for Floating-point Arithmetic, IEEE Std 754-2008]]
+
+[def __IEEE_Half [@http://en.wikipedia.org/wiki/Half_precision_floating-point_format IEEE half-precision floating-point format]]
+[def __IEEE_Single [@http://en.wikipedia.org/wiki/Single_precision_floating-point_format IEEE single-precision floating-point format]]
+[def __IEEE_Double [@http://en.wikipedia.org/wiki/Double_precision_floating-point_format IEEE double-precision floating-point format]]
+[def __IEEE_Quad [@http://en.wikipedia.org/wiki/Quadruple-precision_floating-point_format Quadruple-precision floating-point format]]
+[def __IEEE_Extended [@http://en.wikipedia.org/wiki/Extended_precision#IEEE_754_extended_precision_formats IEEE 754 extended precision formats and x86 80-bit Extended Precision Format]]
+[def __IEEE_floating_point [@http://en.wikipedia.org/wiki/IEEE_floating_point IEEE_ floating-point format]]
+
+[def __IBM_hexadecimal [@http://en.wikipedia.org/wiki/Extended_precision#IBM_extended_precision_formats IBM extended precision formats]]
+
+[def __C_IEEE_2008 [@http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1582.pdf C support for IEEE754:2008 N1582]]
 
 [include html4_symbols.qbk]
 
-ISO/IEC JTC1 SC22 WG21 N??? - 2013-4-??
+ISO/IEC JTC1 SC22 WG21/SG6 Numerics N??? - 2013-4-??
 
 [important This is NOT an official Boost library.]
 
@@ -45,14 +58,18 @@
 
 [section:abstract Abstract]
 
-It is proposed to add several optional typedefs with fixed precisions
+It is proposed to add several optional typedefs with specific precisions
 for floating-point types including `float32_t, float64_t _float128_t` (similar to `int64_t` for integer types).
 
 These will be defined in the global and `std` namespaces.
 
 And also to provide additional suffix(es) to specify extended precision constants to suit precisions higher than `long double`.
 
-The objectives are to makes it easier to use higher-precision, to reduce errors in precision, and to improve portability.
+The objectives are to:
+
+* Make it easier to use higher-precision.
+* Reduce errors in precision.
+* Improve portability.
 
 [endsect] [/section:abstract Abstract]
 
@@ -70,13 +87,13 @@
 
 The __Boost_Math library was accepted into __Boost several years ago. It implements many of the functions in both documents mentioned above and has become quite widely used.
 
-With the acceptance and release of __Boost_multiprecision
+With the acceptance and release of __Boost_Multiprecision
 that provides much higher precision than built-in `long double` with
 __cpp_dec_float employing a variety of backends including the well-established __GMP and __MPFR libraries
 as well as a full open-license backend developed
 from the __e_float library by Christopher Kormanyos and John Maddock.
 
-Since __Boost_multiprecision and __Boost_Math work seamlessly, allowing a `float_type typedef` to be switched from a built-in type to hundreds of decimal digits; then all the special functions and distributions can be used at any chosen precision.
+Since __Boost_Multiprecision and __Boost_Math work seamlessly, allowing a `float_type typedef` to be switched from a built-in type to hundreds of decimal digits; then all the special functions and distributions can be used at any chosen precision.
 
 Other users and domains are finding the need and utility of
 [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3407.html decimal] and
@@ -92,18 +109,20 @@
 
 [section:introduction Introduction]
 
-These developments have also revealed a need for more standard ways to specify precision, especially for extended precision, and to improve portability and give more confidence that the actual precision can be predicted. For example, support has been expressed on the [@http://lists.boost.org/Archives/boost/2013/03/201786.php Boost list discussion of precise floating-point types]
+These developments have also revealed a need for more standard ways to specify precision, especially for extended precision, and to improve portability and give more confidence that the actual precision can be exactly predicted. For example, support has been expressed on the [@http://lists.boost.org/Archives/boost/2013/03/201786.php Boost list discussion of precise floating-point types].
 
-The reasons for this need are analogous to those that led to the introduction of fixed integer size like `int64_t`.
+The reasons for this need are analogous to those that led to the introduction of specific integer size like `int64_t`.
+
+(Although Section 22.3 in the book "The C++ Standard Library Extensions", P. Becker, Addison Wesley 2007, ISBN 0-321-41299-0, the section is called "Fixed-Size Integer Types", used of the descriptor ['fixed] has lead to some confusion. So the descriptor ['specific] is here used to match the wording of C99 in the section on `int_64_t ...` in `stdint.h`.)
 
 Recent specification of fixed-size integer types
 in C99, C11 and C++11 and [@http://open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3376.pdf C++ draft specification]
 has drastically improved integer algorithm portability and range.
 
 Similar specification of fixed-size floating-point types could potentially improve the C++ language
-significantly, especially in the scientific and engineering communities.
+significantly, especially in the scientific and engineering communities where other languages have found benefit from types that conform exactly to the __IEEE_floating_point.
 
-One example of how fixed-size integer types have proved invaluable is described by Robert Ramey
+One example of how specific-size integer types have proved invaluable is described by Robert Ramey
 [@http://lists.boost.org/Archives/boost/2002/11/40432.php
 Usefulness of fixed integer sizes in portability (for Boost serialization library).]
 
@@ -137,7 +156,7 @@
 
 At present, the only way to provide constant values is to use a string to extended-precision type conversion.
 
-This `from_string` method is used for __Boost_Math, __Boost_multiprecision and __libquadmath, for example.
+This `from_string` method is used for __Boost_Math, __Boost_Multiprecision and __libquadmath, for example.
 
 It would also be useful to have a method of interrogating the size of types, similar to that provided by
 [@http://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html GCC 3.7.2 Common Predefined Macros], for example,
@@ -148,6 +167,10 @@
 precision such as 24, 54, 113 or more binary significand digits,
 (and possibly even extending beyond these to potential multiprecision types).
 
+These are defined in __IEEE754.
+
+There are detailed descriptions at __IEEE_floating_point, with more detailed descrptions of each type at __IEEE_Half, __IEEE_Single, __IEEE_Double, __IEEE_Quad, and __IEEE_Extended and these correspond to the proposed types below `float16_t` ....
+
 [endsect] [/section:suffixes How to specify extended precision constants - Q?]
 
 [section:precision Specifying Precision]
@@ -157,13 +180,13 @@
 * `float24_t, float53_t, float113_t, ...`
 * `float32_t, float64_t, float128_t, ...`
 
-The first set above is intuitively coined from IEE754:2008.
+The first set above is intuitively coined from [@http://dx.doi.org/10.1109/IEEESTD.2008.4610935 IEE754:2008].
 It is also consistent with the gist of `std::uint32_t`, et al
 in so far as the number of binary digits of ['significand] precision
 is contained within the name of the data type.
 
-On the other hand, the second set using the size of the ['whole type] may seem more intuitive to users.
-The exact layout and number of significand and exponent bits can be confirmed by checking
+On the other hand, the second set using the size of the ['whole type] may probably seem more intuitive to users.
+The exact layout and number of significand and exponent bits can be confirmed as IEEE754 by checking
 `std::numeric_limits<type>::is_iec559 == true`.
 
 With the availability of Boost.Multprecision, C++ programmers can now easily switch to using floating-point types that give far more decimal digits of precision (hundreds) than the built-in types `float`, `double` and `long double`.
@@ -176,7 +199,6 @@
 
 However the [@http://gcc.gnu.org/wiki/x87note Intel X8087 chipset] does do calculations using internal 80-bit registers, increasing the significand from 53 to 63 bits, and gaining about 3 decimal digits precision from 18 and 21.
 
-
 Some hardware, for example [@http://en.wikipedia.org/wiki/SPARC Sparc], provides a 128-bit quadruple precision floating-point chip.
 
 As of gcc 4.3, a quadruple precision is also supported on x86, but as the nonstandard type `__float128` rather than `long double`.
@@ -192,19 +214,25 @@
 as described in
 [@http://stackoverflow.com/questions/13525774/clang-and-float128-bug-error Clang float128].
 
-If we wish to ensure that we use all 80 bits to calculate
+If we wish to ensure that we use all 80 bits available from Intel 8087 chips to calculate
 [@http://en.wikipedia.org/wiki/Extended_precision Extended precision]
 we would use a `typedef float80_t`.
 
 If the compiler could not generate code this type directly, then it would substitute software emulation, perhaps using a Boost.Multiprecision type `cpp_dec_float_21`.
 
-Similarly if a quadrupole precision of 16-byte 128-bit
-[@http://en.wikipedia.org/wiki/Quadruple-precision_floating-point_format format] is desired,
-the specification of `float128_t` will either direct the compiler to generate code using the hardware, or it will do this using software emulation. This might be generated by the compiler for GCC or delegated to a `cpp_bin_float_128` type (under development for __Boost_multiprecision).
+Similarly if a quadrupole precision of 16-byte 128-bit __IEEE_Quad is desired,
+the specification of `float128_t` will either direct the compiler to generate code using the hardware, or it will do this using software emulation. This might be generated by the compiler for GCC or delegated to a `cpp_bin_float_128` type (under development for __Boost_Multiprecision).
 
-[@http://gcc.gnu.org/onlinedocs/gcc/Floating-Types.html GNU C supports additional floating types, `__float80` and `__float128` to support 80-bit (XFmode) and 128-bit (TFmode) floating types.]
+[h4 Existing extended precision types]
 
-[section:integerfixedtypes Existing Fixed precision integer types]
+# [@http://gcc.gnu.org/onlinedocs/gcc/Floating-Types.html GNU C supports additional floating types, `__float80` and `__float128` to support 80-bit (XFmode) and 128-bit (TFmode) floating types.]
+
+# __Quad by Intel Intel64 mode on Linux (V12.1) provides 128 bit `long double` 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.
+# [@http://software.intel.com/en-us/forums/topic/358476 Intel FORTRAN REAL*16] 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.
+
+# The 360/85 and follow-on System/370 added support for a 128-bit "extended" __IBM_hexadecimal. These formats are still supported in the current design, where they are now called the "hexadecimal floating point" (HFP) formats.
+
+[section:integerfixedtypes Existing Specific precision integer types]
 18.4 Integer types [cstdint]
 
 18.4.1 Header <cstdint> synopsis [cstdint.syn]
@@ -223,26 +251,43 @@
 
 Add the following text to <cstdint>
 
-[note It is not obvious where these typedef should reside. The obvious place is `<cstdint>` but `int` implies integer types. (or <cstdfloat>?)
+[note It is not obvious where these `typedef`s should reside. The obvious place is `<cstdint>` but `int` implies integer types. (or a new <cstdfloat>?)
 ]
 
 18.4? Arithmetic types [cstdfloat] (or cstdarith]
 18.4.2? Header <cstdfloat> synopsis [cstdfloat.syn]
 
   namespace std {
- typedef signed integer type float_32_t; // optional
- typedef signed integer type float_64_t; // optional
- typedef signed integer type float_80_t; // optional
- typedef signed integer type float_128_t; // optional
- typedef signed integer type float_256_t; // optional
+ typedef signed floating-point type float_16_t; // optional.
+ typedef signed floating-point type float_32_t; // optional.
+ typedef signed floating-point type float_64_t; // optional.
+ typedef signed floating-point type float_80_t; // optional.
+ typedef signed floating-point type float_128_t; // optional.
+ typedef signed floating-point type float_256_t; // optional.
+ typedef signed floating-point type floatmax_t; // optional.
+
+ typedef signed floating-point type float_least16_t; // optional.
+ typedef signed floating-point type float_least32_t; // optional.
+ typedef signed floating-point type float_least64_t; // optional.
+ typedef signed floating-point type float_least80_t; // optional.
+ typedef signed floating-point type float_least128_t; // optional.
+ typedef signed floating-point type float_least256_t; // optional.
+
+ typedef signed floating-point type float_fast16_t; // optional.
+ typedef signed floating-point type float_fast32_t; // optional.
+ typedef signed floating-point type float_fast64_t; // optional.
+ typedef signed floating-point type float_fast80_t; // optional.
+ typedef signed floating-point type float_fast128_t; // optional.
+ typedef signed floating-point type float_fast256_t; // optional.
   } // namespace std
 
-[note Others might also be defined here?]
-
 It is not proposed to make any change to `std::numeric_limits`.
 
-It is obviously highly desirable that `std::numeric_limits` is specialized for all floating or fixed-point types.
-And experience with __Boost_Math and __Boost_multiprecision is that the normal set of trig and others useful functions is also essential to make the type useful in real-life.
+It is obviously highly desirable that `std::numeric_limits` is specialized for all floating-point types.
+And experience with __Boost_Math and __Boost_Multiprecision is that the normal set of trig and others useful functions is also essential to make the type useful in real-life.
+
+
+
 
 Programs can then use this to determine if a floating-point type is IEEE 754 using `std::numeric_limits<>::is_iec559`.
 
@@ -269,7 +314,6 @@
 
 [@http://dx.doi.org/10.1109/IEEESTD.2008.4610935 IEEE Standard for Floating-point Arithmetic, IEEE Std 754-2008]
 
-
 [@http://www.cesura17.net/~will/Professional/Research/Papers/retrospective.pdf
 How to Read Floating Point Numbers Accurately, William D Clinger]
 
@@ -300,6 +344,7 @@
 [/ precision.qbk
   Copyright 2013 Paul A. Bristow
   Copyright 2013 Christopher Kormanyos.
+ Copyright 2013 John Maddock.
   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).


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk