Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r83536 - in sandbox/precision/libs/precision/doc: . html html/precision html/precision/precision
From: pbristow_at_[hidden]
Date: 2013-03-24 05:22:33


Author: pbristow
Date: 2013-03-24 05:22:31 EDT (Sun, 24 Mar 2013)
New Revision: 83536
URL: http://svn.boost.org/trac/boost/changeset/83536

Log:
Updated html and pdf from Chris's qbk - no changes to qbk
Binary files modified:
   sandbox/precision/libs/precision/doc/precision.pdf
Text files modified:
   sandbox/precision/libs/precision/doc/html/index.html | 7 +-
   sandbox/precision/libs/precision/doc/html/precision/abstract.html | 44 ++++++++++----
   sandbox/precision/libs/precision/doc/html/precision/background.html | 46 +++++++++------
   sandbox/precision/libs/precision/doc/html/precision/introduction.html | 36 ++++++-----
   sandbox/precision/libs/precision/doc/html/precision/precision.html | 21 ++++---
   sandbox/precision/libs/precision/doc/html/precision/precision/integerfixedtypes.html | 2
   sandbox/precision/libs/precision/doc/html/precision/precision/newfloattypes.html | 42 ++++++++-----
   sandbox/precision/libs/precision/doc/html/precision/references.html | 2
   sandbox/precision/libs/precision/doc/html/precision/suffixes.html | 120 +++++++++++++++++++++------------------
   sandbox/precision/libs/precision/doc/html/precision/version_id.html | 2
   10 files changed, 188 insertions(+), 134 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-24 05:22:31 EDT (Sun, 24 Mar 2013)
@@ -50,6 +50,7 @@
 <dt><span class="section">Abstract</span></dt>
 <dt><span class="section">Background</span></dt>
 <dt><span class="section">Introduction</span></dt>
+<dt><span class="section">The proposed types and potential extensions</span></dt>
 <dt><span class="section"><a href="precision/suffixes.html">How to specify constants with quad
     and half precision?</a></span></dt>
 <dt><span class="section">Specifying Precision</span></dt>
@@ -59,8 +60,8 @@
 <dt><span class="section">Proposed new section</span></dt>
 </dl></dd>
 <dt><span class="section">Interaction with complex</span></dt>
-<dt><span class="section"><a href="precision/microfpu.html">Improvemed safety for microcontrollers
- with an FPU</a></span></dt>
+<dt><span class="section"><a href="precision/microfpu.html">Improved efficiency and robustness
+ for microcontrollers</a></span></dt>
 <dt><span class="section">References</span></dt>
 <dt><span class="section">Version Info</span></dt>
 </dl>
@@ -88,7 +89,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 23, 2013 at 12:20:46 GMT</small></p></td>
+<td align="left"><p><small>Last revised: March 24, 2013 at 09:21:29 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-24 05:22:31 EDT (Sun, 24 Mar 2013)
@@ -27,32 +27,52 @@
 <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 specified widths 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 to the C++ standard several optional typedefs for floating-point
+ types with specified widths. In particular, the optional types include <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 fast and least types. The optional floating-point types
+ 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> described in
+ <a href="http://en.wikipedia.org/wiki/IEEE_floating_point" target="_top">IEEE_ floating-point
+ format</a>.
     </p>
 <p>
- These will be defined in the global and <code class="computeroutput"><span class="identifier">std</span></code>
- namespaces.
+ The optional floating-point types with specified widths are to be contained
+ in a new standard library header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">cstdfloat</span><span class="special">&gt;</span></code>.
+ Any of the optional floating-point types with specified widths included in
+ the implementation must have full support for the functions in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">cmath</span><span class="special">&gt;</span></code> and seamlessly interoperate with <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">limits</span><span class="special">&gt;</span></code> and <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">complex</span><span class="special">&gt;</span></code>.
+ The proposed new floating-point types with specified widths will be defined
+ in the global and <code class="computeroutput"><span class="identifier">std</span></code> namespaces.
     </p>
 <p>
- And also to provide additional suffix(es) to specify extended precision constants
- to suit precisions lower than that of <code class="computeroutput"><span class="keyword">float</span></code>
- higher than that of <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>.
+ It is also proposed to provide additional suffix(es) to specify constants to
+ suit precision lower than that of <code class="computeroutput"><span class="keyword">float</span></code>
+ and precision higher than that of <code class="computeroutput"><span class="keyword">long</span>
+ <span class="keyword">double</span></code>.
     </p>
 <p>
