Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r85453 - in sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc: . html html/boost_multiprecision html/boost_multiprecision/tut html/boost_multiprecision/tut/limits html/boost_multiprecision/tut/limits/implementation html/boost_multiprecision/tut/limits/implementation/is_bounded
From: pbristow_at_[hidden]
Date: 2013-08-25 04:32:14


Author: pbristow
Date: 2013-08-25 04:32:14 EDT (Sun, 25 Aug 2013)
New Revision: 85453
URL: http://svn.boost.org/trac/boost/changeset/85453

Log:
Another try at the numeric_limits tables (some work on stuff about numeric_limits but more to do)

Text files modified:
   sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut.html | 39 ++
   sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits.html | 49 ++
   sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/implementation.html | 51 ++
   sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/implementation/infinity.html | 12
   sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/implementation/is_bounded.html | 14
   sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/implementation/is_bounded/digits10.html | 49 ++
   sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/implementation/is_bounded/radix.html | 6
   sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/implementation/is_bounded/round_style.html | 16
   sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/implementation/is_specialized.html | 6
   sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/limits32.html | 567 +++++++++++++++------------------------
   sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/version_32.html | 13
   sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/index.html | 16
   sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/multiprecision.qbk | 318 ++++++++++++++++++++-
   sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/numeric_limits_32_tables.qbk | 73 ++--
   14 files changed, 739 insertions(+), 490 deletions(-)

Modified: sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut.html
==============================================================================
--- sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut.html Sat Aug 24 20:50:48 2013 (r85452)
+++ sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut.html 2013-08-25 04:32:14 EDT (Sun, 25 Aug 2013) (r85453)
@@ -77,19 +77,40 @@
 <dt><span class="section">Generic Integer Operations</span></dt>
 <dt><span class="section">Numeric Limits</span></dt>
 <dd><dl>
-<dt><span class="section"><a href="tut/limits/implementation.html">Implementation
- Notes</a></span></dt>
+<dt><span class="section"><a href="tut/limits/implementation.html">Notes
+ on Implementation of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span></code></a></span></dt>
 <dd><dl>
-<dt><span class="section">is_specialized</span></dt>
-<dt><span class="section">infinity</span></dt>
-<dt><span class="section">is_bounded</span></dt>
+<dt><span class="section"><a href="tut/limits/implementation/constants.html">std::numeric_limits&lt;&gt;
+ constants</a></span></dt>
 <dd><dl>
-<dt><span class="section">radix</span></dt>
-<dt><span class="section">digits10</span></dt>
-<dt><span class="section">route_style</span></dt>
+<dt><span class="section">is_specialized</span></dt>
+<dt><span class="section">infinity</span></dt>
+<dt><span class="section">is_signed</span></dt>
+<dt><span class="section">is_exact</span></dt>
+<dt><span class="section">is_bound</span></dt>
+<dt><span class="section">is_modulo</span></dt>
+<dt><span class="section">is_bounded</span></dt>
+<dt><span class="section">radix</span></dt>
+<dt><span class="section">digits</span></dt>
+<dt><span class="section">digits10</span></dt>
+<dt><span class="section">max_digits10</span></dt>
+<dt><span class="section">route_style</span></dt>
+<dt><span class="section">has_denorm_loss</span></dt>
+<dt><span class="section">denorm_style</span></dt>
+</dl></dd>
+<dt><span class="section"><a href="tut/limits/implementation/constants0.html">std::numeric_limits&lt;&gt;
+ functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="tut/limits/implementation/constants0/max.html">max
+ function</a></span></dt>
+<dt><span class="section"><a href="tut/limits/implementation/constants0/lowest.html">lowest
+ function</a></span></dt>
+<dt><span class="section"><a href="tut/limits/implementation/constants0/min.html">min
+ function</a></span></dt>
 </dl></dd>
 </dl></dd>
-<dt><span class="section"></span></dt>
+<dt><span class="section"><a href="tut/limits/version_32.html">32-bit
+ version information used for tables below.</a></span></dt>
 <dt><span class="section"><a href="tut/limits/limits32.html">Numeric limits
         for 32-bit platform</a></span></dt>
 </dl></dd>

Modified: sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits.html
==============================================================================
--- sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits.html Sat Aug 24 20:50:48 2013 (r85452)
+++ sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits.html 2013-08-25 04:32:14 EDT (Sun, 25 Aug 2013) (r85453)
@@ -7,7 +7,7 @@
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.Multiprecision">
 <link rel="up" href="../tut.html" title="Tutorial">
 <link rel="prev" href="gen_int.html" title="Generic Integer Operations">
-<link rel="next" href="limits/implementation.html" title="Implementation Notes">
+<link rel="next" href="limits/implementation.html" title="Notes on Implementation of std::numeric_limits">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <div class="spirit-nav">
@@ -18,25 +18,47 @@
 <a name="boost_multiprecision.tut.limits"></a><a class="link" href="limits.html" title="Numeric Limits">Numeric Limits</a>
 </h3></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section"><a href="limits/implementation.html">Implementation
- Notes</a></span></dt>
+<dt><span class="section"><a href="limits/implementation.html">Notes
+ on Implementation of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span></code></a></span></dt>
 <dd><dl>
-<dt><span class="section">is_specialized</span></dt>
-<dt><span class="section">infinity</span></dt>
-<dt><span class="section">is_bounded</span></dt>
+<dt><span class="section"><a href="limits/implementation/constants.html">std::numeric_limits&lt;&gt;
+ constants</a></span></dt>
 <dd><dl>
-<dt><span class="section">radix</span></dt>
-<dt><span class="section">digits10</span></dt>
-<dt><span class="section">route_style</span></dt>
+<dt><span class="section">is_specialized</span></dt>
+<dt><span class="section">infinity</span></dt>
+<dt><span class="section">is_signed</span></dt>
+<dt><span class="section">is_exact</span></dt>
+<dt><span class="section">is_bound</span></dt>
+<dt><span class="section">is_modulo</span></dt>
+<dt><span class="section">is_bounded</span></dt>
+<dt><span class="section">radix</span></dt>
+<dt><span class="section">digits</span></dt>
+<dt><span class="section">digits10</span></dt>
+<dt><span class="section">max_digits10</span></dt>
+<dt><span class="section">route_style</span></dt>
+<dt><span class="section">has_denorm_loss</span></dt>
+<dt><span class="section">denorm_style</span></dt>
+</dl></dd>
+<dt><span class="section"><a href="limits/implementation/constants0.html">std::numeric_limits&lt;&gt;
+ functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="limits/implementation/constants0/max.html">max
+ function</a></span></dt>
+<dt><span class="section"><a href="limits/implementation/constants0/lowest.html">lowest
+ function</a></span></dt>
+<dt><span class="section"><a href="limits/implementation/constants0/min.html">min
+ function</a></span></dt>
 </dl></dd>
 </dl></dd>
-<dt><span class="section"></span></dt>
+<dt><span class="section"><a href="limits/version_32.html">32-bit
+ version information used for tables below.</a></span></dt>
 <dt><span class="section"><a href="limits/limits32.html">Numeric limits
         for 32-bit platform</a></span></dt>
 </dl></div>
 <p>
         Boost.Multiprecision tries hard to implement <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span></code>
- for all types as far as possible and meaningful.
+ for all types as far as possible and meaningful because experience with Boost.Math
+ has shown that this aids portability.
       </p>
 <p>
         The <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3690.pdf" target="_top">C++
@@ -47,7 +69,10 @@
         This in turn refers to the C standard <a href="http://www.open-std.org/jtc1/sc22/wg11/docs/n507.pdf" target="_top">SC22/WG11
         N507 DRAFT INTERNATIONAL ISO/IEC STANDARD WD 10967-1</a> Information
         technology Language independent arithmetic Part 1: Integer and Floating point
- arithmetic. that in turn refers to
+ arithmetic.
+ </p>
+<p>
+ That C Standard in turn refers to
       </p>
 <p>
         <a href="http://754r.ucbtest.org/standards/754.pdf" target="_top">IEEE754 IEEE Standard

Modified: sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/implementation.html
==============================================================================
--- sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/implementation.html Sat Aug 24 20:50:48 2013 (r85452)
+++ sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/implementation.html 2013-08-25 04:32:14 EDT (Sun, 25 Aug 2013) (r85453)
@@ -1,37 +1,62 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>Implementation Notes</title>
+<title>Notes on Implementation of std::numeric_limits</title>
 <link rel="stylesheet" href="../../../boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
 <link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Boost.Multiprecision">
 <link rel="up" href="../limits.html" title="Numeric Limits">
 <link rel="prev" href="../limits.html" title="Numeric Limits">
-<link rel="next" href="implementation/is_specialized.html" title="is_specialized">
+<link rel="next" href="implementation/constants.html" title="std::numeric_limits&lt;&gt; constants">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <div class="spirit-nav">
-<a accesskey="p" href="../limits.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../limits.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="implementation/is_specialized.html"><img src="../../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="../limits.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../limits.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="implementation/constants.html"><img src="../../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="boost_multiprecision.tut.limits.implementation"></a><a class="link" href="implementation.html" title="Implementation Notes">Implementation
- Notes</a>
+<a name="boost_multiprecision.tut.limits.implementation"></a><a class="link" href="implementation.html" title="Notes on Implementation of std::numeric_limits">Notes
+ on Implementation of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span></code></a>
 </h4></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section">is_specialized</span></dt>