- The objectives are to:
+ Floating-point types with specified widths are expected to significantly improve
+ clarity of code and portability of floating-point calculations. Analogous improvements
+ for integer calculations were recently achieved via standardization of integer
+ types having specified width such as <code class="computeroutput"><span class="identifier">int8_t</span></code>,
+ <code class="computeroutput"><span class="identifier">int16_t</span></code>, <code class="computeroutput"><span class="identifier">int32_t</span></code>,
+ and <code class="computeroutput"><span class="identifier">int64_t</span></code>.
+ </p>
+<p>
+ The main objectives of this proposal are to:
     </p>
 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem">
- Make it easier to use higher-precision.
+ Extend the range of floating-point precision.
         </li>
 <li class="listitem">
           Reduce errors in precision.
         </li>
 <li class="listitem">
+ Improve clarity of coding.
+ </li>
+<li class="listitem">
           Improve portability, reliability and safety.
         </li>
 </ul></div>

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-24 05:22:31 EDT (Sun, 24 Mar 2013)
@@ -27,9 +27,12 @@
 <a name="precision.background"></a><a class="link" href="background.html" title="Background">Background</a>
 </h2></div></div></div>
 <p>
- C++11 supports floating-point calculations with its 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>
- as well as imlementations of numerous elementary and transcendental functions.
+ Support for mathematical facilities and specialized number types in C++ is
+ progressing rapidly. Currently, C++11 supports floating-point calculations
+ with its 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> as well as imlementations of
+ numerous elementary and transcendental functions.
     </p>
 <p>
       A variety of higher transcendental functions of pure and applied mathematics
@@ -48,22 +51,26 @@
       above and has become quite widely used.
     </p>
 <p>
- With the acceptance and release of Boost.Multiprecision
- that provides much higher precision than built-in <code class="computeroutput"><span class="keyword">long</span>
- <span class="keyword">double</span></code> with cpp_dec_float
- employing a variety of backends including the well-established <a href="http://gmplib.org/" target="_top">GNU
+ There is also progress in C++ in the area of multiprecision, including support
+ of multiprecision floating-point numbers. In particular, the acceptance and
+ release of Boost.Multiprecision
+ provides much higher precision than built-in <code class="computeroutput"><span class="keyword">long</span>
+ <span class="keyword">double</span></code> with its cpp_dec_float
+ data type. Boost.Multiprecision
+ has a flexible front-end that employs a variety of backends to implement multiprecision
+ floating-point types including the well-established <a href="http://gmplib.org/" target="_top">GNU
       Multiple Precision Arithmetic Library</a> and <a href="http://www.mpfr.org/" target="_top">GNU
- MPFR library</a> libraries as well as a full open-license backend developed
- from the <a href="http://calgo.acm.org/910.zip" target="_top">e_float (TOMS Algorithm
- 910)</a> library by Christopher Kormanyos and John Maddock.
+ MPFR library</a> libraries as well as a full open-license backend that
+ originates from the <a href="http://calgo.acm.org/910.zip" target="_top">e_float (TOMS
+ Algorithm 910)</a> library by Christopher Kormanyos and John Maddock.
     </p>
 <p>
       Since Boost.Multiprecision
       and Boost.Math
- work seamlessly, allowing a <code class="computeroutput"><span class="identifier">float_type</span>
- <span class="keyword">typedef</span></code> 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.
+ work seamlessly, a <code class="computeroutput"><span class="identifier">float_type</span> <span class="keyword">typedef</span></code> can be used to switch from a built-in
+ type to hundreds of decimal digits. This allows all the special functions and
+ distributions in Boost.Math
+ to be used at any chosen precision.
     </p>
 <p>
       Other users and domains are finding the need and utility of decimal
@@ -72,14 +79,15 @@
     </p>
 <p>
       Of course, 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.
+ templates carries a small price at compile-time, and potentially a much bigger
+ price at runtime. Nonetheless, the new numerical types have wide ranges of
+ application required in numerous programming domains.
     </p>
 <p>
       All these development have made C++ much more attractive to the scientific
- and engeering community, especially those needing higher (or lower) precision
- for some (if not all) of the calculations, previously the domain covered by
- computer algebra systems for which the precision can be arbitrary.
+ and engeering community, especially those needing mathematical functions and
+ higher (or lower) precision for some of their calculations. Previously these
+ domains were predominantly covered by computer algebra systems.
     </p>
 <div class="footnotes">
 <br><hr style="width:100; align:left;">

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-24 05:22:31 EDT (Sun, 24 Mar 2013)
@@ -7,7 +7,7 @@
 <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 constants with quad and half precision?">
+<link rel="next" href="thetypes.html" title="The proposed types and potential extensions">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -20,7 +20,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="background.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>
+<a accesskey="p" href="background.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="thetypes.html"><img src="../images/next.png" alt="Next"></a>
 </div>
 <div class="section precision_introduction">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -37,38 +37,40 @@
 <p>
       It is, however, emphasized that floating-point adherence to <a href="http://en.wikipedia.org/wiki/IEEE_floating_point" target="_top">IEEE_
       floating-point format</a> is not mandated by the current C++ language standard.
- Nor does the standard enforce specific widths or precisions of the built-in
- types <code class="computeroutput"><span class="keyword">float</span></code>, <code class="computeroutput"><span class="keyword">double</span></code>,
+ Nor does the standard specify the widths or precisions of its 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>.
- This can lead to portability problems and reduce reliability and safety.
+ This can lead to portability problems, introduce poor efficiency on cost-sensitive
+ microcontroller architectures, and reduce reliability and safety.
     </p>
 <p>
- This situation reveals a need for more standard ways to specify precision.
- In addition, it is desirable to extend the precision of existing types to lower
- and higher precisions. The extension to lower precision is expected to simplify
+ This situation reveals a need for a standard way to specify precision. It is
+ also desirable to extend the precision of existing types to both lower and
+ higher precisions. The extension to lower precision is expected to simplify
       and improve efficiency of floating-point implementations on cost-sensitive
       architectures such as small microcontrollers. The extension to higher precision
       is useful for large-scale high-performance numerical calculations and should
- ease the progression to extended precision by providing precision-steps with
- finer granularity.
+ ease the transition to multiprecision by providing built-in types with progressing
+ precision of finer granularity.
     </p>
 <p>
       All of these improvements should improve portability, reliability, and safety
       of floating-point calculations in C++ by ensuring that the actual precision
       of a floating-point type can be exactly determined both at compile-time as
       well as during the run of a calculation. Strong interest in floating-point
- types with specified widths has, for example, 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>.
+ types with specified widths has, for example, recently 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>
- Recent specification of integer types with specified widths in C99, C11, C++11,
- and <a href="http://open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3376.pdf" target="_top">C++
+ Recent specification of integer types having specified widths in C99, C11,
+ C++11, and <a href="http://open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3376.pdf" target="_top">C++
       draft specification</a> has drastically improved integer algorithm portability
       and range.
     </p>
 <p>
- One example of how specific-size integer types have proven to be essential
- is described by Robert Ramey <a href="http://lists.boost.org/Archives/boost/2002/11/40432.php" target="_top">Usefulness
+ One example of how integer types having specified widths have proven to be
+ essential 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>
 <p>
@@ -120,7 +122,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="background.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>
+<a accesskey="p" href="background.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="thetypes.html"><img src="../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

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-24 05:22:31 EDT (Sun, 24 Mar 2013)
@@ -36,13 +36,15 @@
     </p>
 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem">
- <code class="computeroutput"><span class="identifier">float24_t</span><span class="special">,</span>
+ <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">float32_t</span><span class="special">,</span>
+ <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>
@@ -50,15 +52,16 @@
 </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.
+ It is also consistent with the gist of integer types with 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 using the size of the <span class="emphasis"><em>whole type</em></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>.
+ 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. 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>
       With the availability of Boost.Multprecision, C++ programmers can now easily

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-24 05:22:31 EDT (Sun, 24 Mar 2013)
@@ -35,7 +35,7 @@
       </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">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>

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-24 05:22:31 EDT (Sun, 24 Mar 2013)
@@ -27,7 +27,8 @@
 <a name="precision.precision.newfloattypes"></a><a class="link" href="newfloattypes.html" title="Proposed new section">Proposed new section</a>
 </h3></div></div></div>
 <p>