-<dt><span class="section">infinity</span></dt>
-<dt><span class="section">is_bounded</span></dt>
+<dt><span class="section"><a href="implementation/constants.html">std::numeric_limits&lt;&gt;
+ constants</a></span></dt>
 <dd><dl>
-<dt><span class="section">radix</span></dt>
-<dt><span class="section">digits10</span></dt>
-<dt><span class="section">route_style</span></dt>
+<dt><span class="section">is_specialized</span></dt>
+<dt><span class="section">infinity</span></dt>
+<dt><span class="section">is_signed</span></dt>
+<dt><span class="section">is_exact</span></dt>
+<dt><span class="section">is_bound</span></dt>
+<dt><span class="section">is_modulo</span></dt>
+<dt><span class="section">is_bounded</span></dt>
+<dt><span class="section">radix</span></dt>
+<dt><span class="section">digits</span></dt>
+<dt><span class="section">digits10</span></dt>
+<dt><span class="section">max_digits10</span></dt>
+<dt><span class="section">route_style</span></dt>
+<dt><span class="section">has_denorm_loss</span></dt>
+<dt><span class="section">denorm_style</span></dt>
+</dl></dd>
+<dt><span class="section"><a href="implementation/constants0.html">std::numeric_limits&lt;&gt;
+ functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="implementation/constants0/max.html">max
+ function</a></span></dt>
+<dt><span class="section"><a href="implementation/constants0/lowest.html">lowest
+ function</a></span></dt>
+<dt><span class="section"><a href="implementation/constants0/min.html">min
+ function</a></span></dt>
 </dl></dd>
 </dl></div>
 <p>
- The chosen backend often determines how far <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span></code>
+ The chosen backend often determines how completely <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span></code>
           is available.
         </p>
+<p>
+ Compiler options, processor type, and definition of macros or assembler
+ instructions to control denormal numbers will alter the values in the tables
+ given below.
+ </p>
 <div class="warning"><table border="0" summary="Warning">
 <tr>
 <td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../../../images/warning.png"></td>
@@ -54,7 +79,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../limits.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../limits.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="implementation/is_specialized.html"><img src="../../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="../limits.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../limits.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="implementation/constants.html"><img src="../../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/implementation/infinity.html
==============================================================================
--- sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/implementation/infinity.html Sat Aug 24 20:50:48 2013 (r85452)
+++ sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/implementation/infinity.html 2013-08-25 04:32:14 EDT (Sun, 25 Aug 2013) (r85453)
@@ -7,11 +7,11 @@
 <link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Boost.Multiprecision">
 <link rel="up" href="../implementation.html" title="Implementation Notes">
 <link rel="prev" href="is_specialized.html" title="is_specialized">
-<link rel="next" href="is_bounded.html" title="is_bounded">
+<link rel="next" href="signed.html" title="is_signed">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <div class="spirit-nav">
-<a accesskey="p" href="is_specialized.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../implementation.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="is_bounded.html"><img src="../../../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="is_specialized.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../implementation.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="signed.html"><img src="../../../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h5 class="title">
@@ -19,11 +19,11 @@
 </h5></div></div></div>
 <p>
             For floating-point types, infinity is defined whereever possible, but
- clearly not for <a href="http://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic" target="_top">arbitrary
+ clearly is meaningless for <a href="http://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic" target="_top">arbitrary
             precision</a> arithmetic backends.
           </p>
 <p>
- A typical test is
+ A typical test whether infinity is implemented is
           </p>
 <pre class="programlisting"><span class="keyword">if</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">has_infinity</span><span class="special">)</span>
 <span class="special">{</span>
@@ -35,7 +35,7 @@
           </p>
 <p>
             If the backend is switched to a type that does not support infinity,
- there will be trouble.
+ without checks like this, there will be trouble.
           </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
@@ -48,7 +48,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="is_specialized.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../implementation.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="is_bounded.html"><img src="../../../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="is_specialized.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../implementation.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="signed.html"><img src="../../../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/implementation/is_bounded.html
==============================================================================
--- sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/implementation/is_bounded.html Sat Aug 24 20:50:48 2013 (r85452)
+++ sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/implementation/is_bounded.html 2013-08-25 04:32:14 EDT (Sun, 25 Aug 2013) (r85453)
@@ -6,12 +6,12 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
 <link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Boost.Multiprecision">
 <link rel="up" href="../implementation.html" title="Implementation Notes">
-<link rel="prev" href="infinity.html" title="infinity">
-<link rel="next" href="is_bounded/radix.html" title="radix">
+<link rel="prev" href="modulo.html" title="is_modulo">
+<link rel="next" href="is_bounded0.html" title="is_bounded">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <div class="spirit-nav">
-<a accesskey="p" href="infinity.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../implementation.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="is_bounded/radix.html"><img src="../../../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="modulo.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../implementation.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="is_bounded0.html"><img src="../../../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h5 class="title">
@@ -22,10 +22,10 @@
             to values that can be stored.
           </p>
 <p>
- Thisis obviously true for built-in integer and floating-point types,
+ This is obviously true for built-in integer and floating-point types,
             but will be false for <a href="http://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic" target="_top">arbitrary
- precision</a> integer and floating-point types because these expand
- until memory is exhausted.
+ precision</a> integer (for example <code class="computeroutput"><span class="identifier">cpp_int</span></code>)
+ and floating-point types because these expand until memory is exhausted.
           </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
@@ -38,7 +38,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="infinity.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../implementation.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="is_bounded/radix.html"><img src="../../../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="modulo.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../implementation.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="is_bounded0.html"><img src="../../../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/implementation/is_bounded/digits10.html
==============================================================================
--- sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/implementation/is_bounded/digits10.html Sat Aug 24 20:50:48 2013 (r85452)
+++ sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/implementation/is_bounded/digits10.html 2013-08-25 04:32:14 EDT (Sun, 25 Aug 2013) (r85453)
@@ -6,12 +6,12 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
 <link rel="home" href="../../../../../index.html" title="Chapter&#160;1.&#160;Boost.Multiprecision">
 <link rel="up" href="../is_bounded.html" title="is_bounded">
-<link rel="prev" href="radix.html" title="radix">
-<link rel="next" href="round_style.html" title="route_style">
+<link rel="prev" href="digits.html" title="digits">
+<link rel="next" href="max_digits10.html" title="max_digits10">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <div class="spirit-nav">
-<a accesskey="p" href="radix.html"><img src="../../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../is_bounded.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="round_style.html"><img src="../../../../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="digits.html"><img src="../../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../is_bounded.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="max_digits10.html"><img src="../../../../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h6 class="title">
@@ -19,26 +19,49 @@
 </h6></div></div></div>
 <p>
               Constant <code class="computeroutput"><span class="identifier">digits</span></code> returns
- "Number of digits (in decimal base) that can be represented without
- change".
             </p>
+<pre class="programlisting"><span class="identifier">Number</span> <span class="identifier">of</span> <span class="identifier">digits</span> <span class="special">(</span><span class="identifier">in</span> <span class="identifier">decimal</span> <span class="identifier">base</span><span class="special">)</span> <span class="identifier">that</span> <span class="identifier">can</span> <span class="identifier">be</span> <span class="identifier">represented</span> <span class="identifier">without</span> <span class="identifier">change</span><span class="special">.</span>
+</pre>
 <p>
               For bounded integers, it is one less than number of decimal digits
               you need to display the biggest integer. This value can be used to
               predict the layout width required for
             </p>
-<pre class="programlisting"><span class="special">&lt;&lt;</span> <span class="identifier">width</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_linits</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span> <span class="identifier">digits10</span> <span class="special">+</span><span class="number">1</span> <span class="special">+</span><span class="number">2</span><span class="special">)</span> <span class="comment">// +1 for sign, and 2 spaces.</span>
+<pre class="programlisting"><span class="special">&lt;&lt;</span> <span class="identifier">width</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_linits</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">digits10</span> <span class="special">+</span><span class="number">1</span> <span class="special">+</span><span class="number">1</span> <span class="special">+</span><span class="number">1</span><span class="special">)</span> <span class="comment">// digits10+1, and +1 for sign, and 1 space.</span>
 </pre>
 <p>
+ For example, <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">short</span></code> might be stored in 16 bits, so
+ the maximum value is 0xFFFF or
+ </p>
+<p>
               For bounded floating-point types, this is the number of decimal digits
- guaranteed to be correct.
+ <span class="bold"><strong>guaranteed</strong></span> to be correct.
+ </p>
+<p>
+ For example, <code class="computeroutput"><span class="keyword">float</span></code>
+ </p>
+<p>
+ (But for most purposes, you will more likely want <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">max_digits10</span></code>,
+ the number of decimal digits that ensure that a change of one least
+ significant bit (ULP) produces a different decimal digits string.
+ </p>
+<p>
+ For nearly all floating-point types, <code class="computeroutput"><span class="identifier">max_digits10</span></code>
+ is <code class="computeroutput"><span class="identifier">digits10</span><span class="special">+</span><span class="number">2</span></code>, but you should use <code class="computeroutput"><span class="identifier">max_digits10</span></code>
+ where possible.
             </p>
 <p>
- (But for most purposes, you will more likely want max_digits10, the
- number of decimal digits that ensure that a change of one least significant
- bit (ULP) produces a difference. The last two (or 3) digits are 'noisy',
- but ifyou want to 'round-trip' printing a value out and reading it
- back in, you must use <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">max_digits10</span></code>.
+ If <code class="computeroutput"><span class="identifier">max_digits10</span></code> is
+ not avilable, you should using the Kahan formula for floating-point
+ type T
+ </p>
+<pre class="programlisting"><span class="identifier">max_digits10</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">digits</span> <span class="special">*</span> <span class="number">3010U</span><span class="special">/</span><span class="number">10000U</span><span class="special">;</span>
+</pre>
+<p>
+ The extra two (or 3) digits are 'noisy', but if you want to 'round-trip'
+ printing a value out and reading it back in, you must use <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">max_digits10</span></code>. For at least one popular
+ compiler, you should also use <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">scientific</span></code>
+ format.
             </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
@@ -51,7 +74,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="radix.html"><img src="../../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../is_bounded.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="round_style.html"><img src="../../../../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="digits.html"><img src="../../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../is_bounded.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="max_digits10.html"><img src="../../../../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/implementation/is_bounded/radix.html
==============================================================================
--- sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/implementation/is_bounded/radix.html Sat Aug 24 20:50:48 2013 (r85452)
+++ sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/implementation/is_bounded/radix.html 2013-08-25 04:32:14 EDT (Sun, 25 Aug 2013) (r85453)
@@ -7,11 +7,11 @@
 <link rel="home" href="../../../../../index.html" title="Chapter&#160;1.&#160;Boost.Multiprecision">
 <link rel="up" href="../is_bounded.html" title="is_bounded">
 <link rel="prev" href="../is_bounded.html" title="is_bounded">
-<link rel="next" href="digits10.html" title="digits10">
+<link rel="next" href="digits.html" title="digits">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <div class="spirit-nav">
-<a accesskey="p" href="../is_bounded.html"><img src="../../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../is_bounded.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="digits10.html"><img src="../../../../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="../is_bounded.html"><img src="../../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../is_bounded.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="digits.html"><img src="../../../../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h6 class="title">
@@ -32,7 +32,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../is_bounded.html"><img src="../../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../is_bounded.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="digits10.html"><img src="../../../../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="../is_bounded.html"><img src="../../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../is_bounded.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="digits.html"><img src="../../../../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/implementation/is_bounded/round_style.html
==============================================================================
--- sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/implementation/is_bounded/round_style.html Sat Aug 24 20:50:48 2013 (r85452)
+++ sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/implementation/is_bounded/round_style.html 2013-08-25 04:32:14 EDT (Sun, 25 Aug 2013) (r85453)
@@ -6,26 +6,30 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
 <link rel="home" href="../../../../../index.html" title="Chapter&#160;1.&#160;Boost.Multiprecision">
 <link rel="up" href="../is_bounded.html" title="is_bounded">
-<link rel="prev" href="digits10.html" title="digits10">
-<link rel="next" href="../../version_32.html" title="">
+<link rel="prev" href="max_digits10.html" title="max_digits10">
+<link rel="next" href="../version_32.html" title="">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <div class="spirit-nav">
-<a accesskey="p" href="digits10.html"><img src="../../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../is_bounded.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="../../version_32.html"><img src="../../../../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="max_digits10.html"><img src="../../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../is_bounded.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="../version_32.html"><img src="../../../../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h6 class="title">
 <a name="boost_multiprecision.tut.limits.implementation.is_bounded.round_style"></a><a class="link" href="round_style.html" title="route_style">route_style</a>
 </h6></div></div></div>
 <p>
- For integer types, round_style is always towards zero.
+ For integer types, <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">round_style</span></code>
+ is always towards zero.
             </p>
 <p>
- For <code class="computeroutput"><span class="identifier">cpp_dec_float</span></code> rounds
+ <code class="computeroutput"><span class="identifier">cpp_dec_float</span></code> rounds
               in no particular direction, which is to say it doesn't round at all.
               And since there are guard digits, it's not really the same as truncation
               (round toward zero) either.
             </p>
+<p>
+ For floating-point types,
+ </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
@@ -37,7 +41,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="digits10.html"><img src="../../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../is_bounded.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="../../version_32.html"><img src="../../../../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="max_digits10.html"><img src="../../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../is_bounded.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="../version_32.html"><img src="../../../../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/implementation/is_specialized.html
==============================================================================
--- sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/implementation/is_specialized.html Sat Aug 24 20:50:48 2013 (r85452)
+++ sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/implementation/is_specialized.html 2013-08-25 04:32:14 EDT (Sun, 25 Aug 2013) (r85453)
@@ -36,9 +36,11 @@
             (UDT), such as the decimal and binary multiprecision types provided here.
           </p>
 <p>
- For example, a max() function for an <a href="http://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic" target="_top">arbitrary
+ For example, a <code class="computeroutput"><span class="identifier">max</span><span class="special">()</span></code>
+ function for an <a href="http://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic" target="_top">arbitrary
             precision</a> type is defined only by machine resources like memory
- or stack: so for functions like these a NaN is specified.
+ or stack: so for functions like these a NaN is specified. This avoids
+ an uncontrollable program crash like stack overflow.
           </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>

Modified: sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/limits32.html
==============================================================================
--- sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/limits32.html Sat Aug 24 20:50:48 2013 (r85452)
+++ sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/limits32.html 2013-08-25 04:32:14 EDT (Sun, 25 Aug 2013) (r85453)
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
 <link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Boost.Multiprecision">
 <link rel="up" href="../limits.html" title="Numeric Limits">
-<link rel="prev" href="version_32.html" title="">
+<link rel="prev" href="version_32.html" title="32-bit version information used for tables below.">
 <link rel="next" href="../../ref.html" title="Reference">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,9 +20,11 @@
 </h4></div></div></div>
 <div class="table">
 <a name="boost_multiprecision.tut.limits.limits32.integral_constants"></a><p class="title"><b>Table&#160;1.4.&#160;Integer types constants (<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">T</span><span class="special">&gt;::</span><span class="identifier">is_integer</span>
- <span class="special">==</span> <span class="keyword">true</span></code>)</b></p>
+ <span class="special">==</span> <span class="keyword">true</span></code>
+ &amp;&amp; is_exact == true)</b></p>
 <div class="table-contents"><table class="table" summary="Integer types constants (std::numeric_limits&lt;T&gt;::is_integer
- == true)">
+ == true
+ &amp;&amp; is_exact == true)">
 <colgroup>
 <col>
 <col>
@@ -32,8 +34,6 @@
 <col>
 <col>
 <col>
-<col>
-<col>
 </colgroup>
 <thead><tr>
 <th>
@@ -48,11 +48,6 @@
                 </th>
 <th>
                   <p>
- exact
- </p>
- </th>
-<th>
- <p>
                     bound
                   </p>
                 </th>
@@ -81,11 +76,6 @@
                     digits10
                   </p>
                 </th>
-<th>
- <p>
- max_digits10
- </p>
- </th>
 </tr></thead>
 <tbody>
 <tr>
@@ -101,11 +91,6 @@
                 </td>
 <td>
                   <p>
- exact
- </p>
- </td>
-<td>
- <p>
                     bound
                   </p>
                 </td>
@@ -116,7 +101,7 @@
                 </td>
 <td>
                   <p>
- to_zero
+ to zero
                   </p>
                 </td>
 <td>
@@ -134,16 +119,11 @@
                     0
                   </p>
                 </td>
-<td>
- <p>
- 0
- </p>
- </td>
 </tr>
 <tr>
 <td>
                   <p>
- short
+ char
                   </p>
                 </td>
 <td>
@@ -153,11 +133,6 @@
                 </td>
 <td>
                   <p>
- exact
- </p>
- </td>
-<td>
- <p>
                     bound
                   </p>
                 </td>
@@ -168,7 +143,7 @@
                 </td>
 <td>
                   <p>
- to_zero
+ to zero
                   </p>
                 </td>
 <td>
@@ -178,34 +153,24 @@
                 </td>
 <td>
                   <p>
- 15
- </p>
- </td>
-<td>
- <p>
- 4
+ 7
                   </p>
                 </td>
 <td>
                   <p>
- 6
+ 2
                   </p>
                 </td>
 </tr>
 <tr>
 <td>
                   <p>
- int
- </p>
- </td>
-<td>
- <p>
- signed
+ char16_t
                   </p>
                 </td>
 <td>
                   <p>
- exact
+ unsigned
                   </p>
                 </td>
 <td>
@@ -220,7 +185,7 @@
                 </td>
 <td>
                   <p>
- to_zero
+ to zero
                   </p>
                 </td>
 <td>
@@ -230,24 +195,19 @@
                 </td>
 <td>
                   <p>
- 31
- </p>
- </td>
-<td>
- <p>
- 9
+ 16
                   </p>
                 </td>
 <td>
                   <p>
- 11
+ 4
                   </p>
                 </td>
 </tr>
 <tr>
 <td>
                   <p>
- unsigned
+ char32_t
                   </p>
                 </td>
 <td>
@@ -257,11 +217,6 @@
                 </td>
 <td>
                   <p>
- exact
- </p>
- </td>
-<td>
- <p>
                     bound
                   </p>
                 </td>
@@ -272,7 +227,7 @@
                 </td>
 <td>
                   <p>
- to_zero
+ to zero
                   </p>
                 </td>
 <td>
@@ -290,41 +245,41 @@
                     9
                   </p>
                 </td>
+</tr>
+<tr>
 <td>
                   <p>
- 11
+ unsigned char
                   </p>
                 </td>
-</tr>
-<tr>
 <td>
                   <p>
- long
+ unsigned
                   </p>
                 </td>
 <td>
                   <p>
- signed
+ bound
                   </p>
                 </td>
 <td>
                   <p>