- Add the following text to &lt;cstdint&gt;
+ Add a new header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">cstdfloat</span><span class="special">&gt;</span></code> to the standard library. Add the following
+ text to &lt;cstdint&gt;
       </p>
 <div class="note"><table border="0" summary="Note">
 <tr>
@@ -38,20 +39,20 @@
           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;?)
+ Here, we prefer the new header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">cstdfloat</span><span class="special">&gt;</span></code>.
         </p></td></tr>
 </table></div>
 <p>
- 18.4? Arithmetic types [cstdfloat] (or cstdarith] 18.4.2? Header &lt;cstdfloat&gt;
+ 18.4? Floating-Point Types Having Specified Width 18.4.2? Header &lt;cstdfloat&gt;
         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">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">float16_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">float32_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">float64_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">float80_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">float128_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">float256_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>
@@ -73,15 +74,24 @@
         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-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, nonethelsee, mandatory 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-point types. Thus their must be explicit
+ template specializations for all of the optional floating-point types with
+ specified precision that are included in the implementation. This will ensure
+ that programs can use the established <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special">&lt;&gt;::</span><span class="identifier">is_iec559</span></code>
+ member to determine if a floating-point type conforms with <a href="http://en.wikipedia.org/wiki/IEEE_floating_point" target="_top">IEEE_
+ floating-point format</a>.
       </p>
 <p>
- Programs can then use this to determine if a floating-point type is IEEE
- 754 using <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special">&lt;&gt;::</span><span class="identifier">is_iec559</span></code>.
+ Experience with Boost.Math
+ and Boost.Multiprecision
+ has shown that the normal set of elementary and transcendental functions
+ (and possibly additional higher transcendental functions) is also essential
+ to make the type useful in real-life computational regimes. Therefore, the
+ implementation must provide support for the mathematical functions in the
+ <code class="computeroutput"><span class="identifier">std</span></code> namespace (TBD: Chris
+ list functions) for each of the floating-point types with specified precision
+ included in the implementation.
       </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>

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-24 05:22:31 EDT (Sun, 24 Mar 2013)
@@ -6,7 +6,7 @@
 <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="microfpu.html" title="Improvemed safety for microcontrollers with an FPU">
+<link rel="prev" href="microfpu.html" title="Improved efficiency and robustness for microcontrollers">
 <link rel="next" href="version_id.html" title="Version Info">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">

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-24 05:22:31 EDT (Sun, 24 Mar 2013)
@@ -6,7 +6,7 @@
 <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="prev" href="thetypes.html" title="The proposed types and potential extensions">
 <link rel="next" href="precision.html" title="Specifying Precision">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,7 +20,7 @@
 </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="precision.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="thetypes.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="precision.html"><img src="../images/next.png" alt="Next"></a>
 </div>
 <div class="section precision_suffixes">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -28,61 +28,71 @@
     and half precision?</a>
 </h2></div></div></div>
 <p>
+ The standard specifies that the type of a floating-point literal is double
+ unless explicitly specified by a suffix. The standard continues by specifying
+ that the suffixes <code class="computeroutput"><span class="identifier">f</span></code> and <code class="computeroutput"><span class="identifier">F</span></code> specify <code class="computeroutput"><span class="keyword">float</span></code>,
+ and the suffixes <code class="computeroutput"><span class="identifier">l</span></code> and <code class="computeroutput"><span class="identifier">L</span></code> specify <code class="computeroutput"><span class="keyword">long</span>
+ <span class="keyword">double</span></code>.
+ </p>
+<p>
       Recent discussion on extended precision floating-point types in C++ has also
       raised the issue of how to specify constant values with a precision greater
       than <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>,