- exact
+ modulo
                   </p>
                 </td>
 <td>
                   <p>
- bound
+ to zero
                   </p>
                 </td>
 <td>
                   <p>
- modulo
+ 2
                   </p>
                 </td>
 <td>
                   <p>
- to_zero
+ 8
                   </p>
                 </td>
 <td>
@@ -332,132 +287,134 @@
                     2
                   </p>
                 </td>
+</tr>
+<tr>
 <td>
                   <p>
- 31
+ short
                   </p>
                 </td>
 <td>
                   <p>
- 9
+ signed
                   </p>
                 </td>
 <td>
                   <p>
- 11
+ bound
                   </p>
                 </td>
-</tr>
-<tr>
 <td>
                   <p>
- unsigned long
+ modulo
                   </p>
                 </td>
 <td>
                   <p>
- unsigned
+ to zero
                   </p>
                 </td>
 <td>
                   <p>
- exact
+ 2
                   </p>
                 </td>
 <td>
                   <p>
- bound
+ 15
                   </p>
                 </td>
 <td>
                   <p>
- modulo
+ 4
                   </p>
                 </td>
+</tr>
+<tr>
 <td>
                   <p>
- to_zero
+ unsigned short
                   </p>
                 </td>
 <td>
                   <p>
- 2
+ unsigned
                   </p>
                 </td>
 <td>
                   <p>
- 32
+ bound
                   </p>
                 </td>
 <td>
                   <p>
- 9
+ modulo
                   </p>
                 </td>
 <td>
                   <p>
- 11
+ to zero
                   </p>
                 </td>
-</tr>
-<tr>
 <td>
                   <p>
- long long
+ 2
                   </p>
                 </td>
 <td>
                   <p>
- signed
+ 16
                   </p>
                 </td>
 <td>
                   <p>
- exact
+ 4
                   </p>
                 </td>
+</tr>
+<tr>
 <td>
                   <p>
- bound
+ int
                   </p>
                 </td>
 <td>
                   <p>
- modulo
+ signed
                   </p>
                 </td>
 <td>
                   <p>
- to_zero
+ bound
                   </p>
                 </td>
 <td>
                   <p>
- 2
+ modulo
                   </p>
                 </td>
 <td>
                   <p>
- 63
+ to zero
                   </p>
                 </td>
 <td>
                   <p>
- 18
+ 2
                   </p>
                 </td>
 <td>
                   <p>
- 20
+ 31
                   </p>
                 </td>
-</tr>
-<tr>
 <td>
                   <p>
- unsigned long long
+ 9
                   </p>
                 </td>
+</tr>
+<tr>
 <td>
                   <p>
                     unsigned
@@ -465,7 +422,7 @@
                 </td>
 <td>
                   <p>
- exact
+ unsigned
                   </p>
                 </td>
 <td>
@@ -480,7 +437,7 @@
                 </td>
 <td>
                   <p>
- to_zero
+ to zero
                   </p>
                 </td>
 <td>
@@ -490,24 +447,19 @@
                 </td>
 <td>
                   <p>
- 64
- </p>
- </td>
-<td>
- <p>
- 19
+ 32
                   </p>
                 </td>
 <td>
                   <p>
- 21
+ 9
                   </p>
                 </td>
 </tr>
 <tr>
 <td>
                   <p>
- int32_t
+ long
                   </p>
                 </td>
 <td>
@@ -517,11 +469,6 @@
                 </td>
 <td>
                   <p>
- exact
- </p>
- </td>
-<td>
- <p>
                     bound
                   </p>
                 </td>
@@ -532,7 +479,7 @@
                 </td>
 <td>
                   <p>
- to_zero
+ to zero
                   </p>
                 </td>
 <td>
@@ -550,182 +497,184 @@
                     9
                   </p>
                 </td>
+</tr>
+<tr>
 <td>
                   <p>
- 11
+ unsigned long
                   </p>
                 </td>
-</tr>
-<tr>
 <td>
                   <p>
- int64_t
+ unsigned
                   </p>
                 </td>
 <td>
                   <p>
- signed
+ bound
                   </p>
                 </td>
 <td>
                   <p>
- exact
+ modulo
                   </p>
                 </td>
 <td>
                   <p>
- bound
+ to zero
                   </p>
                 </td>
 <td>
                   <p>
- modulo
+ 2
                   </p>
                 </td>
 <td>
                   <p>
- to_zero
+ 32
                   </p>
                 </td>
 <td>
                   <p>
- 2
+ 9
                   </p>
                 </td>
+</tr>
+<tr>
 <td>
                   <p>
- 63
+ long long
                   </p>
                 </td>
 <td>
                   <p>
- 18
+ signed
                   </p>
                 </td>
 <td>
                   <p>
- 20
+ bound
                   </p>
                 </td>
-</tr>
-<tr>
 <td>
                   <p>
- int128_t
+ modulo
                   </p>
                 </td>
 <td>
                   <p>
- signed
+ to zero
                   </p>
                 </td>
 <td>
                   <p>
- exact
+ 2
                   </p>
                 </td>
 <td>
                   <p>
- bound
+ 63
                   </p>
                 </td>
 <td>
                   <p>
- modulo
+ 18
                   </p>
                 </td>
+</tr>
+<tr>
 <td>
                   <p>
- to_zero
+ unsigned long long
                   </p>
                 </td>
 <td>
                   <p>
- 2
+ unsigned
                   </p>
                 </td>
 <td>
                   <p>
- 128
+ bound
                   </p>
                 </td>
 <td>
                   <p>
- 38
+ modulo
                   </p>
                 </td>
 <td>
                   <p>
- 40
+ to zero
                   </p>
                 </td>
-</tr>
-<tr>
 <td>
                   <p>
- int256_t
+ 2
                   </p>
                 </td>
 <td>
                   <p>
- signed
+ 64
                   </p>
                 </td>
 <td>
                   <p>
- exact
+ 19
                   </p>
                 </td>
+</tr>
+<tr>
 <td>
                   <p>
- bound
+ int32_t
                   </p>
                 </td>
 <td>
                   <p>
- modulo
+ signed
                   </p>
                 </td>
 <td>
                   <p>
- to_zero
+ bound
                   </p>
                 </td>
 <td>
                   <p>
- 2
+ modulo
                   </p>
                 </td>
 <td>
                   <p>
- 256
+ to zero
                   </p>
                 </td>
 <td>
                   <p>
- 77
+ 2
                   </p>
                 </td>
 <td>
                   <p>
- 79
+ 31
                   </p>
                 </td>
-</tr>
-<tr>
 <td>
                   <p>
- int512_t
+ 9
                   </p>
                 </td>
+</tr>
+<tr>
 <td>
                   <p>
- signed
+ uint32_t
                   </p>
                 </td>
 <td>
                   <p>
- exact
+ unsigned
                   </p>
                 </td>
 <td>
@@ -740,7 +689,7 @@
                 </td>
 <td>
                   <p>
- to_zero
+ to zero
                   </p>
                 </td>
 <td>
@@ -750,190 +699,192 @@
                 </td>
 <td>
                   <p>
- 512
+ 32
                   </p>
                 </td>
 <td>
                   <p>
- 154
+ 9
                   </p>
                 </td>
+</tr>
+<tr>
 <td>
                   <p>
- 156
+ int64_t
                   </p>
                 </td>
-</tr>
-<tr>
 <td>
                   <p>
- uint32_t
+ signed
                   </p>
                 </td>
 <td>
                   <p>
- unsigned
+ bound
                   </p>
                 </td>
 <td>
                   <p>
- exact
+ modulo
                   </p>
                 </td>
 <td>
                   <p>
- bound
+ to zero
                   </p>
                 </td>
 <td>
                   <p>
- modulo
+ 2
                   </p>
                 </td>
 <td>
                   <p>
- to_zero
+ 63
                   </p>
                 </td>
 <td>
                   <p>
- 2
+ 18
                   </p>
                 </td>
+</tr>
+<tr>
 <td>
                   <p>
- 32
+ uint64_t
                   </p>
                 </td>
 <td>
                   <p>
- 9
+ unsigned
                   </p>
                 </td>
 <td>
                   <p>
- 11
+ bound
                   </p>
                 </td>
-</tr>
-<tr>
 <td>
                   <p>
- uint64_t
+ modulo
                   </p>
                 </td>
 <td>
                   <p>
- unsigned
+ to zero
                   </p>
                 </td>
 <td>
                   <p>
- exact
+ 2
                   </p>
                 </td>
 <td>
                   <p>
- bound
+ 64
                   </p>
                 </td>
 <td>
                   <p>
- modulo
+ 19
                   </p>
                 </td>
+</tr>
+<tr>
 <td>
                   <p>
- to_zero
+ int128_t
                   </p>
                 </td>
 <td>
                   <p>
- 2
+ signed
                   </p>
                 </td>
 <td>
                   <p>
- 64
+ bound
                   </p>
                 </td>
 <td>
                   <p>
- 19
+ modulo
                   </p>
                 </td>
 <td>
                   <p>
- 21
+ to zero
                   </p>
                 </td>
-</tr>
-<tr>
 <td>
                   <p>
- uint128_t
+ 2
                   </p>
                 </td>
 <td>
                   <p>
- unsigned
+ 128
                   </p>
                 </td>
 <td>
                   <p>
- exact
+ 38
                   </p>
                 </td>
+</tr>
+<tr>
 <td>
                   <p>
- bound
+ uint128_t
                   </p>
                 </td>
 <td>
                   <p>
- modulo
+ unsigned
                   </p>
                 </td>
 <td>
                   <p>
- to_zero
+ bound
                   </p>
                 </td>
 <td>
                   <p>
- 2
+ modulo
                   </p>
                 </td>
 <td>
                   <p>
- 128
+ to zero
                   </p>
                 </td>
 <td>
                   <p>
- 38
+ 2
                   </p>
                 </td>
 <td>
                   <p>
- 40
+ 128
                   </p>
                 </td>
-</tr>
-<tr>
 <td>
                   <p>
- uint256_t
+ 38
                   </p>
                 </td>
+</tr>
+<tr>
 <td>
                   <p>
- unsigned
+ int256_t
                   </p>
                 </td>
 <td>
                   <p>
- exact
+ signed
                   </p>
                 </td>
 <td>
@@ -948,7 +899,7 @@
                 </td>
 <td>
                   <p>
- to_zero
+ to zero
                   </p>
                 </td>
 <td>
@@ -966,16 +917,11 @@
                     77
                   </p>
                 </td>
-<td>
- <p>
- 79
- </p>
- </td>
 </tr>
 <tr>
 <td>
                   <p>
- uint512_t
+ uint256_t
                   </p>
                 </td>
 <td>
@@ -985,11 +931,6 @@
                 </td>
 <td>
                   <p>
- exact
- </p>
- </td>
-<td>
- <p>
                     bound
                   </p>
                 </td>
@@ -1000,7 +941,7 @@
                 </td>
 <td>
                   <p>
- to_zero
+ to zero
                   </p>
                 </td>
 <td>
@@ -1010,17 +951,12 @@
                 </td>
 <td>
                   <p>
- 512
- </p>
- </td>
-<td>
- <p>
- 154
+ 256
                   </p>
                 </td>
 <td>
                   <p>
- 156
+ 77
                   </p>
                 </td>
 </tr>
@@ -1037,11 +973,6 @@
                 </td>
 <td>
                   <p>
- exact
- </p>
- </td>
-<td>
- <p>
                     unbounded
                   </p>
                 </td>
@@ -1052,7 +983,7 @@
                 </td>
 <td>
                   <p>
- to_zero
+ to zero
                   </p>
                 </td>
 <td>
@@ -1070,11 +1001,6 @@
                     646392383
                   </p>
                 </td>
-<td>
- <p>
- 646392385
- </p>
- </td>
 </tr>
 </tbody>
 </table></div>
@@ -1099,6 +1025,9 @@
 <col>
 <col>
 <col>
+<col>
+<col>
+<col>
 </colgroup>
 <thead><tr>
 <th>
@@ -1118,6 +1047,21 @@
                 </th>
 <th>
                   <p>
+ unsigned char
+ </p>
+ </th>
+<th>
+ <p>
+ char16_t
+ </p>
+ </th>
+<th>
+ <p>
+ char32_t
+ </p>
+ </th>
+<th>
+ <p>
                     short
                   </p>
                 </th>
@@ -1148,27 +1092,27 @@
                 </th>
 <th>
                   <p>
- int32_t
+ long long
                   </p>
                 </th>
 <th>
                   <p>
- int64_t
+ unsigned long long
                   </p>
                 </th>
 <th>
                   <p>
- int128_t
+ int32_t
                   </p>
                 </th>
 <th>
                   <p>
- int256_t
+ int64_t
                   </p>
                 </th>
 <th>
                   <p>
- int512_t
+ int128_t
                   </p>
                 </th>
 </tr></thead>
@@ -1191,7 +1135,7 @@
                 </td>
 <td>
                   <p>
- 32767
+ 255
                   </p>
                 </td>
 <td>
@@ -1201,22 +1145,17 @@
                 </td>
 <td>
                   <p>
- 2147483647
+ -1
                   </p>
                 </td>
 <td>
                   <p>
- 4294967295
- </p>
- </td>
-<td>
- <p>
- 2147483647
+ 32767
                   </p>
                 </td>
 <td>
                   <p>
- 4294967295
+ 65535
                   </p>
                 </td>
 <td>
@@ -1226,54 +1165,49 @@
                 </td>
 <td>
                   <p>
- 9223372036854775807
- </p>
- </td>
-<td>
- <p>
- 340282366920938463463374607431768211455
+ 4294967295
                   </p>
                 </td>
 <td>
                   <p>
- 115792089237316195423570985008687907853269984665640564039457584007913129639935
+ 2147483647
                   </p>
                 </td>
 <td>
                   <p>
- 13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084095
+ 4294967295
                   </p>
                 </td>
-</tr>
-<tr>
 <td>
                   <p>
- lowest
+ 9223372036854775807
                   </p>
                 </td>
 <td>
                   <p>
- 0
+ 18446744073709551615
                   </p>
                 </td>
 <td>
                   <p>
- -128
+ 2147483647
                   </p>
                 </td>
 <td>
                   <p>
- -32768
+ 9223372036854775807
                   </p>
                 </td>
 <td>
                   <p>
- 0
+ 340282366920938463463374607431768211455
                   </p>
                 </td>
+</tr>
+<tr>
 <td>
                   <p>
- -2147483648
+ min
                   </p>
                 </td>
 <td>
@@ -1283,7 +1217,7 @@
                 </td>
 <td>
                   <p>
- -2147483648
+ -128
                   </p>
                 </td>
 <td>
@@ -1293,34 +1227,17 @@
                 </td>
 <td>
                   <p>
- -2147483648
- </p>
- </td>
-<td>
- <p>
- -9223372036854775808
- </p>
- </td>
-<td>
- <p>
- -340282366920938463463374607431768211455
- </p>
- </td>
-<td>
- <p>
- -115792089237316195423570985008687907853269984665640564039457584007913129639935
+ 0
                   </p>
                 </td>
 <td>
                   <p>
- -13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084095
+ 0
                   </p>
                 </td>
-</tr>
-<tr>
 <td>
                   <p>
- min
+ -32768
                   </p>
                 </td>
 <td>
@@ -1330,12 +1247,7 @@
                 </td>
 <td>
                   <p>
- -128
- </p>
- </td>
-<td>
- <p>
- -32768
+ -2147483648
                   </p>
                 </td>
 <td>
@@ -1355,7 +1267,7 @@
                 </td>
 <td>
                   <p>
- -2147483648
+ -9223372036854775808
                   </p>
                 </td>
 <td>
@@ -1378,25 +1290,21 @@
                     -340282366920938463463374607431768211455
                   </p>
                 </td>
-<td>
- <p>
- -115792089237316195423570985008687907853269984665640564039457584007913129639935
- </p>
- </td>
-<td>
- <p>
- -13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084095
- </p>
- </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <br class="table-break"><div class="table">
 <a name="boost_multiprecision.tut.limits.limits32.float_functions"></a><p class="title"><b>Table&#160;1.6.&#160;Floating-point types constants (<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">T</span><span class="special">&gt;::</span><span class="identifier">is_integer</span>
- <span class="special">==</span> <span class="keyword">false</span></code>)</b></p>
+ <span class="special">==</span> <span class="keyword">false</span>
+ <span class="special">&amp;&amp;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">is_modulo</span>
+ <span class="special">==</span> <span class="keyword">false</span></code>
+ )</b></p>
 <div class="table-contents"><table class="table" summary="Floating-point types constants (std::numeric_limits&lt;T&gt;::is_integer
- == false)">
+ == false
+ &amp;&amp; std::numeric_limits&lt;T&gt;::is_modulo
+ == false
+ )">
 <colgroup>
 <col>
 <col>
@@ -1413,7 +1321,6 @@
 <col>
 <col>
 <col>
-<col>
 </colgroup>
 <thead><tr>
 <th>
@@ -1438,11 +1345,6 @@
                 </th>
 <th>
                   <p>
- modulo
- </p>
- </th>
-<th>
- <p>
                     round
                   </p>
                 </th>
@@ -1496,6 +1398,8 @@
                     trap
                   </p>
                 </th>
+<th>
+ </th>
 </tr></thead>
 <tbody>
 <tr>
@@ -1521,12 +1425,7 @@
                 </td>
 <td>
                   <p>
- no modulo
- </p>
- </td>
-<td>
- <p>
- to_nearest
+ to nearest
                   </p>
                 </td>
 <td>
@@ -1571,7 +1470,7 @@
                 </td>
 <td>
                   <p>
- tinyness
+ tiny
                   </p>
                 </td>
 <td>
@@ -1603,12 +1502,7 @@
                 </td>
 <td>
                   <p>
- no modulo
- </p>
- </td>
-<td>
- <p>
- to_nearest
+ to nearest
                   </p>
                 </td>
 <td>
@@ -1653,7 +1547,7 @@
                 </td>
 <td>
                   <p>
- tinyness
+ tiny
                   </p>
                 </td>
 <td>
@@ -1685,12 +1579,7 @@
                 </td>
 <td>
                   <p>
- no modulo
- </p>
- </td>
-<td>
- <p>
- to_nearest
+ to nearest
                   </p>
                 </td>
 <td>
@@ -1735,7 +1624,7 @@
                 </td>
 <td>
                   <p>
- tinyness
+ tiny
                   </p>
                 </td>
 <td>
@@ -1767,11 +1656,6 @@
                 </td>
 <td>
                   <p>
- no modulo
- </p>
- </td>
-<td>
- <p>
                     indeterminate
                   </p>
                 </td>
@@ -1822,7 +1706,7 @@
                 </td>
 <td>
                   <p>