- now signified by the suffix <code class="computeroutput"><span class="identifier">L</span></code>.
- </p>
-<p>
- One obvious way is to add <code class="computeroutput"><span class="identifier">Q</span></code>
- or <code class="computeroutput"><span class="identifier">q</span></code> suffixes to signify that
- a constant has at least 128-bits (about 40 decimal digits) of precision.
- </p>
-<p>
- There may also be a need for 256-bit (about 80 decimal digits) precision, and
- perhaps 512-bits (about 155 decimal digits) precision.
- </p>
-<p>
- At present, the only way to provide constant values is to use a string to extended-precision
- type conversion.
- </p>
-<p>
- This <code class="computeroutput"><span class="identifier">from_string</span></code> method is
- used for Boost.Math,
- Boost.Multiprecision
- and GCC libquadmath,
- for example.
- </p>
-<p>
- It would also be useful to have a method of interrogating 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 is not defined for <code class="computeroutput"><span class="identifier">__float128</span></code>
- nor <code class="computeroutput"><span class="identifier">__float80</span></code>)
- </p>
-<p>
- We refer to floating-point types with fixed precision such as 24, 53, 113 or
- 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>
-<p>
- TBD by Chris: Suffix for half-precision.
+ now signified by the suffix <code class="computeroutput"><span class="identifier">L</span></code>
+ or <code class="computeroutput"><span class="identifier">l</span></code>. One possible way is to
+ add <code class="computeroutput"><span class="identifier">Q</span></code> or <code class="computeroutput"><span class="identifier">q</span></code>
+ suffixes to signify that floating-point literal has quadruple precision.
+ </p>
+<p>
+ Code using the <code class="computeroutput"><span class="identifier">Q</span></code> suffix scheme
+ is shown in the sample below.
+ </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">cstdfloat</span><span class="special">&gt;</span>
+
+<span class="identifier">constexpr</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">float128_t</span> <span class="identifier">pi</span> <span class="special">=</span> <span class="number">3.1415926535897932384626433832795028841972</span><span class="identifier">Q</span><span class="special">;</span>
+</pre>
+<p>
+ For half-precision floating-point literals, the suffix <code class="computeroutput"><span class="identifier">H</span></code>
+ or <code class="computeroutput"><span class="identifier">h</span></code> could be used. One potential
+ suffix for octuple-precision floating-point literals is <code class="computeroutput"><span class="identifier">O</span></code>
+ or <code class="computeroutput"><span class="identifier">o</span></code>.
+ </p>
+<p>
+ For example,
+ </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">cstdfloat</span><span class="special">&gt;</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_gamma</span> <span class="special">=</span> <span class="number">0.577216</span><span class="identifier">H</span><span class="special">;</span>
+</pre>
+<p>
+ Higher precisions also require construction from floating-point literals. As
+ the list of available suffixes dwindles, however, available suffixes might
+ run out and the myriad of suffixes may become confusing. Floating-point literals
+ for precisions higher than quadruple precision, then, might be better served
+ with construction from string literals.
+ </p>
+<p>
+ An alternative suffix scheme could use hybrid suffixes composed of, say, the
+ letter <code class="computeroutput"><span class="identifier">F</span></code> or <code class="computeroutput"><span class="identifier">f</span></code>
+ which stands for floating-point, to which the specified width of the type is
+ appended, for example <code class="computeroutput"><span class="identifier">F16</span></code>,
+ <code class="computeroutput"><span class="identifier">F32</span></code>, <code class="computeroutput"><span class="identifier">F64</span></code>,
+ <code class="computeroutput"><span class="identifier">F128</span></code>, etc. Code using the
+ <code class="computeroutput"><span class="identifier">F128</span></code> suffix scheme is shown
+ in the sample below.
+ </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">cstdfloat</span><span class="special">&gt;</span>
+
+<span class="identifier">constexpr</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">float128_t</span> <span class="identifier">pi</span> <span class="special">=</span> <span class="number">3.1415926535897932384626433832795028841972F</span><span class="number">128</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_gamma</span> <span class="special">=</span> <span class="number">0.577216F</span><span class="number">16</span><span class="special">;</span>
+</pre>
+<p>
+ This suffix scheme is unequivocal and it can be easily extended to unlimited
+ precision. On the other hand, it may be difficult for programmers to separate
+ the character part of the suffix from its numerical part when analyzing source
+ code. For example, it is particularly difficult to resolve the suffix in <code class="computeroutput"><span class="identifier">euler_gamma</span></code> above, since the <code class="computeroutput"><span class="number">16F</span><span class="number">16</span></code> obscures
+ the <code class="computeroutput"><span class="identifier">F</span></code>.
     </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
@@ -95,7 +105,7 @@
 </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="precision.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="thetypes.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="precision.html"><img src="../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

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-24 05:22:31 EDT (Sun, 24 Mar 2013)
@@ -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 12:20:46 PM on 2013-Mar-23.
+ Last edit to Quickbook file precision.qbk was at 09:21:29 AM on 2013-Mar-24.
     </p>
 <div class="tip"><table border="0" summary="Tip">
 <tr>

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


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