- no traps.
+ no
                   </p>
                 </td>
 </tr>
@@ -1849,12 +1733,7 @@
                 </td>
 <td>
                   <p>
- no modulo
- </p>
- </td>
-<td>
- <p>
- to_nearest
+ to nearest
                   </p>
                 </td>
 <td>

Modified: sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/version_32.html
==============================================================================
--- sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/version_32.html Sat Aug 24 20:50:48 2013 (r85452)
+++ sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/boost_multiprecision/tut/limits/version_32.html 2013-08-25 04:32:14 EDT (Sun, 25 Aug 2013) (r85453)
@@ -1,26 +1,27 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title></title>
+<title>32-bit version information used for tables below.</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="Chapter&#160;1.&#160;Boost.Multiprecision">
 <link rel="up" href="../limits.html" title="Numeric Limits">
-<link rel="prev" href="implementation/is_bounded/round_style.html" title="route_style">
+<link rel="prev" href="implementation/constants0/min.html" title="min function">
 <link rel="next" href="limits32.html" title="Numeric limits for 32-bit platform">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <div class="spirit-nav">
-<a accesskey="p" href="implementation/is_bounded/round_style.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../limits.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="limits32.html"><img src="../../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="implementation/constants0/min.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../limits.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="limits32.html"><img src="../../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="boost_multiprecision.tut.limits.version_32"></a><a class="link" href="version_32.html">???</a>
+<a name="boost_multiprecision.tut.limits.version_32"></a><a class="link" href="version_32.html" title="32-bit version information used for tables below.">32-bit
+ version information used for tables below.</a>
 </h4></div></div></div>
 <pre class="programlisting">
 Program: I:\boost-sandbox\multiprecision.cpp_bin_float\libs\multiprecision\doc<br>
 umeric_limits_qbk.cpp
-Sat Aug 17 14:42:36 2013
+Sat Aug 24 18:07:37 2013
 BuildInfo:
   Platform Win32
   Compiler Microsoft Visual C++ version 10.0
@@ -39,7 +40,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="implementation/is_bounded/round_style.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../limits.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="limits32.html"><img src="../../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="implementation/constants0/min.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../limits.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="limits32.html"><img src="../../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/index.html
==============================================================================
--- sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/index.html Sat Aug 24 20:50:48 2013 (r85452)
+++ sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/html/index.html 2013-08-25 04:32:14 EDT (Sun, 25 Aug 2013) (r85453)
@@ -92,14 +92,16 @@
 <dt><span class="section">Generic Integer Operations</span></dt>
 <dt><span class="section">Numeric Limits</span></dt>
 <dd><dl>
-<dt><span class="section"><a href="boost_multiprecision/tut/limits/implementation.html">Implementation
- Notes</a></span></dt>
+<dt><span class="section"><a href="boost_multiprecision/tut/limits/implementation.html">Notes
+ on Implementation of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span></code></a></span></dt>
 <dd><dl>
-<dt><span class="section">is_specialized</span></dt>
-<dt><span class="section">infinity</span></dt>
-<dt><span class="section">is_bounded</span></dt>
+<dt><span class="section"><a href="boost_multiprecision/tut/limits/implementation/constants.html">std::numeric_limits&lt;&gt;
+ constants</a></span></dt>
+<dt><span class="section"><a href="boost_multiprecision/tut/limits/implementation/constants0.html">std::numeric_limits&lt;&gt;
+ functions</a></span></dt>
 </dl></dd>
-<dt><span class="section"></span></dt>
+<dt><span class="section"><a href="boost_multiprecision/tut/limits/version_32.html">32-bit
+ version information used for tables below.</a></span></dt>
 <dt><span class="section"><a href="boost_multiprecision/tut/limits/limits32.html">Numeric limits
         for 32-bit platform</a></span></dt>
 </dl></dd>
@@ -145,7 +147,7 @@
 </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: August 17, 2013 at 13:43:14 GMT</small></p></td>
+<td align="left"><p><small>Last revised: August 24, 2013 at 17:17:40 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>

Modified: sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/multiprecision.qbk
==============================================================================
--- sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/multiprecision.qbk Sat Aug 24 20:50:48 2013 (r85452)
+++ sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/multiprecision.qbk 2013-08-25 04:32:14 EDT (Sun, 25 Aug 2013) (r85453)
@@ -1850,7 +1850,8 @@
 [section:limits Numeric Limits]
 
 Boost.Multiprecision tries hard to implement `std::numeric_limits` for all types
-as far as possible and meaningful.
+as far as possible and meaningful because experience with Boost.Math
+has shown that this aids portability.
 
 The [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3690.pdf C++ standard library]
 defines `std::numeric_limits` in section 18.3.2.
@@ -1859,7 +1860,8 @@
 [@http://www.open-std.org/jtc1/sc22/wg11/docs/n507.pdf SC22/WG11 N507 DRAFT INTERNATIONAL ISO/IEC STANDARD
  WD 10967-1]
 Information technology Language independent arithmetic Part 1: Integer and Floating point arithmetic.
-that in turn refers to
+
+That C Standard in turn refers to
 
 [@http://754r.ucbtest.org/standards/754.pdf IEEE754 IEEE Standard for Binary
 Floating-Point Arithmetic]
@@ -1867,17 +1869,24 @@
 There is a useful summary at
 [@http://www.cplusplus.com/reference/limits/numeric_limits/ C++ reference].
 
-[section:implementation Implementation Notes]
+[section:implementation Notes on Implementation of `std::numeric_limits`]
+
+The chosen backend often determines how completely `std::numeric_limits` is available.
 
-The chosen backend often determines how far `std::numeric_limits` is available.
+Compiler options, processor type, and definition of macros or assembler instructions to control denormal numbers will alter
+the values in the tables given below.
 
 [warning GMP and MPFR do not have a concept of overflow:
 operations that lead to overflow eventually run of out of resources
 and terminate with stack overflow (often after several seconds).]
 
+[section:constants std::numeric_limits<> constants]
+
+
 [section:is_specialized is_specialized]
 
-`true` for all arithmetic types - those for which numeric_limits is specialized.
+`true` for all arithmetic types (integer, floating and fixed-point)
+for which `std::numeric_limits<T>::numeric_limits` is specialized.
 
 A typical test is
 
@@ -1890,8 +1899,11 @@
 However, not all the `std::numeric_limits` member constants and functions are meaningful for all user-defined types (UDT),
 such as the decimal and binary multiprecision types provided here.
 
-For example, a max() function for an __arbitrary_precision type is defined
-only by machine resources like memory or stack: so for functions like these a NaN is specified.
+For example, a `max()` function for an __arbitrary_precision type is defined
+only by machine resources like memory or stack:
+so for functions like these a NaN
+`std::numeric_limits<T>::numeric_limits::quiet_NaN()` is specified.
+This avoids an uncontrollable program crash like stack overflow.
 
 [endsect] [/section:is_specialized is_specialized]
 
@@ -1899,9 +1911,9 @@
 [section:infinity infinity]
 
 For floating-point types, infinity is defined whereever possible,
-but clearly not for __arbitrary_precision arithmetic backends.
+but clearly infinity is meaningless for __arbitrary_precision arithmetic backends.
 
-A typical test is
+A typical test whether infinity is implemented is
 
   if(std::numeric_limits<T>::has_infinity)
   {
@@ -1910,17 +1922,110 @@
 
 and using tests like this is strongly recommended to improve portability.
 
-If the backend is switched to a type that does not support infinity, there will be trouble.
+If the backend is switched to a type that does not support infinity then,
+without checks like this, there will be trouble.
 
 [endsect] [/section:infinity infinity]
 
+[section:signed is_signed]
+
+`true` if the type is signed.
+
+For built-in binary types, the sign is usually held in a single bit,
+but for other types it may be a separate storage element, usually `bool`.
+
+[endsect] [/section:signed signed]
+
+[section:exact is_exact]
+
+`true` if type uses exact representations.
+
+This is defined as `true` for all integer types and `false` for floating-point types.
+
+[@http://stackoverflow.com/questions/14203654/stdnumeric-limitsis-exact-what-is-a-usable-definition A usable definition]
+has been discussed.
+
+ISO/IEC 10967-1, Language independent arithmetic, noted by the C++ Standard defines
+
+ A floating point type F shall be a finite subset of [real].
+
+The important practical distinction is that all integers (up to `max()`) can be stored exactly.
+
+[@http://en.wikipedia.org/wiki/Rational_number Rational]
+types using two integer types are also exact.
+
+Floating-point types [*cannot store all real values]
+(those in the set of [real]) [*exactly].
+For example, 0.5 can be stored exactly in a binary floating-point, but 0.1 cannot.
+What is stored is the nearest representable real value, that is, rounded to nearest.
+
+Fixed-point types (usually decimal) are also defined as exact, in that they only
+store a [*fixed precision], so half cents or pennies (or less) cannot be stored.
+The results of computations are rounded up or down,
+just like the result of integer division stored as an integer result.
+
+There are number of proposals to
+[*http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3407.html
+add Decimal Floating Point Support to C++].
+
+And also
+[*http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3352.html
+C++ Binary Fixed-Point Arithmetic].
+
+[endsect] [/section:exact is_exact]
+
+[section:bound is_bound]
+
+`true` if the set of values represented by the type is finite.
+
+This is `true` for all built-in integer and floating-point types,
+and most multi-precision types.
+
+It is only `false` for a few __arbitrary_precision types like `cpp_int`.
+
+Rational and fixed-exponent representations are exact but not integer.
+
+[endsect] [/ section:bound is_bound]
+
+[section:modulo is_modulo]
+
+`is_modulo` is defined as `true` if adding two positive values of type T
+can yield a result less than either value.
+
+`is_modulo == true` means that the type does not overflow, but, for example,
+'wraps around' to zero, when adding one to the `max()` value.
+
+For most built-in integer types, `std::numeric_limits<>::is_modulo` is `true`.
+
+`bool` is the only exception.
+
+The modulo behaviour is sometimes useful, often irrelevent
+(with 32 or more bit integers),
+but also can be unexpected, and sometimes undesired, behaviour.
+
+Overflow of signed integers can be especially unexpected, possibly causing change of sign.
+
+Boost.Multiprecision integer type `cpp_int` is not modulo because as an __arbitrary_precision types,
+it expands to hold any value that the machine resources permit.
+
+Built-in and multi-precision floating-point types are normally not modulo.
+
+Where possible, overflow is to `std::numeric_limits<>::infinity()`,
+provided `std::numeric_limits<>::has_infinity.== true`.
+
+[endsect] [/section:modulo is_modulo]
+
 [section:is_bounded is_bounded]
 
-Constant `std::numeric_limits<T>::is_bounded` is true if there is a limit to values that can be stored.
+Constant `std::numeric_limits<T>::is_bounded`
+is true if there is a limit to values that can be stored.
+
+This is obviously true for built-in integer and floating-point types,
+but will be false for __arbitrary_precision integer (for example `cpp_int`)
+and floating-point types because these expand until memory is exhausted.
+
+[endsect] [/section:is_bounded is_bounded]
 
-Thisis obviously true for built-in integer and floating-point types,
-but will be false for __arbitrary_precision integer and floating-point types
-because these expand until memory is exhausted.
 
 [section:radix radix]
 
@@ -1928,44 +2033,205 @@
 
 [endsect] [/section:radix radix]
 
+[section:digits digits]
+
+The number of `radix` digits that be represented without change:
+
+* for integer types, the number of non-sign bits in the mantissa.
+* for floating types, the number of radix digits in the mantissa.
+
+For the most common case of `radix == 2`,
+`std::numeric_limits<T>::digits` is the number of bits in the representation,
+not counting any sign bit.
+
+For a decimal integer type, when `radix == 10`, it is the number of decimal digits.
+
+[endsect] [/section:digits digits]
+
+
 [section:digits10 digits10]
 
-Constant `digits` returns "Number of digits (in decimal base) that can be represented without change".
+Constant `std::numeric_limits<T>::digits` returns
+
+ Number of digits (in decimal base) that can be represented without change.
 
 For bounded integers, it is one less than number of decimal digits you need to display the biggest integer.
 This value can be used to predict the layout width required for
 
- << width(std::numeric_linits<T>:: digits10 +1 +2) // +1 for sign, and 2 spaces.
+ << width(std::numeric_linits<T>::digits10 +1 +1 +1) // digits10+1, and +1 for sign, and 1 space.
 
-For bounded floating-point types, this is the number of decimal digits guaranteed to be correct.
+For example, `unsigned short` might be stored in 16 bits, so the maximum value is 0xFFFF or
 
-(But for most purposes, you will more likely want max_digits10,
-the number of decimal digits that ensure that a change of one least significant bit (ULP) produces a difference.
-The last two (or 3) digits are 'noisy', but ifyou want to 'round-trip' printing a value out and reading it back in,
-you must use `std::numeric_limits<>::max_digits10`.
+For bounded floating-point types, this is the number of decimal digits [*guaranteed]
+to be correct.
 
+For example, 'round-tripping' for `double`:
+
+If a decimal string with at most `digits10`( == 15) significant decimal digits
+is converted to `double` and then converted back to the
+same number of significant decimal digits,
+then the final string should match the original decimal digit string.
+
+If a `double` floating-point number is converted to a decimal string
+with at least 17 decimal digits
+and then converted back to `double`,
+then the final number value must match the original.
+
+(But for most purposes, you will more likely want `std::numeric_limits<>::max_digits10`,
+the number of decimal digits that ensure that a change of one least significant bit (ULP)
+produces a different decimal digits string.
+
+For nearly all floating-point types, `max_digits10` is `digits10+2`,
+but you should use `max_digits10` where possible.
+
+If `max_digits10` is not available, you should using the
+[@http://www.cs.berkeley.edu/~wkahan/ieee754status/IEEE754.PDF Kahan formula for floating-point type T]
+
+ max_digits10 = std::numeric_limits<T>::digits * 3010U/10000U;
+
+The factor is log[sub 10](2) = 0.3010
+but must be evaluated at compile time with only integers.
+
+(See also
+[@http://www.loria.fr/~zimmerma/mca/mca-cup-0.5.9.pdf Richard P. Brent and Paul Zimmerman, Modern Computer Arithmetic]
+Equation 3.8 on page 116.).
+
+The extra two (or 3) digits are 'noisy',
+but if you want to 'round-trip' printing a value out and reading it back in,
+you must use `std::numeric_limits<T>::max_digits10`.
+For at least one popular compiler, you must also use `std::scientific` format.
 
 [endsect] [/section:digits digits]
 
+[section:max_digits10 max_digits10]
+
+`std::numeric_limits<T>::max_digits10` was added for floating-point
+because `digits10` decimal digits are insufficient to 'round-trip', for example:
+
+ double write = 1.234567890; // For any arbitrary value.
+ double read = 0;
+ std::stringstream s;
+ s.precision(std::numeric_limits<double>::max_digits10) // for 64-bit IEE754 double.
+ s << std::scientific << write; // See note below on why to use scientific format.
+ s >> read;
+ assert (read == write);
+
+If you wish to ensure that a change of one least significant bit (ULP)
+produces a different decimal digits string, then this is the precision to use.
+
+For example:
+
+ double pi = boost::math::constants::pi();
+ cout.precision(std::numeric_limits<double>::max_digits10);
+ std::cout << pi << endl;
+
+will display pi[] to the maximum possible precision using a `double`.
+
+For integer types, the value is un-defined, but is usually `digits10` + 2.
+
+[note For Microsoft Visual Studio 2010,
+`std::numeric_limits<float>::max_digits10` is wrongly defined as 8. It should be 9.]
+
+[note For Microsoft Visual Studio, and default float format, a small range of values
+approximately 0.0001 to 0.004, with exponent values of 3f2 to 3f6,
+are wrongly input by one least significant bit,
+probably every third value of significand.
+
+This can be avoided by using scientific or exponential format `<< std::scientific`.]
+
+[note BOOST_NO_NUMERIC_LIMITS_LOWEST is a suitable proxy to determine if
+`std::numeric_limits<float>::max_digits10` is implemented on any platform.
+If `max_digits10` is not available, you should using the
+[@http://www.cs.berkeley.edu/~wkahan/ieee754status/IEEE754.PDF Kahan formula for floating-point type T].
+See above.]
+
+[endsect] [/section:max_digits10 max_digits10]
+
 
 [section:round_style route_style]
 
-For integer types, round_style is always towards zero.
+For integer types, `std::numeric_limits<T>::round_style` is always towards zero, so
 
-For `cpp_dec_float` rounds in no particular direction, which is to say it doesn't round at all.
-And since there are guard digits, it's not really the same as truncation (round toward zero) either.
+ std::numeric_limits<T>::round_style == std::round_to_zero;
 
+`cpp_dec_float` rounds in no particular direction,
+which is to say it doesn't round at all.
+And since there are guard digits,
+it's not really the same as truncation (round toward zero) either.
 
+For floating-point types, it is normal to round to nearest.
 
+ std::numeric_limits<T>::round_style == std::round_to_nearest;
 
 [endsect] [/section:round_style route_style]
 
+[section:denorm_loss has_denorm_loss]
 
-[endsect] [/section:is_bounded is_bounded]
+`true` if a loss of accuracy is detected as a denormalization loss,
+rather than an inexact result.
 
+Always `false` for integer types.
 
-[endsect] [/section:implementation Implementation Notes]
+`false` for all types which do not have `has_denorm` == `std::denorm_present`.
+
+[endsect] [/section:denorm_loss has_denorm_loss]
+
+[section:denorm_style denorm_style]
 
+[@http://en.wikipedia.org/wiki/Denormal_number Denormalized values] are
+representations with a variable number of exponent bits that can permit
+gradual underflow, so that.
+
+ std::numeric_limits<T>::denorm_min() < std::numeric_limits<T>::min()
+
+A type may have any of the following `enum float_denorm_style` values:
+
+* `std::denorm_absent`, if it does not allow denormalized values.
+(Always used for all integer and exact types).
+* `std::denorm_present`, if the floating-point type allows denormalized values.
+*`std::denorm_indeterminate`, if indeterminate at compile time.
+
+[endsect] [/section:denorm_style denorm_style]
+
+[endsect] [/section:constants std::numeric_limits<> constants]
+
+[section:constants std::numeric_limits<> functions]
+
+[section:max max function]
+
+`max()` returns the largest finite value that can be represented by the type.
+
+For built-in types there is usually a corresponding MACRO value TYPE_MAX,
+where TYPE is CHAR, INT, FLOAT etc.
+
+Other types, including those provided by a typedef,
+for example `INT64_T_MAX` for `int64_t`, may provide a macro definition.
+
+[endsect] [/section:max max function]
+
+
+[section:lowest lowest function]
+
+[endsect] [/section:lowest lowest function]
+
+[section:min min function]
+
+
+`min()` returns the largest finite value that can be represented by the type.
+
+For built-in types there is usually a corresponding MACRO value TYPE_MIN,
+where TYPE is CHAR, INT, FLOAT etc.
+
+Other types, including those provided by a typedef,
+for example `INT64_T_MIN` for `int64_t`, may provide a macro definition.
+
+
+[endsect] [/section:min min function]
+
+[endsect] [/section:constants std::numeric_limits<> functions]
+
+
+[endsect] [/section:implementation Implementation Notes]
 
 
 [include numeric_limits_32_tables.qbk]

Modified: sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/numeric_limits_32_tables.qbk
==============================================================================
--- sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/numeric_limits_32_tables.qbk Sat Aug 24 20:50:48 2013 (r85452)
+++ sandbox/multiprecision.cpp_bin_float/libs/multiprecision/doc/numeric_limits_32_tables.qbk 2013-08-25 04:32:14 EDT (Sun, 25 Aug 2013) (r85453)
@@ -6,11 +6,11 @@
 http://www.boost.org/LICENSE_1_0.txt).
 ]
 
-[section:version_32]
+[section:version_32 32-bit version information used for tables below.]
 [pre
 
 Program: I:\boost-sandbox\multiprecision.cpp_bin_float\libs\multiprecision\doc\numeric_limits_qbk.cpp
-Sat Aug 17 14:42:36 2013
+Sat Aug 24 18:07:37 2013
 BuildInfo:
   Platform Win32
   Compiler Microsoft Visual C++ version 10.0
@@ -20,48 +20,49 @@
 ]
 [endsect] [/section:version_32]
 
-[section:limits32 Numeric limits for 32-bit platform]
-
-[table:integral_constants Integer types constants (`std::numeric_limits<T>::is_integer == true`)
-[[type][signed][exact][bound][modulo][round][radix][digits][digits10][max_digits10]]
-[[bool][unsigned][exact][bound][no][to_zero][2][1][0][0]]
-[[short][signed][exact][bound][modulo][to_zero][2][15][4][6]]
-[[int][signed][exact][bound][modulo][to_zero][2][31][9][11]]
-[[unsigned][unsigned][exact][bound][modulo][to_zero][2][32][9][11]]
-[[long][signed][exact][bound][modulo][to_zero][2][31][9][11]]
-[[unsigned long][unsigned][exact][bound][modulo][to_zero][2][32][9][11]]
-[[long long][signed][exact][bound][modulo][to_zero][2][63][18][20]]
-[[unsigned long long][unsigned][exact][bound][modulo][to_zero][2][64][19][21]]
-[[int32_t][signed][exact][bound][modulo][to_zero][2][31][9][11]]
-[[int64_t][signed][exact][bound][modulo][to_zero][2][63][18][20]]
-[[int128_t][signed][exact][bound][modulo][to_zero][2][128][38][40]]
-[[int256_t][signed][exact][bound][modulo][to_zero][2][256][77][79]]
-[[int512_t][signed][exact][bound][modulo][to_zero][2][512][154][156]]
-[[uint32_t][unsigned][exact][bound][modulo][to_zero][2][32][9][11]]
-[[uint64_t][unsigned][exact][bound][modulo][to_zero][2][64][19][21]]
-[[uint128_t][unsigned][exact][bound][modulo][to_zero][2][128][38][40]]
-[[uint256_t][unsigned][exact][bound][modulo][to_zero][2][256][77][79]]
-[[uint512_t][unsigned][exact][bound][modulo][to_zero][2][512][154][156]]
-[[cpp_int][signed][exact][unbounded][no][to_zero][2][2147483647][646392383][646392385]]
+[section:limits32 Numeric limits for 32-bit platform]
+[table:integral_constants Integer types constants (`std::numeric_limits<T>::is_integer == true` && is_exact == true)
+[[type][signed][bound][modulo][round][radix][digits][digits10]]
+[[bool][unsigned][bound][no][to zero][2][1][0]]
+[[char][signed][bound][modulo][to zero][2][7][2]]
+[[char16_t][unsigned][bound][modulo][to zero][2][16][4]]
+[[char32_t][unsigned][bound][modulo][to zero][2][32][9]]
+[[unsigned char][unsigned][bound][modulo][to zero][2][8][2]]
+[[short][signed][bound][modulo][to zero][2][15][4]]
+[[unsigned short][unsigned][bound][modulo][to zero][2][16][4]]
+[[int][signed][bound][modulo][to zero][2][31][9]]
+[[unsigned][unsigned][bound][modulo][to zero][2][32][9]]
+[[long][signed][bound][modulo][to zero][2][31][9]]
+[[unsigned long][unsigned][bound][modulo][to zero][2][32][9]]
+[[long long][signed][bound][modulo][to zero][2][63][18]]
+[[unsigned long long][unsigned][bound][modulo][to zero][2][64][19]]
+[[int32_t][signed][bound][modulo][to zero][2][31][9]]
+[[uint32_t][unsigned][bound][modulo][to zero][2][32][9]]
+[[int64_t][signed][bound][modulo][to zero][2][63][18]]
+[[uint64_t][unsigned][bound][modulo][to zero][2][64][19]]
+[[int128_t][signed][bound][modulo][to zero][2][128][38]]
+[[uint128_t][unsigned][bound][modulo][to zero][2][128][38]]
+[[int256_t][signed][bound][modulo][to zero][2][256][77]]
+[[uint256_t][unsigned][bound][modulo][to zero][2][256][77]]
+[[cpp_int][signed][unbounded][no][to zero][2][2147483647][646392383]]
 ]
 
 [table:integral_functions Integer types functions (`std::numeric_limits<T>::is_integer == true`)
-[[function][bool][char][short][unsigned short][int][unsigned int][long][unsigned long][int32_t][int64_t][int128_t][int256_t][int512_t]]
-[[max][1][127][32767][65535][2147483647][4294967295][2147483647][4294967295][2147483647][9223372036854775807][340282366920938463463374607431768211455][115792089237316195423570985008687907853269984665640564039457584007913129639935][13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084095]]
-[[lowest][0][-128][-32768][0][-2147483648][0][-2147483648][0][-2147483648][-9223372036854775808][-340282366920938463463374607431768211455][-115792089237316195423570985008687907853269984665640564039457584007913129639935][-13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084095]]
-[[min][0][-128][-32768][0][-2147483648][0][-2147483648][0][-2147483648][-9223372036854775808][-340282366920938463463374607431768211455][-115792089237316195423570985008687907853269984665640564039457584007913129639935][-13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084095]]
+[[function][bool][char][unsigned char][char16_t][char32_t][short][unsigned short][int][unsigned int][long][unsigned long][long long][unsigned long long][int32_t][int64_t][int128_t]]
+[[max][1][127][255][65535][-1][32767][65535][2147483647][4294967295][2147483647][4294967295][9223372036854775807][18446744073709551615][2147483647][9223372036854775807][340282366920938463463374607431768211455]]
+[[min][0][-128][0][0][0][-32768][0][-2147483648][0][-2147483648][0][-9223372036854775808][0][-2147483648][-9223372036854775808][-340282366920938463463374607431768211455]]
 ]
-[table:float_functions Floating-point types constants (`std::numeric_limits<T>::is_integer == false`)
-[[type][signed][exact][bound][modulo][round][radix][digits][digits10][max_digits10][min_exp][min_exp10][max_exp][max_exp10][tiny][trap]]
-[[float][signed][inexact][bound][no modulo][to_nearest][2][24][6][8][-125][-37][128][38][tinyness][traps]]
+[table:float_functions Floating-point types constants (`std::numeric_limits<T>::is_integer == false && std::numeric_limits<T>::is_modulo == false` )
+[[type][signed][exact][bound][round][radix][digits][digits10][max_digits10][min_exp][min_exp10][max_exp][max_exp10][tiny][trap][]]
+[[float][signed][inexact][bound][to nearest][2][24][6][8][-125][-37][128][38][tiny][traps]]
 
-[[double][signed][inexact][bound][no modulo][to_nearest][2][53][15][17][-1021][-307][1024][308][tinyness][traps]]
+[[double][signed][inexact][bound][to nearest][2][53][15][17][-1021][-307][1024][308][tiny][traps]]
 
-[[long double][signed][inexact][bound][no modulo][to_nearest][2][53][15][17][-1021][-307][1024][308][tinyness][traps]]
+[[long double][signed][inexact][bound][to nearest][2][53][15][17][-1021][-307][1024][308][tiny][traps]]
 
-[[cpp_dec_float_50][signed][inexact][bound][no modulo][indeterminate][10][50][50][80][-222953000][-67108864][222953000][67108864][no][no traps.]]
+[[cpp_dec_float_50][signed][inexact][bound][indeterminate][10][50][50][80][-222953000][-67108864][222953000][67108864][no][no]]
 
-[[bin_128bit_double_type][signed][inexact][bound][no modulo][to_nearest][2][113][34][36][-2147483422][-646392383][2147483421][646392383][no][traps]]
+[[bin_128bit_double_type][signed][inexact][bound][to nearest][2][113][34][36][-2147483422][-646392383][2147483421][646392383][no][traps]]
 ]
 [table:float_functions Floating-point types functions (`std::numeric_limits<T>::is_integer == false`)
 [[function][float][double][long double][cpp_dec_50][cpp_bin_128]][[max][3.40282e+038][1.79769e+308][1.79769e+308][1e+67108865][1.63355e+646456925]]


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