Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r83344 - in trunk/libs/math/doc/sf_and_dist: . html html/index html/math_toolkit html/math_toolkit/constants/tutorial html/math_toolkit/main_overview html/math_toolkit/special/bessel html/math_toolkit/status html/math_toolkit/using_udt html/math_toolkit/using_udt/high_precision
From: john_at_[hidden]
Date: 2013-03-07 05:14:21


Author: johnmaddock
Date: 2013-03-07 05:14:18 EST (Thu, 07 Mar 2013)
New Revision: 83344
URL: http://svn.boost.org/trac/boost/changeset/83344

Log:
Update docs for __float128 support.
REgenerate docs and commit.
Added:
   trunk/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/high_precision/
   trunk/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/high_precision.html (contents, props changed)
   trunk/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/high_precision/e_float.html (contents, props changed)
   trunk/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/high_precision/float128.html (contents, props changed)
   trunk/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/high_precision/use_mpfr.html (contents, props changed)
   trunk/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/high_precision/use_multiprecision.html (contents, props changed)
   trunk/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/high_precision/use_ntl.html (contents, props changed)
   trunk/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/high_precision/using_test.html (contents, props changed)
   trunk/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/high_precision/why_high_precision.html (contents, props changed)
Text files modified:
   trunk/libs/math/doc/sf_and_dist/concepts.qbk | 13 +++++
   trunk/libs/math/doc/sf_and_dist/constants.qbk | 4 +
   trunk/libs/math/doc/sf_and_dist/html/index.html | 4 +
   trunk/libs/math/doc/sf_and_dist/html/index/s13.html | 27 ++++++----
   trunk/libs/math/doc/sf_and_dist/html/index/s14.html | 12 ++--
   trunk/libs/math/doc/sf_and_dist/html/index/s15.html | 12 ++--
   trunk/libs/math/doc/sf_and_dist/html/index/s16.html | 10 ++--
   trunk/libs/math/doc/sf_and_dist/html/index/s17.html | 97 ++++++++++++++++++++++++++-------------
   trunk/libs/math/doc/sf_and_dist/html/math_toolkit/constants/tutorial/user_def.html | 7 ++
   trunk/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/conventions.html | 8 +-
   trunk/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html | 35 ++++++++++++-
   trunk/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html | 8 +-
   trunk/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel0.html | 52 +++++++++++++-------
   trunk/libs/math/doc/sf_and_dist/html/math_toolkit/status/history1.html | 35 ++++++++++++-
   trunk/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt.html | 2
   trunk/libs/math/doc/sf_and_dist/roadmap.qbk | 1
   16 files changed, 230 insertions(+), 97 deletions(-)

Modified: trunk/libs/math/doc/sf_and_dist/concepts.qbk
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/concepts.qbk (original)
+++ trunk/libs/math/doc/sf_and_dist/concepts.qbk 2013-03-07 05:14:18 EST (Thu, 07 Mar 2013)
@@ -8,6 +8,7 @@
 * __NTL
 * __GMP
 * __MPFR
+* __float128
 
 The last four have some license restrictions;
 only __multiprecision when using the `cpp_float` backend
@@ -116,6 +117,18 @@
 
 [endsect] [/section:use_multiprecision Using Boost.Multiprecision]
 
+[section:float128 Using with GCC's __float128 datatype]
+
+At present support for GCC's native `__float128` datatype is extremely limited: the numeric constants
+will all work with that type, and that's about it. If you want to use the distributions or special
+functions then you will need to provide your own wrapper header that:
+
+* Provides std::numeric_limits<__float128> support.
+* Provides overloads of the standard library math function for type __float128 and which forward to the libquadmath equivalents.
+
+Ultimately these facilities should be provided by GCC and libstdc++.
+
+[endsect]
 
 [section:use_mpfr Using With MPFR or GMP - High-Precision Floating-Point Library]
 

Modified: trunk/libs/math/doc/sf_and_dist/constants.qbk
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/constants.qbk (original)
+++ trunk/libs/math/doc/sf_and_dist/constants.qbk 2013-03-07 05:14:18 EST (Thu, 07 Mar 2013)
@@ -170,6 +170,10 @@
    * If the precision is less than or equal to that of a `long double` and the type is constructable from a `long double`
      then our code returns a `long double` literal. If the user-defined type is a literal type
      then the function call that returns the constant will be a `constexp`.
+ * If the precision is less than or equal to that of a `__float128` (and the compiler supports such a type)
+ and the type is constructable from a `__float128`
+ then our code returns a `__float128` literal. If the user-defined type is a literal type
+ then the function call that returns the constant will be a `constexp`.
    * If the precision is less than 100 decimal digits, then the constant will be constructed
       (just the once, then cached in a thread-safe manner) from a string representation of the constant.
       In this case the value is returned as a const reference to the cached value.

Modified: trunk/libs/math/doc/sf_and_dist/html/index.html
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/html/index.html (original)
+++ trunk/libs/math/doc/sf_and_dist/html/index.html 2013-03-07 05:14:18 EST (Thu, 07 Mar 2013)
@@ -493,6 +493,8 @@
         use a high-precision library rather than built-in floating-point types?</a></span></dt>
 <dt><span class="section"><a href="math_toolkit/using_udt/high_precision/use_multiprecision.html">Using
         Boost.Multiprecision</a></span></dt>
+<dt><span class="section"><a href="math_toolkit/using_udt/high_precision/float128.html">Using
+ with GCC's __float128 datatype</a></span></dt>
 <dt><span class="section"><a href="math_toolkit/using_udt/high_precision/use_mpfr.html">Using
         With MPFR or GMP - High-Precision Floating-Point Library</a></span></dt>
 <dt><span class="section"><a href="math_toolkit/using_udt/high_precision/e_float.html">Using
@@ -597,7 +599,7 @@
   </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: February 15, 2013 at 18:45:01 GMT</small></p></td>
+<td align="left"><p><small>Last revised: March 07, 2013 at 09:36:37 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>

Modified: trunk/libs/math/doc/sf_and_dist/html/index/s13.html
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/html/index/s13.html (original)
+++ trunk/libs/math/doc/sf_and_dist/html/index/s13.html 2013-03-07 05:14:18 EST (Thu, 07 Mar 2013)
@@ -22,9 +22,9 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../math_toolkit/status/credits.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="s14.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section id1362252">
+<div class="section id1346486">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id1362252"></a>Function Index</h2></div></div></div>
+<a name="id1346486"></a>Function Index</h2></div></div></div>
 <p><a class="link" href="s13.html#idx_id_0">A</a> <a class="link" href="s13.html#idx_id_1">B</a> <a class="link" href="s13.html#idx_id_2">C</a> <a class="link" href="s13.html#idx_id_3">D</a> <a class="link" href="s13.html#idx_id_4">E</a> <a class="link" href="s13.html#idx_id_5">F</a> <a class="link" href="s13.html#idx_id_6">G</a> <a class="link" href="s13.html#idx_id_7">H</a> <a class="link" href="s13.html#idx_id_8">I</a> <a class="link" href="s13.html#idx_id_9">J</a> <a class="link" href="s13.html#idx_id_10">K</a> <a class="link" href="s13.html#idx_id_11">L</a> <a class="link" href="s13.html#idx_id_12">M</a> <a class="link" href="s13.html#idx_id_13">N</a> <a class="link" href="s13.html#idx_id_14">O</a> <a class="link" href="s13.html#idx_id_15">P</a> <a class="link" href="s13.html#idx_id_16">Q</a> <a class="link" href="s13.html#idx_id_17">R</a> <a class="link" href="s13.html#idx_id_18">S</a> <a class="link" href="s13.html#idx_id_19">T</a> <a class="link" href="s13.html#idx_id_20">U</a> <a class="link" href=
"s13.html#idx_id_21">V</a> <a class="link" href="s13.html#idx_id_22">W</a> <a class="link" href="s13.html#idx_id_23">Z</a></p>
 <div class="variablelist"><dl class="variablelist">
 <dt>
@@ -460,6 +460,10 @@
 </ul></div>
 </li>
 <li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_bessel_j_zero</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special/bessel/bessel0.html" title="Finding Zeros of Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">Finding Zeros of Bessel Functions of the First and Second Kinds</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">cyl_bessel_k</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
@@ -509,6 +513,10 @@
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
 </ul></div>
 </li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_neumann_zero</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special/bessel/bessel0.html" title="Finding Zeros of Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">Finding Zeros of Bessel Functions of the First and Second Kinds</span></a></p></li></ul></div>
+</li>
 </ul></div></dd>
 <dt>
 <a name="idx_id_3"></a><span class="term">D</span>
@@ -772,7 +780,7 @@
 </li>
 <li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">e_float</span></p>
-<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/using_udt/e_float.html" title="e_float Support"><span class="index-entry-level-1">e_float Support</span></a></p></li></ul></div>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/using_udt/high_precision/e_float.html" title="Using e_float Library"><span class="index-entry-level-1">Using e_float Library</span></a></p></li></ul></div>
 </li>
 </ul></div></dd>
 <dt>
@@ -986,7 +994,7 @@
 <p><span class="index-entry-level-0">get</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/constants/new_const.html" title="Defining New Constants"><span class="index-entry-level-1">Defining New Constants</span></a></p></li>
-<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/constants/tutorial/user_def.html" title="Use With User Defined Types"><span class="index-entry-level-1">Use With User Defined Types</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/constants/tutorial/user_def.html" title="Use With User-Defined Types"><span class="index-entry-level-1">Use With User-Defined Types</span></a></p></li>
 </ul></div>
 </li>
 <li class="listitem" style="list-style-type: none">
@@ -1611,6 +1619,7 @@
 <li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">mean</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/stat_tut/weg/dist_construct_eg.html" title="Distribution Construction Examples"><span class="index-entry-level-1">Distribution Construction Examples</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html" title="Find Location (Mean) Example"><span class="index-entry-level-1">Find Location (Mean) Example</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html" title="Find Scale (Standard Deviation) Example"><span class="index-entry-level-1">Find Scale (Standard Deviation) Example</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/dist_ref/dists/geometric_dist.html" title="Geometric Distribution"><span class="index-entry-level-1">Geometric Distribution</span></a></p></li>
@@ -1923,10 +1932,6 @@
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
 </ul></div>
 </li>
-<li class="listitem" style="list-style-type: none">
-<p><span class="index-entry-level-0">RR</span></p>
-<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/stat_tut/weg/dist_construct_eg.html" title="Distribution Construction Example"><span class="index-entry-level-1">Distribution Construction Example</span></a></p></li></ul></div>
-</li>
 </ul></div></dd>
 <dt>
 <a name="idx_id_18"></a><span class="term">S</span>
@@ -2360,9 +2365,9 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012 John Maddock, Paul A. Bristow, Hubert Holin, Xiaogang
- Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs van den Berg and Benjamin
- Sobotta<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: trunk/libs/math/doc/sf_and_dist/html/index/s14.html
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/html/index/s14.html (original)
+++ trunk/libs/math/doc/sf_and_dist/html/index/s14.html 2013-03-07 05:14:18 EST (Thu, 07 Mar 2013)
@@ -22,9 +22,9 @@
 <div class="spirit-nav">
 <a accesskey="p" href="s13.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="s15.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section id1378718">
+<div class="section id1363831">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id1378718"></a>Class Index</h2></div></div></div>
+<a name="id1363831"></a>Class Index</h2></div></div></div>
 <p><a class="link" href="s14.html#idx_id_25">B</a> <a class="link" href="s14.html#idx_id_26">C</a> <a class="link" href="s14.html#idx_id_27">D</a> <a class="link" href="s14.html#idx_id_28">E</a> <a class="link" href="s14.html#idx_id_29">F</a> <a class="link" href="s14.html#idx_id_30">G</a> <a class="link" href="s14.html#idx_id_31">H</a> <a class="link" href="s14.html#idx_id_32">I</a> <a class="link" href="s14.html#idx_id_35">L</a> <a class="link" href="s14.html#idx_id_36">M</a> <a class="link" href="s14.html#idx_id_37">N</a> <a class="link" href="s14.html#idx_id_39">P</a> <a class="link" href="s14.html#idx_id_41">R</a> <a class="link" href="s14.html#idx_id_42">S</a> <a class="link" href="s14.html#idx_id_43">T</a> <a class="link" href="s14.html#idx_id_44">U</a> <a class="link" href="s14.html#idx_id_46">W</a></p>
 <div class="variablelist"><dl class="variablelist">
 <dt>
@@ -46,7 +46,7 @@
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution"><span class="index-entry-level-0">chi_squared_distribution</span></a></p></li>
 <li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">construction_traits</span></p>
-<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/constants/tutorial/user_def.html" title="Use With User Defined Types"><span class="index-entry-level-1">Use With User Defined Types</span></a></p></li></ul></div>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/constants/tutorial/user_def.html" title="Use With User-Defined Types"><span class="index-entry-level-1">Use With User-Defined Types</span></a></p></li></ul></div>
 </li>
 </ul></div></dd>
 <dt>
@@ -230,9 +230,9 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012 John Maddock, Paul A. Bristow, Hubert Holin, Xiaogang
- Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs van den Berg and Benjamin
- Sobotta<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: trunk/libs/math/doc/sf_and_dist/html/index/s15.html
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/html/index/s15.html (original)
+++ trunk/libs/math/doc/sf_and_dist/html/index/s15.html 2013-03-07 05:14:18 EST (Thu, 07 Mar 2013)
@@ -22,9 +22,9 @@
 <div class="spirit-nav">
 <a accesskey="p" href="s14.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="s16.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section id1381434">
+<div class="section id1364772">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id1381434"></a>Typedef Index</h2></div></div></div>
+<a name="id1364772"></a>Typedef Index</h2></div></div></div>
 <p><a class="link" href="s15.html#idx_id_48">A</a> <a class="link" href="s15.html#idx_id_49">B</a> <a class="link" href="s15.html#idx_id_50">C</a> <a class="link" href="s15.html#idx_id_51">D</a> <a class="link" href="s15.html#idx_id_52">E</a> <a class="link" href="s15.html#idx_id_53">F</a> <a class="link" href="s15.html#idx_id_54">G</a> <a class="link" href="s15.html#idx_id_55">H</a> <a class="link" href="s15.html#idx_id_56">I</a> <a class="link" href="s15.html#idx_id_59">L</a> <a class="link" href="s15.html#idx_id_61">N</a> <a class="link" href="s15.html#idx_id_62">O</a> <a class="link" href="s15.html#idx_id_63">P</a> <a class="link" href="s15.html#idx_id_65">R</a> <a class="link" href="s15.html#idx_id_66">S</a> <a class="link" href="s15.html#idx_id_67">T</a> <a class="link" href="s15.html#idx_id_68">U</a> <a class="link" href="s15.html#idx_id_69">V</a> <a class="link" href="s15.html#idx_id_70">W</a></p>
 <div class="variablelist"><dl class="variablelist">
 <dt>
@@ -197,7 +197,7 @@
 <li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">negative_binomial</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; ">
-<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/stat_tut/weg/dist_construct_eg.html" title="Distribution Construction Example"><span class="index-entry-level-1">Distribution Construction Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/stat_tut/weg/dist_construct_eg.html" title="Distribution Construction Examples"><span class="index-entry-level-1">Distribution Construction Examples</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">Negative Binomial Distribution</span></a></p></li>
 </ul></div>
 </li>
@@ -390,9 +390,9 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012 John Maddock, Paul A. Bristow, Hubert Holin, Xiaogang
- Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs van den Berg and Benjamin
- Sobotta<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: trunk/libs/math/doc/sf_and_dist/html/index/s16.html
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/html/index/s16.html (original)
+++ trunk/libs/math/doc/sf_and_dist/html/index/s16.html 2013-03-07 05:14:18 EST (Thu, 07 Mar 2013)
@@ -22,9 +22,9 @@
 <div class="spirit-nav">
 <a accesskey="p" href="s15.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="s17.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section id1383251">
+<div class="section id1367681">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id1383251"></a>Macro Index</h2></div></div></div>
+<a name="id1367681"></a>Macro Index</h2></div></div></div>
 <p><a class="link" href="s16.html#idx_id_73">B</a> <a class="link" href="s16.html#idx_id_77">F</a></p>
 <div class="variablelist"><dl class="variablelist">
 <dt>
@@ -288,9 +288,9 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012 John Maddock, Paul A. Bristow, Hubert Holin, Xiaogang
- Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs van den Berg and Benjamin
- Sobotta<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: trunk/libs/math/doc/sf_and_dist/html/index/s17.html
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/html/index/s17.html (original)
+++ trunk/libs/math/doc/sf_and_dist/html/index/s17.html 2013-03-07 05:14:18 EST (Thu, 07 Mar 2013)
@@ -21,9 +21,9 @@
 <div class="spirit-nav">
 <a accesskey="p" href="s16.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a>
 </div>
-<div class="section id893915">
+<div class="section id855986">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id893915"></a>Index</h2></div></div></div>
+<a name="id855986"></a>Index</h2></div></div></div>
 <p><a class="link" href="s17.html#idx_id_96">A</a> <a class="link" href="s17.html#idx_id_97">B</a> <a class="link" href="s17.html#idx_id_98">C</a> <a class="link" href="s17.html#idx_id_99">D</a> <a class="link" href="s17.html#idx_id_100">E</a> <a class="link" href="s17.html#idx_id_101">F</a> <a class="link" href="s17.html#idx_id_102">G</a> <a class="link" href="s17.html#idx_id_103">H</a> <a class="link" href="s17.html#idx_id_104">I</a> <a class="link" href="s17.html#idx_id_105">J</a> <a class="link" href="s17.html#idx_id_106">K</a> <a class="link" href="s17.html#idx_id_107">L</a> <a class="link" href="s17.html#idx_id_108">M</a> <a class="link" href="s17.html#idx_id_109">N</a> <a class="link" href="s17.html#idx_id_110">O</a> <a class="link" href="s17.html#idx_id_111">P</a> <a class="link" href="s17.html#idx_id_112">Q</a> <a class="link" href="s17.html#idx_id_113">R</a> <a class="link" href="s17.html#idx_id_114">S</a> <a class="link" href="s17.html#idx_id_115">T</a> <a class="link" href="s17.html#idx_id_116">
U</a> <a class="link" href="s17.html#idx_id_117">V</a> <a class="link" href="s17.html#idx_id_118">W</a> <a class="link" href="s17.html#idx_id_119">Z</a></p>
 <div class="variablelist"><dl class="variablelist">
 <dt>
@@ -1321,13 +1321,16 @@
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/dist_ref/dists/uniform_dist.html" title="Uniform Distribution"><span class="index-entry-level-1">Uniform Distribution</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/constants/tutorial/non_templ.html" title="Use in non-template code"><span class="index-entry-level-1">Use in non-template code</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/constants/tutorial/templ.html" title="Use in template code"><span class="index-entry-level-1">Use in template code</span></a></p></li>
-<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/constants/tutorial/user_def.html" title="Use With User Defined Types"><span class="index-entry-level-1">Use With User Defined Types</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/constants/tutorial/user_def.html" title="Use With User-Defined Types"><span class="index-entry-level-1">Use With User-Defined Types</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/using_udt/high_precision.html" title="Using Boost.Math with High-Precision Floating-Point Libraries"><span class="index-entry-level-1">Using Boost.Math with High-Precision Floating-Point Libraries</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/using_udt/high_precision/use_multiprecision.html" title="Using Boost.Multiprecision"><span class="index-entry-level-1">Using Boost.Multiprecision</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/using_udt/high_precision/float128.html" title="Using with GCC's __float128 datatype"><span class="index-entry-level-1">Using with GCC's __float128 datatype</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/dist_ref/dists/weibull_dist.html" title="Weibull Distribution"><span class="index-entry-level-1">Weibull Distribution</span></a></p></li>
 </ul></div>
 </li>
 <li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">construction_traits</span></p>
-<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/constants/tutorial/user_def.html" title="Use With User Defined Types"><span class="index-entry-level-1">Use With User Defined Types</span></a></p></li></ul></div>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/constants/tutorial/user_def.html" title="Use With User-Defined Types"><span class="index-entry-level-1">Use With User-Defined Types</span></a></p></li></ul></div>
 </li>
 <li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">Continued Fraction Evaluation</span></p>
@@ -1433,6 +1436,10 @@
 </ul></div>
 </li>
 <li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_bessel_j_zero</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special/bessel/bessel0.html" title="Finding Zeros of Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">Finding Zeros of Bessel Functions of the First and Second Kinds</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">cyl_bessel_k</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/main_overview/tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
@@ -1482,6 +1489,10 @@
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/tr1_ref.html" title="TR1 C Functions Quick Reference"><span class="index-entry-level-1">TR1 C Functions Quick Reference</span></a></p></li>
 </ul></div>
 </li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">cyl_neumann_zero</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special/bessel/bessel0.html" title="Finding Zeros of Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">Finding Zeros of Bessel Functions of the First and Second Kinds</span></a></p></li></ul></div>
+</li>
 </ul></div></dd>
 <dt>
 <a name="idx_id_99"></a><span class="term">D</span>
@@ -1887,12 +1898,11 @@
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/stat_tut/weg/geometric_eg.html" title="Geometric Distribution Examples"><span class="index-entry-level-1">expression</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/stat_tut/weg/error_eg.html" title="Error Handling Example"><span class="index-entry-level-1">infinity</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html" title="Find Location (Mean) Example"><span class="index-entry-level-1">location</span></a></p></li>
-<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html" title="Find Location (Mean) Example"><span class="index-entry-level-1">mean</span></a></p></li>
-<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/stat_tut/weg/dist_construct_eg.html" title="Distribution Construction Example"><span class="index-entry-level-1">negative_binomial</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/stat_tut/weg/dist_construct_eg.html" title="Distribution Construction Examples"><span class="index-entry-level-1">mean</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/stat_tut/weg/dist_construct_eg.html" title="Distribution Construction Examples"><span class="index-entry-level-1">negative_binomial</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/stat_tut/weg/geometric_eg.html" title="Geometric Distribution Examples"><span class="index-entry-level-1">normal</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/stat_tut/weg/geometric_eg.html" title="Geometric Distribution Examples"><span class="index-entry-level-1">pdf</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/stat_tut/weg/neg_binom_eg/negative_binomial_example1.html" title="Negative Binomial Sales Quota Example."><span class="index-entry-level-1">quantile</span></a></p></li>
-<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/stat_tut/weg/dist_construct_eg.html" title="Distribution Construction Example"><span class="index-entry-level-1">RR</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/stat_tut/weg/inverse_chi_squared_eg.html" title="Inverse Chi-Squared Distribution Bayes Example"><span class="index-entry-level-1">scale</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html" title="Find Location (Mean) Example"><span class="index-entry-level-1">standard_deviation</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html" title="Some Miscellaneous Examples of the Normal (Gaussian) Distribution"><span class="index-entry-level-1">test</span></a></p></li>
@@ -2036,7 +2046,8 @@
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/backgrounders/remez.html" title="The Remez Method"><span class="index-entry-level-1">The Remez Method</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/dist_ref/dists/triangular_dist.html" title="Triangular Distribution"><span class="index-entry-level-1">Triangular Distribution</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/constants/tutorial/templ.html" title="Use in template code"><span class="index-entry-level-1">Use in template code</span></a></p></li>
-<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/using_udt/use_mpfr.html" title="Using With MPFR / GMP - a High-Precision Floating-Point Library"><span class="index-entry-level-1">Using With MPFR / GMP - a High-Precision Floating-Point Library</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/using_udt/high_precision/use_mpfr.html" title="Using With MPFR or GMP - High-Precision Floating-Point Library"><span class="index-entry-level-1">Using With MPFR or GMP - High-Precision Floating-Point Library</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/using_udt/high_precision/using_test.html" title="Using without expression templates for Boost.Test and others"><span class="index-entry-level-1">Using without expression templates for Boost.Test and others</span></a></p></li>
 </ul></div>
 </li>
 <li class="listitem" style="list-style-type: none">
@@ -2061,11 +2072,7 @@
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/dist_ref/dists/extreme_dist.html" title="Extreme Value Distribution"><span class="index-entry-level-0">extreme_value_distribution</span></a></p></li>
 <li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">e_float</span></p>
-<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/using_udt/e_float.html" title="e_float Support"><span class="index-entry-level-1">e_float Support</span></a></p></li></ul></div>
-</li>
-<li class="listitem" style="list-style-type: none">
-<p><span class="index-entry-level-0">e_float Support</span></p>
-<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/using_udt/e_float.html" title="e_float Support"><span class="index-entry-level-1">e_float</span></a></p></li></ul></div>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/using_udt/high_precision/e_float.html" title="Using e_float Library"><span class="index-entry-level-1">Using e_float Library</span></a></p></li></ul></div>
 </li>
 </ul></div></dd>
 <dt>
@@ -2143,6 +2150,13 @@
 <div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/utils/next_float/float_prior.html" title="Finding the Next Smaller Representable Value (float_prior)"><span class="index-entry-level-1">float_prior</span></a></p></li></ul></div>
 </li>
 <li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Finding Zeros of Bessel Functions of the First and Second Kinds</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special/bessel/bessel0.html" title="Finding Zeros of Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">cyl_bessel_j_zero</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special/bessel/bessel0.html" title="Finding Zeros of Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">cyl_neumann_zero</span></a></p></li>
+</ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">find_beta</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">Beta Distribution</span></a></p></li></ul></div>
 </li>
@@ -2442,7 +2456,7 @@
 <p><span class="index-entry-level-0">get</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/constants/new_const.html" title="Defining New Constants"><span class="index-entry-level-1">Defining New Constants</span></a></p></li>
-<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/constants/tutorial/user_def.html" title="Use With User Defined Types"><span class="index-entry-level-1">Use With User Defined Types</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/constants/tutorial/user_def.html" title="Use With User-Defined Types"><span class="index-entry-level-1">Use With User-Defined Types</span></a></p></li>
 </ul></div>
 </li>
 <li class="listitem" style="list-style-type: none">
@@ -3058,8 +3072,8 @@
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/perf/tuning.html" title="Performance Tuning Macros"><span class="index-entry-level-1">Performance Tuning Macros</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/backgrounders/refs.html" title="References"><span class="index-entry-level-1">References</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/backgrounders/lanczos.html" title="The Lanczos Approximation"><span class="index-entry-level-1">The Lanczos Approximation</span></a></p></li>
-<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/using_udt/use_mpfr.html" title="Using With MPFR / GMP - a High-Precision Floating-Point Library"><span class="index-entry-level-1">Using With MPFR / GMP - a High-Precision Floating-Point Library</span></a></p></li>
-<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/using_udt/use_ntl.html" title="Using With NTL - a High-Precision Floating-Point Library"><span class="index-entry-level-1">Using With NTL - a High-Precision Floating-Point Library</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/using_udt/high_precision/use_ntl.html" title="Using NTL Library"><span class="index-entry-level-1">Using NTL Library</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/using_udt/high_precision/use_mpfr.html" title="Using With MPFR or GMP - High-Precision Floating-Point Library"><span class="index-entry-level-1">Using With MPFR or GMP - High-Precision Floating-Point Library</span></a></p></li>
 </ul></div>
 </li>
 <li class="listitem" style="list-style-type: none">
@@ -3432,6 +3446,7 @@
 <li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">mean</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; ">
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/stat_tut/weg/dist_construct_eg.html" title="Distribution Construction Examples"><span class="index-entry-level-1">Distribution Construction Examples</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html" title="Find Location (Mean) Example"><span class="index-entry-level-1">Find Location (Mean) Example</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html" title="Find Scale (Standard Deviation) Example"><span class="index-entry-level-1">Find Scale (Standard Deviation) Example</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/dist_ref/dists/geometric_dist.html" title="Geometric Distribution"><span class="index-entry-level-1">Geometric Distribution</span></a></p></li>
@@ -3549,7 +3564,7 @@
 <li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">negative_binomial</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; ">
-<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/stat_tut/weg/dist_construct_eg.html" title="Distribution Construction Example"><span class="index-entry-level-1">Distribution Construction Example</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/stat_tut/weg/dist_construct_eg.html" title="Distribution Construction Examples"><span class="index-entry-level-1">Distribution Construction Examples</span></a></p></li>
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-1">Negative Binomial Distribution</span></a></p></li>
 </ul></div>
 </li>
@@ -4155,10 +4170,6 @@
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/extern_c/c99.html" title="C99 C Functions"><span class="index-entry-level-1">C99 C Functions</span></a></p></li>
 </ul></div>
 </li>
-<li class="listitem" style="list-style-type: none">
-<p><span class="index-entry-level-0">RR</span></p>
-<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist/stat_tut/weg/dist_construct_eg.html" title="Distribution Construction Example"><span class="index-entry-level-1">Distribution Construction Example</span></a></p></li></ul></div>
-</li>
 </ul></div></dd>
 <dt>
 <a name="idx_id_114"></a><span class="term">S</span>
@@ -4727,11 +4738,11 @@
 </ul></div>
 </li>
 <li class="listitem" style="list-style-type: none">
-<p><span class="index-entry-level-0">Use With User Defined Types</span></p>
+<p><span class="index-entry-level-0">Use With User-Defined Types</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; ">
-<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/constants/tutorial/user_def.html" title="Use With User Defined Types"><span class="index-entry-level-1">constants</span></a></p></li>
-<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/constants/tutorial/user_def.html" title="Use With User Defined Types"><span class="index-entry-level-1">construction_traits</span></a></p></li>
-<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/constants/tutorial/user_def.html" title="Use With User Defined Types"><span class="index-entry-level-1">get</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/constants/tutorial/user_def.html" title="Use With User-Defined Types"><span class="index-entry-level-1">constants</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/constants/tutorial/user_def.html" title="Use With User-Defined Types"><span class="index-entry-level-1">construction_traits</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/constants/tutorial/user_def.html" title="Use With User-Defined Types"><span class="index-entry-level-1">get</span></a></p></li>
 </ul></div>
 </li>
 <li class="listitem" style="list-style-type: none">
@@ -4792,6 +4803,18 @@
 </ul></div>
 </li>
 <li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Using Boost.Math with High-Precision Floating-Point Libraries</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/using_udt/high_precision.html" title="Using Boost.Math with High-Precision Floating-Point Libraries"><span class="index-entry-level-1">constants</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Using Boost.Multiprecision</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/using_udt/high_precision/use_multiprecision.html" title="Using Boost.Multiprecision"><span class="index-entry-level-1">constants</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Using e_float Library</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/using_udt/high_precision/e_float.html" title="Using e_float Library"><span class="index-entry-level-1">e_float</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
 <p><span class="index-entry-level-0">Using Macros to Change the Policy Defaults</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; ">
 <li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/policy/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults"><span class="index-entry-level-1">BOOST_MATH_ASSERT_UNDEFINED_POLICY</span></a></p></li>
@@ -4812,15 +4835,23 @@
 </ul></div>
 </li>
 <li class="listitem" style="list-style-type: none">
-<p><span class="index-entry-level-0">Using With MPFR / GMP - a High-Precision Floating-Point Library</span></p>
+<p><span class="index-entry-level-0">Using NTL Library</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/using_udt/high_precision/use_ntl.html" title="Using NTL Library"><span class="index-entry-level-1">Lanczos approximation</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Using with GCC's __float128 datatype</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/using_udt/high_precision/float128.html" title="Using with GCC's __float128 datatype"><span class="index-entry-level-1">constants</span></a></p></li></ul></div>
+</li>
+<li class="listitem" style="list-style-type: none">
+<p><span class="index-entry-level-0">Using With MPFR or GMP - High-Precision Floating-Point Library</span></p>
 <div class="index"><ul class="index" style="list-style-type: none; ">
-<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/using_udt/use_mpfr.html" title="Using With MPFR / GMP - a High-Precision Floating-Point Library"><span class="index-entry-level-1">expression</span></a></p></li>
-<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/using_udt/use_mpfr.html" title="Using With MPFR / GMP - a High-Precision Floating-Point Library"><span class="index-entry-level-1">Lanczos approximation</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/using_udt/high_precision/use_mpfr.html" title="Using With MPFR or GMP - High-Precision Floating-Point Library"><span class="index-entry-level-1">expression</span></a></p></li>
+<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/using_udt/high_precision/use_mpfr.html" title="Using With MPFR or GMP - High-Precision Floating-Point Library"><span class="index-entry-level-1">Lanczos approximation</span></a></p></li>
 </ul></div>
 </li>
 <li class="listitem" style="list-style-type: none">
-<p><span class="index-entry-level-0">Using With NTL - a High-Precision Floating-Point Library</span></p>
-<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/using_udt/use_ntl.html" title="Using With NTL - a High-Precision Floating-Point Library"><span class="index-entry-level-1">Lanczos approximation</span></a></p></li></ul></div>
+<p><span class="index-entry-level-0">Using without expression templates for Boost.Test and others</span></p>
+<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/using_udt/high_precision/using_test.html" title="Using without expression templates for Boost.Test and others"><span class="index-entry-level-1">expression</span></a></p></li></ul></div>
 </li>
 </ul></div></dd>
 <dt>
@@ -4935,9 +4966,9 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012 John Maddock, Paul A. Bristow, Hubert Holin, Xiaogang
- Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs van den Berg and Benjamin
- Sobotta<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: trunk/libs/math/doc/sf_and_dist/html/math_toolkit/constants/tutorial/user_def.html
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/html/math_toolkit/constants/tutorial/user_def.html (original)
+++ trunk/libs/math/doc/sf_and_dist/html/math_toolkit/constants/tutorial/user_def.html 2013-03-07 05:14:18 EST (Thu, 07 Mar 2013)
@@ -79,6 +79,13 @@
                     function call that returns the constant will be a <code class="computeroutput"><span class="identifier">constexp</span></code>.
                   </li>
 <li class="listitem">
+ If the precision is less than or equal to that of a <code class="computeroutput"><span class="identifier">__float128</span></code> (and the compiler
+ supports such a type) and the type is constructable from a <code class="computeroutput"><span class="identifier">__float128</span></code> then our code returns
+ a <code class="computeroutput"><span class="identifier">__float128</span></code>
+ literal. If the user-defined type is a literal type then the
+ function call that returns the constant will be a <code class="computeroutput"><span class="identifier">constexp</span></code>.
+ </li>
+<li class="listitem">
                     If the precision is less than 100 decimal digits, then the constant
                     will be constructed (just the once, then cached in a thread-safe
                     manner) from a string representation of the constant. In this

Modified: trunk/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/conventions.html
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/conventions.html (original)
+++ trunk/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/conventions.html 2013-03-07 05:14:18 EST (Thu, 07 Mar 2013)
@@ -27,7 +27,7 @@
 <a name="math_toolkit.main_overview.conventions"></a><a class="link" href="conventions.html" title="Document Conventions">Document Conventions</a>
 </h3></div></div></div>
 <p>
- <a class="indexterm" name="id885176"></a>
+ <a class="indexterm" name="id848638"></a>
       </p>
 <p>
         This documentation aims to use of the following naming and formatting conventions.
@@ -69,9 +69,9 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012 John Maddock, Paul A. Bristow, Hubert Holin, Xiaogang
- Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs van den Berg and Benjamin
- Sobotta<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: trunk/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html (original)
+++ trunk/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html 2013-03-07 05:14:18 EST (Thu, 07 Mar 2013)
@@ -39,13 +39,40 @@
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem">
- Fixed constants to use a thread safe cache of computed values when used
+ Added many references to Boost.Multiprecision and <code class="computeroutput"><span class="identifier">cpp_dec_float_50</span></code>
+ as an example of a User-defined Type (UDT).
+ </li>
+<li class="listitem">
+ Added Clang to list of supported compilers.
+ </li>
+<li class="listitem">
+ Fixed constants to use a thread-safe cache of computed values when used
             at arbitrary precision.
           </li>
 <li class="listitem">
+ Added finding zeros of Bessel functions <code class="computeroutput"><span class="identifier">cyl_bessel_j_zero</span></code>,
+ <code class="computeroutput"><span class="identifier">cyl_neumann_zero</span></code>, <code class="computeroutput"><span class="identifier">air_ai_zeros</span></code> and <code class="computeroutput"><span class="identifier">air_bi_zeros</span></code>(by
+ Christopher Kormanyos).
+ </li>
+<li class="listitem">
             More accuracy improvements to the Bessel J and Y functions from Rocco
             Romeo.
           </li>
+<li class="listitem">
+ Fixed nasty cyclic dependency bug that caused some headers to not compile
+ #7999.
+ </li>
+<li class="listitem">
+ Fixed bug in <a class="link" href="../special/sf_gamma/tgamma.html" title="Gamma">tgamma</a>
+ that caused spurious overflow for arguments between 142.5 and 143.
+ </li>
+<li class="listitem">
+ Fixed bug in raise_rounding_error that caused it to return an incorrect
+ result when throwing an exception is turned off #7905.
+ </li>
+<li class="listitem">
+ Added minimal __float128 support.
+ </li>
 </ul></div>
 <h5>
 <a name="math_toolkit.main_overview.history1.h1"></a>
@@ -585,9 +612,9 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012 John Maddock, Paul A. Bristow, Hubert Holin, Xiaogang
- Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs van den Berg and Benjamin
- Sobotta<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: trunk/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html (original)
+++ trunk/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html 2013-03-07 05:14:18 EST (Thu, 07 Mar 2013)
@@ -27,7 +27,7 @@
 <a name="math_toolkit.main_overview.navigation"></a><a class="link" href="navigation.html" title="Navigation">Navigation</a>
 </h3></div></div></div>
 <p>
- <a class="indexterm" name="id885046"></a>
+ <a class="indexterm" name="id848509"></a>
       </p>
 <p>
         Boost.Math documentation is provided in both HTML and PDF formats.
@@ -87,9 +87,9 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012 John Maddock, Paul A. Bristow, Hubert Holin, Xiaogang
- Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs van den Berg and Benjamin
- Sobotta<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: trunk/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel0.html
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel0.html (original)
+++ trunk/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel0.html 2013-03-07 05:14:18 EST (Thu, 07 Mar 2013)
@@ -188,7 +188,7 @@
 <span class="keyword">inline</span> <span class="identifier">OutputIterator</span> <span class="identifier">cyl_bessel_j_zero</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">v</span><span class="special">,</span> <span class="comment">// Floating-point value for Jv.</span>
                               <span class="keyword">int</span> <span class="identifier">start_index</span><span class="special">,</span> <span class="comment">// 1-based start index.</span>
                               <span class="keyword">unsigned</span> <span class="identifier">number_of_zeros</span><span class="special">,</span>
- <span class="identifier">OutputIterator</span> <span class="identifier">out_it</span><span class="special">);</span> <span class="comment">// iterator into container for zeros. </span>
+ <span class="identifier">OutputIterator</span> <span class="identifier">out_it</span><span class="special">);</span> <span class="comment">// iterator into container for zeros.</span>
 </pre>
 <p>
           There is also a version which allows control of the <a class="link" href="../../policy.html" title="Policies">Policies</a>
@@ -199,7 +199,7 @@
                               <span class="keyword">int</span> <span class="identifier">start_index</span><span class="special">,</span> <span class="comment">// 1-based start index.</span>
                               <span class="keyword">unsigned</span> <span class="identifier">number_of_zeros</span><span class="special">,</span>
                               <span class="identifier">OutputIterator</span> <span class="identifier">out_it</span><span class="special">,</span>
- <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&amp;</span> <span class="identifier">pol</span><span class="special">);</span> <span class="comment">// iterator into container for zeros. </span>
+ <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&amp;</span> <span class="identifier">pol</span><span class="special">);</span> <span class="comment">// iterator into container for zeros.</span>
 </pre>
 <div class="tip"><table border="0" summary="Tip">
 <tr>
@@ -259,19 +259,21 @@
         </p>
 <p>
 </p>
-<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special">&lt;</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">domain_error</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">ignore_error</span><span class="special">&gt;,</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">overflow_error</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">ignore_error</span><span class="special">&gt;,</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">underflow_error</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">ignore_error</span><span class="special">&gt;,</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">denorm_error</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">ignore_error</span><span class="special">&gt;,</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">pole_error</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">ignore_error</span><span class="special">&gt;,</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">evaluation_error</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">ignore_error</span><span class="special">&gt;</span>
- <span class="special">&gt;</span> <span class="identifier">ignore_all_policy</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span>
+ <span class="special">&lt;</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">domain_error</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">ignore_error</span><span class="special">&gt;,</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">overflow_error</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">ignore_error</span><span class="special">&gt;,</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">underflow_error</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">ignore_error</span><span class="special">&gt;,</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">denorm_error</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">ignore_error</span><span class="special">&gt;,</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">pole_error</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">ignore_error</span><span class="special">&gt;,</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">evaluation_error</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">ignore_error</span><span class="special">&gt;</span>
+ <span class="special">&gt;</span> <span class="identifier">ignore_all_policy</span><span class="special">;</span>
 
   <span class="keyword">double</span> <span class="identifier">inf</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="keyword">double</span><span class="special">&gt;::</span><span class="identifier">infinity</span><span class="special">();</span>
   <span class="keyword">double</span> <span class="identifier">nan</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="keyword">double</span><span class="special">&gt;::</span><span class="identifier">quiet_NaN</span><span class="special">();</span>
 
- <span class="keyword">double</span> <span class="identifier">dodgy_root</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cyl_bessel_j_zero</span><span class="special">(-</span><span class="number">1.0</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">ignore_all_policy</span><span class="special">());</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"boost::math::cyl_bessel_j_zero(-1.0, 0) "</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+ <span class="keyword">double</span> <span class="identifier">dodgy_root</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cyl_bessel_j_zero</span><span class="special">(-</span><span class="number">1.0</span><span class="special">,</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">ignore_all_policy</span><span class="special">());</span>
   <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"boost::math::cyl_bessel_j_zero(-1.0, 1) "</span> <span class="special">&lt;&lt;</span> <span class="identifier">dodgy_root</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 1.#QNAN</span>
   <span class="keyword">double</span> <span class="identifier">inf_root</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cyl_bessel_j_zero</span><span class="special">(</span><span class="identifier">inf</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">ignore_all_policy</span><span class="special">());</span>
   <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"boost::math::cyl_bessel_j_zero(inf, 1) "</span> <span class="special">&lt;&lt;</span> <span class="identifier">inf_root</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 1.#QNAN</span>
@@ -321,9 +323,10 @@
 <span class="identifier">r</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cyl_bessel_j_zero</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span> <span class="number">20U</span><span class="special">);</span> <span class="comment">// 20th root.</span>
 <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"x = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">x</span> <span class="special">&lt;&lt;</span> <span class="string">", r = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">r</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
 
-<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">float_type</span><span class="special">&gt;</span> <span class="identifier">zeros</span><span class="special">(</span><span class="number">3</span><span class="special">);</span> <span class="comment">// Space for 3 roots.</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cyl_bessel_j_zero</span><span class="special">(</span><span class="identifier">float_type</span><span class="special">(</span><span class="number">71</span><span class="special">)</span> <span class="special">/</span> <span class="number">19</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="keyword">unsigned</span><span class="special">(</span><span class="identifier">zeros</span><span class="special">.</span><span class="identifier">size</span><span class="special">()),</span> <span class="identifier">zeros</span><span class="special">.</span><span class="identifier">begin</span><span class="special">());</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">float_type</span><span class="special">&gt;</span> <span class="identifier">zeros</span><span class="special">;</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cyl_bessel_j_zero</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="number">3</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">back_inserter</span><span class="special">(</span><span class="identifier">zeros</span><span class="special">));</span>
 
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"cyl_bessel_j_zeros"</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
 <span class="comment">// Print the roots to the output stream.</span>
 <span class="identifier">std</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span><span class="identifier">zeros</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">zeros</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span>
           <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream_iterator</span><span class="special">&lt;</span><span class="identifier">float_type</span><span class="special">&gt;(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">,</span> <span class="string">"\n"</span><span class="special">));</span>
@@ -336,11 +339,21 @@
 <p>
 </p>
 <pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cyl_neumann_zero</span><span class="special">;</span>
-<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"cyl_neumann_zero(2., 1) = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">cyl_neumann_zero</span><span class="special">(</span><span class="number">2.</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+
+<span class="keyword">double</span> <span class="identifier">zn</span> <span class="special">=</span> <span class="identifier">cyl_neumann_zero</span><span class="special">(</span><span class="number">2.</span><span class="special">,</span> <span class="number">1</span><span class="special">);</span>
+
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"cyl_neumann_zero(2., 1) = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">//double zn0 = zn;</span>
+<span class="comment">// std::cout &lt;&lt; "zn0 = " &lt;&lt; std::endl;</span>
+<span class="comment">// std::cout &lt;&lt; zn0 &lt;&lt; std::endl;</span>
+<span class="comment">//</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">zn</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">// std::cout &lt;&lt; cyl_neumann_zero(2., 1) &lt;&lt; std::endl;</span>
 
 <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="identifier">nzeros</span><span class="special">(</span><span class="number">3</span><span class="special">);</span> <span class="comment">// Space for 3 zeros.</span>
-<span class="identifier">cyl_neumann_zero</span><span class="special">(</span><span class="number">2.F</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="keyword">unsigned</span><span class="special">(</span><span class="identifier">nzeros</span><span class="special">.</span><span class="identifier">size</span><span class="special">()),</span> <span class="identifier">nzeros</span><span class="special">.</span><span class="identifier">begin</span><span class="special">());</span>
+<span class="identifier">cyl_neumann_zero</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;(</span><span class="number">2.F</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">nzeros</span><span class="special">.</span><span class="identifier">size</span><span class="special">(),</span> <span class="identifier">nzeros</span><span class="special">.</span><span class="identifier">begin</span><span class="special">());</span>
 
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"cyl_neumann_zero&lt;float&gt;(2.F, 1, "</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
 <span class="comment">// Print the zeros to the output stream.</span>
 <span class="identifier">std</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span><span class="identifier">nzeros</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">nzeros</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span>
           <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream_iterator</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">,</span> <span class="string">"\n"</span><span class="special">));</span>
@@ -412,13 +425,14 @@
 <p>
 </p>
 <pre class="programlisting"><span class="keyword">try</span>
-<span class="special">{</span> <span class="comment">// Try a negative order v.</span>
- <span class="keyword">float</span> <span class="identifier">dodgy_root</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cyl_bessel_j_zero</span><span class="special">(-</span><span class="number">1.F</span><span class="special">,</span> <span class="number">1</span><span class="special">);</span>
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"boost::math::cyl_bessel_j_zero(-1.F, 1) "</span> <span class="special">&lt;&lt;</span> <span class="identifier">dodgy_root</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="special">{</span> <span class="comment">// Try a negative rank m.</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"boost::math::cyl_bessel_j_zero(-1.F, -1) "</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+ <span class="keyword">float</span> <span class="identifier">dodgy_root</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cyl_bessel_j_zero</span><span class="special">(-</span><span class="number">1.F</span><span class="special">,</span> <span class="special">-</span><span class="number">1</span><span class="special">);</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"boost::math::cyl_bessel_j_zero(-1.F, -1) "</span> <span class="special">&lt;&lt;</span> <span class="identifier">dodgy_root</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
   <span class="comment">// Throw exception Error in function boost::math::cyl_bessel_j_zero&lt;double&gt;(double, int):</span>
   <span class="comment">// Order argument is -1, but must be &gt;= 0 !</span>
 <span class="special">}</span>
-<span class="keyword">catch</span> <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">exception</span> <span class="identifier">ex</span><span class="special">)</span>
+<span class="keyword">catch</span> <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">exception</span><span class="special">&amp;</span> <span class="identifier">ex</span><span class="special">)</span>
 <span class="special">{</span>
   <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Throw exception "</span> <span class="special">&lt;&lt;</span> <span class="identifier">ex</span><span class="special">.</span><span class="identifier">what</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
 <span class="special">}</span>

Modified: trunk/libs/math/doc/sf_and_dist/html/math_toolkit/status/history1.html
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/html/math_toolkit/status/history1.html (original)
+++ trunk/libs/math/doc/sf_and_dist/html/math_toolkit/status/history1.html 2013-03-07 05:14:18 EST (Thu, 07 Mar 2013)
@@ -38,13 +38,40 @@
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem">
- Fixed constants to use a thread safe cache of computed values when used
+ Added many references to Boost.Multiprecision and <code class="computeroutput"><span class="identifier">cpp_dec_float_50</span></code>
+ as an example of a User-defined Type (UDT).
+ </li>
+<li class="listitem">
+ Added Clang to list of supported compilers.
+ </li>
+<li class="listitem">
+ Fixed constants to use a thread-safe cache of computed values when used
             at arbitrary precision.
           </li>
 <li class="listitem">
+ Added finding zeros of Bessel functions <code class="computeroutput"><span class="identifier">cyl_bessel_j_zero</span></code>,
+ <code class="computeroutput"><span class="identifier">cyl_neumann_zero</span></code>, <code class="computeroutput"><span class="identifier">air_ai_zeros</span></code> and <code class="computeroutput"><span class="identifier">air_bi_zeros</span></code>(by
+ Christopher Kormanyos).
+ </li>
+<li class="listitem">
             More accuracy improvements to the Bessel J and Y functions from Rocco
             Romeo.
           </li>
+<li class="listitem">
+ Fixed nasty cyclic dependency bug that caused some headers to not compile
+ #7999.
+ </li>
+<li class="listitem">
+ Fixed bug in <a class="link" href="../special/sf_gamma/tgamma.html" title="Gamma">tgamma</a>
+ that caused spurious overflow for arguments between 142.5 and 143.
+ </li>
+<li class="listitem">
+ Fixed bug in raise_rounding_error that caused it to return an incorrect
+ result when throwing an exception is turned off #7905.
+ </li>
+<li class="listitem">
+ Added minimal __float128 support.
+ </li>
 </ul></div>
 <h5>
 <a name="math_toolkit.status.history1.h1"></a>
@@ -584,9 +611,9 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012 John Maddock, Paul A. Bristow, Hubert Holin, Xiaogang
- Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs van den Berg and Benjamin
- Sobotta<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: trunk/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt.html
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt.html (original)
+++ trunk/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt.html 2013-03-07 05:14:18 EST (Thu, 07 Mar 2013)
@@ -35,6 +35,8 @@
         use a high-precision library rather than built-in floating-point types?</a></span></dt>
 <dt><span class="section"><a href="using_udt/high_precision/use_multiprecision.html">Using
         Boost.Multiprecision</a></span></dt>
+<dt><span class="section"><a href="using_udt/high_precision/float128.html">Using
+ with GCC's __float128 datatype</a></span></dt>
 <dt><span class="section"><a href="using_udt/high_precision/use_mpfr.html">Using
         With MPFR or GMP - High-Precision Floating-Point Library</a></span></dt>
 <dt><span class="section"><a href="using_udt/high_precision/e_float.html">Using

Added: trunk/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/high_precision.html
==============================================================================
--- (empty file)
+++ trunk/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/high_precision.html 2013-03-07 05:14:18 EST (Thu, 07 Mar 2013)
@@ -0,0 +1,112 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Using Boost.Math with High-Precision Floating-Point Libraries</title>
+<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Math Toolkit">
+<link rel="up" href="../using_udt.html" title="Use with User-Defined Floating-Point Types">
+<link rel="prev" href="../using_udt.html" title="Use with User-Defined Floating-Point Types">
+<link rel="next" href="high_precision/why_high_precision.html" title="Why use a high-precision library rather than built-in floating-point types?">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../using_udt.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../using_udt.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="high_precision/why_high_precision.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_using_udt_high_precision">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="math_toolkit.using_udt.high_precision"></a><a class="link" href="high_precision.html" title="Using Boost.Math with High-Precision Floating-Point Libraries">Using Boost.Math
+ with High-Precision Floating-Point Libraries</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="high_precision/why_high_precision.html">Why
+ use a high-precision library rather than built-in floating-point types?</a></span></dt>
+<dt><span class="section"><a href="high_precision/use_multiprecision.html">Using
+ Boost.Multiprecision</a></span></dt>
+<dt><span class="section"><a href="high_precision/float128.html">Using
+ with GCC's __float128 datatype</a></span></dt>
+<dt><span class="section"><a href="high_precision/use_mpfr.html">Using
+ With MPFR or GMP - High-Precision Floating-Point Library</a></span></dt>
+<dt><span class="section"><a href="high_precision/e_float.html">Using
+ e_float Library</a></span></dt>
+<dt><span class="section"><a href="high_precision/use_ntl.html">Using
+ NTL Library</a></span></dt>
+<dt><span class="section"><a href="high_precision/using_test.html">Using
+ without expression templates for Boost.Test and others</a></span></dt>
+</dl></div>
+<p>
+ The special functions, distributions, constants and tools in this library
+ can be used with a number of high-precision libraries, including:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+ Boost.Multiprecision
+ </li>
+<li class="listitem">
+ e_float (TOMS Algorithm 910)
+ </li>
+<li class="listitem">
+ <a href="http://www.shoup.net/ntl/" target="_top">NTL A Library for doing Number
+ Theory</a>
+ </li>
+<li class="listitem">
+ GNU Multiple Precision Arithmetic Library
+ </li>
+<li class="listitem">
+ GNU MPFR library
+ </li>
+<li class="listitem">
+ __float128
+ </li>
+</ul></div>
+<p>
+ The last four have some license restrictions; only Boost.Multiprecision
+ when using the <code class="computeroutput"><span class="identifier">cpp_float</span></code>
+ backend can provide an unrestricted Boost
+ license.
+ </p>
+<p>
+ At present, the price of a free license is slightly lower speed.
+ </p>
+<p>
+ Of course, the main cost of higher precision is very much decreased (usually
+ at least hundred-fold) computation speed, and big increases in memory use.
+ </p>
+<p>
+ Some libraries offer true <a href="http://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic" target="_top">arbitrary
+ precision arithmetic</a> where the precision is limited only by avilable
+ memory and compute time, but most are used at some arbitrarily-fixed precision,
+ say 100 decimal digits.
+ </p>
+<p>
+ Boost.Multiprecision
+ can operate in both ways, but the most popular choice is likely to be about
+ a hundred decimal digits, though examples of computing tens of thousands
+ of digits have been demonstrated.
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../using_udt.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../using_udt.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="high_precision/why_high_precision.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/high_precision/e_float.html
==============================================================================
--- (empty file)
+++ trunk/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/high_precision/e_float.html 2013-03-07 05:14:18 EST (Thu, 07 Mar 2013)
@@ -0,0 +1,69 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Using e_float Library</title>
+<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../high_precision.html" title="Using Boost.Math with High-Precision Floating-Point Libraries">
+<link rel="prev" href="use_mpfr.html" title="Using With MPFR or GMP - High-Precision Floating-Point Library">
+<link rel="next" href="use_ntl.html" title="Using NTL Library">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="use_mpfr.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../high_precision.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="use_ntl.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_using_udt_high_precision_e_float">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.using_udt.high_precision.e_float"></a><a class="link" href="e_float.html" title="Using e_float Library">Using
+ e_float Library</a>
+</h4></div></div></div>
+<p>
+ Boost.Multiprecision
+ was a development from the <a href="http://calgo.acm.org/910.zip" target="_top">e_float
+ (TOMS Algorithm 910)</a> library by Christopher Kormanyos.
+ </p>
+<p>
+ e_float can still be used with Boost.Math library via the header:
+ </p>
+<pre class="programlisting"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">bindings</span><span class="special">/</span><span class="identifier">e_float</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+</pre>
+<p>
+ And the type <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">ef</span><span class="special">::</span><span class="identifier">e_float</span></code>: this type is a thin wrapper
+ class around ::e_float which provides the necessary syntactic sugar to
+ make everything "just work".
+ </p>
+<p>
+ There is also a concept checking test program for e_float support here.
+ </p>
+<p>
+ <span class="bold"><strong>New projects are recommended to use Boost.Multiprecision
+ with <code class="computeroutput"><span class="identifier">cpp_float</span></code> backend
+ instead.</strong></span>
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="use_mpfr.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../high_precision.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="use_ntl.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/high_precision/float128.html
==============================================================================
--- (empty file)
+++ trunk/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/high_precision/float128.html 2013-03-07 05:14:18 EST (Thu, 07 Mar 2013)
@@ -0,0 +1,65 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Using with GCC's __float128 datatype</title>
+<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../high_precision.html" title="Using Boost.Math with High-Precision Floating-Point Libraries">
+<link rel="prev" href="use_multiprecision.html" title="Using Boost.Multiprecision">
+<link rel="next" href="use_mpfr.html" title="Using With MPFR or GMP - High-Precision Floating-Point Library">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="use_multiprecision.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../high_precision.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="use_mpfr.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_using_udt_high_precision_float128">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.using_udt.high_precision.float128"></a><a class="link" href="float128.html" title="Using with GCC's __float128 datatype">Using
+ with GCC's __float128 datatype</a>
+</h4></div></div></div>
+<p>
+ At present support for GCC's native <code class="computeroutput"><span class="identifier">__float128</span></code>
+ datatype is extremely limited: the numeric constants will all work with
+ that type, and that's about it. If you want to use the distributions or
+ special functions then you will need to provide your own wrapper header
+ that:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+ Provides std::numeric_limits&lt;__float128&gt; support.
+ </li>
+<li class="listitem">
+ Provides overloads of the standard library math function for type __float128
+ and which forward to the libquadmath equivalents.
+ </li>
+</ul></div>
+<p>
+ Ultimately these facilities should be provided by GCC and libstdc++.
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="use_multiprecision.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../high_precision.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="use_mpfr.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/high_precision/use_mpfr.html
==============================================================================
--- (empty file)
+++ trunk/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/high_precision/use_mpfr.html 2013-03-07 05:14:18 EST (Thu, 07 Mar 2013)
@@ -0,0 +1,115 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Using With MPFR or GMP - High-Precision Floating-Point Library</title>
+<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../high_precision.html" title="Using Boost.Math with High-Precision Floating-Point Libraries">
+<link rel="prev" href="float128.html" title="Using with GCC's __float128 datatype">
+<link rel="next" href="e_float.html" title="Using e_float Library">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="float128.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../high_precision.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="e_float.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_using_udt_high_precision_use_mpfr">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.using_udt.high_precision.use_mpfr"></a><a class="link" href="use_mpfr.html" title="Using With MPFR or GMP - High-Precision Floating-Point Library">Using
+ With MPFR or GMP - High-Precision Floating-Point Library</a>
+</h4></div></div></div>
+<p>
+ The special functions and tools in this library can be used with MPFR (an arbitrary precision number type
+ based on the <a href="http://gmplib.org/" target="_top">GNU Multiple Precision Arithmetic
+ Library</a>), either via the bindings in boost/math/bindings/mpfr.hpp,
+ or via boost/math/bindings/mpreal.hpp.
+ </p>
+<p>
+ <span class="bold"><strong>New projects are recommended to use Boost.Multiprecision
+ with GMP/MPFR backend instead.</strong></span>
+ </p>
+<p>
+ In order to use these bindings you will need to have installed MPFR
+ plus its dependency the GMP library.
+ You will also need one of the two supported C++ wrappers for MPFR: gmpfrxx (or mpfr_class),
+ or mpfr-C++ (mpreal).
+ </p>
+<p>
+ Unfortunately neither <code class="computeroutput"><span class="identifier">mpfr_class</span></code>
+ nor <code class="computeroutput"><span class="identifier">mpreal</span></code> quite satisfy
+ our conceptual requirements, so there is a very thin set of additional
+ interfaces and some helper traits defined in boost/math/bindings/mpfr.hpp
+ and boost/math/bindings/mpreal.hpp
+ that you should use in place of including 'gmpfrxx.h' or 'mpreal.h' directly.
+ The classes <code class="computeroutput"><span class="identifier">mpfr_class</span></code>
+ or <code class="computeroutput"><span class="identifier">mpreal</span></code> are then usable
+ unchanged once this header is included, so for example <code class="computeroutput"><span class="identifier">mpfr_class</span></code>'s
+ performance-enhancing expression templates are preserved and fully supported
+ by this library:
+ </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">bindings</span><span class="special">/</span><span class="identifier">mpfr</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="identifier">mpfr_class</span><span class="special">::</span><span class="identifier">set_dprec</span><span class="special">(</span><span class="number">500</span><span class="special">);</span> <span class="comment">// 500 bit precision</span>
+ <span class="comment">//</span>
+ <span class="comment">// Note that the argument to tgamma is</span>
+ <span class="comment">// an expression template - that's just fine here.</span>
+ <span class="comment">//</span>
+ <span class="identifier">mpfr_class</span> <span class="identifier">v</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">sqrt</span><span class="special">(</span><span class="identifier">mpfr_class</span><span class="special">(</span><span class="number">2</span><span class="special">)));</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">setprecision</span><span class="special">(</span><span class="number">50</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">v</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ Alternatively use with <code class="computeroutput"><span class="identifier">mpreal</span></code>
+ would look like:
+ </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">bindings</span><span class="special">/</span><span class="identifier">mpreal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="identifier">mpfr</span><span class="special">::</span><span class="identifier">mpreal</span><span class="special">::</span><span class="identifier">set_precision</span><span class="special">(</span><span class="number">500</span><span class="special">);</span> <span class="comment">// 500 bit precision</span>
+ <span class="identifier">mpfr</span><span class="special">::</span><span class="identifier">mpreal</span> <span class="identifier">v</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">sqrt</span><span class="special">(</span><span class="identifier">mpfr</span><span class="special">::</span><span class="identifier">mpreal</span><span class="special">(</span><span class="number">2</span><span class="special">)));</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">setprecision</span><span class="special">(</span><span class="number">50</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">v</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ For those functions that are based upon the <a class="link" href="../../backgrounders/lanczos.html" title="The Lanczos Approximation">Lanczos
+ approximation</a>, the bindings defines a series of approximations with
+ up to 61 terms and accuracy up to approximately 3e-113. This therefore
+ sets the upper limit for accuracy to the majority of functions defined
+ this library when used with either <code class="computeroutput"><span class="identifier">mpfr_class</span></code>
+ or <code class="computeroutput"><span class="identifier">mpreal</span></code>.
+ </p>
+<p>
+ There is a concept checking test program for mpfr support here
+ and here.
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="float128.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../high_precision.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="e_float.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/high_precision/use_multiprecision.html
==============================================================================
--- (empty file)
+++ trunk/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/high_precision/use_multiprecision.html 2013-03-07 05:14:18 EST (Thu, 07 Mar 2013)
@@ -0,0 +1,412 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Using Boost.Multiprecision</title>
+<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../high_precision.html" title="Using Boost.Math with High-Precision Floating-Point Libraries">
+<link rel="prev" href="why_high_precision.html" title="Why use a high-precision library rather than built-in floating-point types?">
+<link rel="next" href="float128.html" title="Using with GCC's __float128 datatype">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="why_high_precision.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../high_precision.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="float128.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_using_udt_high_precision_use_multiprecision">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.using_udt.high_precision.use_multiprecision"></a><a class="link" href="use_multiprecision.html" title="Using Boost.Multiprecision">Using
+ Boost.Multiprecision</a>
+</h4></div></div></div>
+<p>
+ <span class="bold"><strong>All new projects are recommended to use Boost.Multiprecision.</strong></span>
+ </p>
+<h6>
+<a name="math_toolkit.using_udt.high_precision.use_multiprecision.h0"></a>
+ <span class="phrase"><a name="math_toolkit.using_udt.high_precision.use_multiprecision.using_boost_multiprecision__code__phrase_role__identifier__cpp_float__phrase___code__for_numerical_calculations_with_high_precision_"></a></span><a class="link" href="use_multiprecision.html#math_toolkit.using_udt.high_precision.use_multiprecision.using_boost_multiprecision__code__phrase_role__identifier__cpp_float__phrase___code__for_numerical_calculations_with_high_precision_">Using
+ Boost.Multiprecision <code class="computeroutput"><span class="identifier">cpp_float</span></code>
+ for numerical calculations with high precision.</a>
+ </h6>
+<p>
+ The Boost.Multiprecision library can be used for computations requiring
+ precision exceeding that of standard built-in types such as float, double
+ and long double. For extended-precision calculations, Boost.Multiprecision
+ supplies a template data type called cpp_dec_float. The number of decimal
+ digits of precision is fixed at compile-time via template parameter.
+ </p>
+<p>
+ To use these floating-point types and constants, we need some includes:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">constants</span><span class="special">/</span><span class="identifier">constants</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">multiprecision</span><span class="special">/</span><span class="identifier">cpp_dec_float</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<span class="comment">// using boost::multiprecision::cpp_dec_float</span>
+
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">limits</span><span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+<p>
+ So now we can demonstrate with some trivial calculations:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+</pre>
+<p>
+ </p>
+<p>
+ Using <code class="computeroutput"><span class="keyword">typedef</span> <span class="identifier">cpp_dec_float_50</span></code>
+ hides the complexity of multiprecision to allow us to define variables
+ with 50 decimal digit precision just like built-in <code class="computeroutput"><span class="keyword">double</span></code>.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">cpp_dec_float_50</span><span class="special">;</span>
+
+<span class="identifier">cpp_dec_float_50</span> <span class="identifier">seventh</span> <span class="special">=</span> <span class="identifier">cpp_dec_float_50</span><span class="special">(</span><span class="number">1</span><span class="special">)</span> <span class="special">/</span> <span class="number">7</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ By default, output would only show the standard 6 decimal digits, so set
+ precision to show all 50 significant digits.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">.</span><span class="identifier">precision</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">cpp_dec_float_50</span><span class="special">&gt;::</span><span class="identifier">digits10</span><span class="special">);</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">seventh</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ which outputs:
+ </p>
+<pre class="programlisting"><span class="number">0.14285714285714285714285714285714285714285714285714</span>
+</pre>
+<p>
+ We can also use constants, guaranteed to be initialized with the very last
+ bit of precision.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">cpp_dec_float_50</span> <span class="identifier">circumference</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">constants</span><span class="special">::</span><span class="identifier">pi</span><span class="special">&lt;</span><span class="identifier">cpp_dec_float_50</span><span class="special">&gt;()</span> <span class="special">*</span> <span class="number">2</span> <span class="special">*</span> <span class="identifier">seventh</span><span class="special">;</span>
+
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">circumference</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ which outputs
+ </p>
+<pre class="programlisting"><span class="number">0.89759790102565521098932668093700082405633411410717</span>
+</pre>
+<h6>
+<a name="math_toolkit.using_udt.high_precision.use_multiprecision.h1"></a>
+ <span class="phrase"><a name="math_toolkit.using_udt.high_precision.use_multiprecision.using_boost_multiprecision_to_generate_a_high_precision_array_of_sin_coefficents_for_use_with_fft_"></a></span><a class="link" href="use_multiprecision.html#math_toolkit.using_udt.high_precision.use_multiprecision.using_boost_multiprecision_to_generate_a_high_precision_array_of_sin_coefficents_for_use_with_fft_">Using
+ Boost.Multiprecision to generate a high-precision array of sin coefficents
+ for use with FFT.</a>
+ </h6>
+<p>
+ The Boost.Multiprecision library can be used for computations requiring
+ precision exceeding that of standard built-in types such as float, double
+ and long double. For extended-precision calculations, Boost.Multiprecision
+ supplies a template data type called cpp_dec_float. The number of decimal
+ digits of precision is fixed at compile-time via template parameter.
+ </p>
+<p>
+ To use these floating-point types and constants, we need some includes:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">constants</span><span class="special">/</span><span class="identifier">constants</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<span class="comment">// using boost::math::constants::pi;</span>
+
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">multiprecision</span><span class="special">/</span><span class="identifier">cpp_dec_float</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<span class="comment">// using boost::multiprecision::cpp_dec_float</span>
+
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">limits</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">vector</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">algorithm</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iomanip</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">fstream</span><span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+<p>
+ Define a text string which is a C++ comment with the program licence, copyright
+ etc. You could of course, tailor this to your needs, including copyright
+ claim. There are versions of <code class="computeroutput"><span class="identifier">array</span></code>
+ provided by Boost/array in boost::array or the C++11 std::array, but since
+ not all platforms provide C++11 support, this program provides the Boost
+ version as fallback.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">prolog</span> <span class="special">=</span>
+<span class="special">{</span>
+ <span class="string">"// Use, modification and distribution are subject to the\n"</span>
+ <span class="string">"// Boost Software License, Version 1.0.\n"</span>
+ <span class="string">"// (See accompanying file LICENSE_1_0.txt\n"</span>
+ <span class="string">"// or copy at "</span><span class="string">"http://www.boost.org/LICENSE_1_0.txt)\n\n"</span>
+
+ <span class="string">"// Copyright ???? 2013.\n\n"</span>
+
+ <span class="string">"// Use boost/array if std::array (C++11 feature) is not available.\n"</span>
+ <span class="string">"#ifdef BOOST_NO_CXX11_HDR_ARRAY\n"</span>
+ <span class="string">"#include &lt;boost/array/array.hpp&gt;\n"</span>
+ <span class="string">"#else\n"</span>
+ <span class="string">"#include &lt;array&gt;\n"</span>
+ <span class="string">"#endif\n\n"</span>
+<span class="special">};</span>
+
+
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">cpp_dec_float_50</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">constants</span><span class="special">::</span><span class="identifier">pi</span><span class="special">;</span>
+<span class="comment">// VS 2010 (wrongly) requires these at file scope, not local scope in main.</span>
+<span class="comment">// This program also requires -std=c++11 option to compile using Clang and GCC.</span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+</pre>
+<p>
+ </p>
+<p>
+ One often needs to compute tables of numbers in mathematical software.
+ </p>
+<p>
+ A fast Fourier transform (FFT), for example, may use a table of the values
+ of sin((&#960;/2<sup>n</sup>) in its implementation details. In order to maximize the precision
+ in the FFT implementation, the precision of the tabulated trigonometric
+ values should exceed that of the built-in floating-point type used in the
+ FFT.
+ </p>
+<p>
+ The sample below computes a table of the values of sin(&#960;/2<sup>n</sup>) in the range
+ 1 &lt;= n &lt;= 31.
+ </p>
+<p>
+ This program makes use of, among other program elements, the data type
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">cpp_dec_float_50</span></code> for a precision of 50
+ decimal digits from Boost.Multiprecision, the value of constant &#960; retrieved
+ from Boost.Math, guaranteed to be initialized with the very last bit of
+ precision for the type, here <code class="computeroutput"><span class="identifier">cpp_dec_float_50</span></code>,
+ and a C++11 lambda function combined with <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">for_each</span><span class="special">()</span></code>.
+ </p>
+<p>
+ define the number of values in the array.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">size</span> <span class="special">=</span> <span class="number">32U</span><span class="special">;</span>
+<span class="identifier">cpp_dec_float_50</span> <span class="identifier">p</span> <span class="special">=</span> <span class="identifier">pi</span><span class="special">&lt;</span><span class="identifier">cpp_dec_float_50</span><span class="special">&gt;();</span>
+<span class="identifier">cpp_dec_float_50</span> <span class="identifier">p2</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">constants</span><span class="special">::</span><span class="identifier">pi</span><span class="special">&lt;</span><span class="identifier">cpp_dec_float_50</span><span class="special">&gt;();</span>
+
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span> <span class="special">&lt;</span><span class="identifier">cpp_dec_float_50</span><span class="special">&gt;</span> <span class="identifier">sin_values</span> <span class="special">(</span><span class="identifier">size</span><span class="special">);</span>
+<span class="keyword">unsigned</span> <span class="identifier">n</span> <span class="special">=</span> <span class="number">1U</span><span class="special">;</span>
+<span class="comment">// Generate the sine values.</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">for_each</span>
+<span class="special">(</span>
+ <span class="identifier">sin_values</span><span class="special">.</span><span class="identifier">begin</span> <span class="special">(),</span>
+ <span class="identifier">sin_values</span><span class="special">.</span><span class="identifier">end</span> <span class="special">(),</span>
+ <span class="special">[&amp;</span><span class="identifier">n</span><span class="special">](</span><span class="identifier">cpp_dec_float_50</span><span class="special">&amp;</span> <span class="identifier">y</span><span class="special">)</span>
+ <span class="special">{</span>
+ <span class="identifier">y</span> <span class="special">=</span> <span class="identifier">sin</span><span class="special">(</span> <span class="identifier">pi</span><span class="special">&lt;</span><span class="identifier">cpp_dec_float_50</span><span class="special">&gt;()</span> <span class="special">/</span> <span class="identifier">pow</span><span class="special">(</span><span class="identifier">cpp_dec_float_50</span> <span class="special">(</span><span class="number">2</span><span class="special">),</span> <span class="identifier">n</span><span class="special">));</span>
+ <span class="special">++</span><span class="identifier">n</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">);</span>
+</pre>
+<p>
+ </p>
+<p>
+ Define the floating-point type for the generated file, either built-in
+ <code class="computeroutput"><span class="keyword">double</span><span class="special">,</span>
+ </code>float, or <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>,
+ or a user defined type like <code class="computeroutput"><span class="identifier">cpp_dec_float_50</span></code>.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">fp_type</span> <span class="special">=</span> <span class="string">"double"</span><span class="special">;</span>
+
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Generating an `std::array` or `boost::array` for floating-point type: "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">fp_type</span> <span class="special">&lt;&lt;</span> <span class="string">". "</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ By default, output would only show the standard 6 decimal digits, so set
+ precision to show enough significant digits for the chosen floating-point
+ type. For <code class="computeroutput"><span class="identifier">cpp_dec_float_50</span></code>
+ is 50. (50 decimal digits should be ample for most applications).
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">streamsize</span> <span class="identifier">precision</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">cpp_dec_float_50</span><span class="special">&gt;::</span><span class="identifier">digits10</span><span class="special">;</span>
+
+<span class="comment">// std::cout.precision(std::numeric_limits&lt;cpp_dec_float_50&gt;::digits10);</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">precision</span> <span class="special">&lt;&lt;</span> <span class="string">" decimal digits precision. "</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ Of course, one could also choose less, for example, 36 would be sufficient
+ for the most precise current <code class="computeroutput"><span class="keyword">long</span>
+ <span class="keyword">double</span></code> implementations using 128-bit.
+ In general, it should be a couple of decimal digits more (guard digits)
+ than <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">RealType</span><span class="special">&gt;::</span><span class="identifier">max_digits10</span></code> for the target system floating-point
+ type. If the implementation does not provide <code class="computeroutput"><span class="identifier">max_digits10</span></code>,
+ the the Kahan formula <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">RealType</span><span class="special">&gt;::</span><span class="identifier">digits</span>
+ <span class="special">*</span> <span class="number">3010</span><span class="special">/</span><span class="number">10000</span> <span class="special">+</span>
+ <span class="number">2</span></code> can be used instead.
+ </p>
+<p>
+ The compiler will read these values as decimal digits strings and use the
+ nearest representation for the floating-point type.
+ </p>
+<p>
+ Now output all the sine table, to a file of your chosen name.
+ </p>
+<p>
+</p>
+<pre class="programlisting"> <span class="keyword">const</span> <span class="keyword">char</span> <span class="identifier">sines_name</span><span class="special">[]</span> <span class="special">=</span> <span class="string">"sines.hpp"</span><span class="special">;</span> <span class="comment">// In same directory as .exe</span>
+
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">ofstream</span> <span class="identifier">fout</span><span class="special">(</span><span class="identifier">sines_name</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">out</span><span class="special">);</span> <span class="comment">// Creates if no file exists,</span>
+ <span class="comment">// &amp; uses default overwrite/ ios::replace.</span>
+ <span class="keyword">if</span> <span class="special">(</span><span class="identifier">fout</span><span class="special">.</span><span class="identifier">is_open</span><span class="special">()</span> <span class="special">==</span> <span class="keyword">false</span><span class="special">)</span>
+ <span class="special">{</span> <span class="comment">// failed to open OK!</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Open file "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sines_name</span> <span class="special">&lt;&lt;</span> <span class="string">" failed!"</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+ <span class="keyword">return</span> <span class="identifier">EXIT_FAILURE</span><span class="special">;</span>
+ <span class="special">}</span>
+ <span class="keyword">else</span>
+ <span class="special">{</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Open file "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sines_name</span> <span class="special">&lt;&lt;</span> <span class="string">" for output OK."</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+ <span class="identifier">fout</span> <span class="special">&lt;&lt;</span> <span class="identifier">prolog</span> <span class="special">&lt;&lt;</span> <span class="string">"// Table of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sin_values</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">" values with "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">precision</span> <span class="special">&lt;&lt;</span> <span class="string">" decimal digits precision,\n"</span>
+ <span class="string">"// generated by program fft_sines_table.cpp.\n"</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+
+ <span class="identifier">fout</span> <span class="special">&lt;&lt;</span>
+<span class="string">"#ifdef BOOST_NO_CXX11_HDR_ARRAY"</span><span class="string">"\n"</span>
+ <span class="string">" static const boost::array&lt;double, "</span> <span class="special">&lt;&lt;</span> <span class="identifier">size</span> <span class="special">&lt;&lt;</span> <span class="string">"&gt; sines =\n"</span>
+<span class="string">"#else"</span><span class="string">"\n"</span>
+<span class="string">" static const std::array&lt;double, "</span> <span class="special">&lt;&lt;</span> <span class="identifier">size</span> <span class="special">&lt;&lt;</span> <span class="string">"&gt; sines =\n"</span>
+<span class="string">"#endif"</span><span class="string">"\n"</span>
+ <span class="string">"{{\n"</span><span class="special">;</span> <span class="comment">// 2nd { needed for some GCC compiler versions.</span>
+ <span class="identifier">fout</span><span class="special">.</span><span class="identifier">precision</span><span class="special">(</span><span class="identifier">precision</span><span class="special">);</span>
+
+ <span class="keyword">for</span> <span class="special">(</span><span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0U</span><span class="special">;</span> <span class="special">;)</span>
+ <span class="special">{</span>
+ <span class="identifier">fout</span> <span class="special">&lt;&lt;</span> <span class="string">" "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sin_values</span><span class="special">[</span><span class="identifier">i</span><span class="special">];</span>
+ <span class="keyword">if</span> <span class="special">(</span><span class="identifier">i</span> <span class="special">==</span> <span class="identifier">sin_values</span><span class="special">.</span><span class="identifier">size</span><span class="special">()-</span><span class="number">1</span><span class="special">)</span>
+ <span class="special">{</span> <span class="comment">// next is last value.</span>
+ <span class="identifier">fout</span> <span class="special">&lt;&lt;</span> <span class="string">"\n}};\n"</span><span class="special">;</span> <span class="comment">// 2nd } needed for some GCC compiler versions.</span>
+ <span class="keyword">break</span><span class="special">;</span>
+ <span class="special">}</span>
+ <span class="keyword">else</span>
+ <span class="special">{</span>
+ <span class="identifier">fout</span> <span class="special">&lt;&lt;</span> <span class="string">",\n"</span><span class="special">;</span>
+ <span class="identifier">i</span><span class="special">++;</span>
+ <span class="special">}</span>
+ <span class="special">}</span>
+
+ <span class="identifier">fout</span><span class="special">.</span><span class="identifier">close</span><span class="special">();</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Close file "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sines_name</span> <span class="special">&lt;&lt;</span> <span class="string">" for output OK."</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+
+ <span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ The output file generated can be seen at ..\sines.hpp
+ </p>
+<p>
+ The table output is:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">The</span> <span class="identifier">printed</span> <span class="identifier">table</span> <span class="identifier">is</span><span class="special">:</span>
+
+ <span class="number">1</span>
+ <span class="number">0.70710678118654752440084436210484903928483593768847</span>
+ <span class="number">0.38268343236508977172845998403039886676134456248563</span>
+ <span class="number">0.19509032201612826784828486847702224092769161775195</span>
+ <span class="number">0.098017140329560601994195563888641845861136673167501</span>
+ <span class="number">0.049067674327418014254954976942682658314745363025753</span>
+ <span class="number">0.024541228522912288031734529459282925065466119239451</span>
+ <span class="number">0.012271538285719926079408261951003212140372319591769</span>
+ <span class="number">0.0061358846491544753596402345903725809170578863173913</span>
+ <span class="number">0.003067956762965976270145365490919842518944610213452</span>
+ <span class="number">0.0015339801862847656123036971502640790799548645752374</span>
+ <span class="number">0.00076699031874270452693856835794857664314091945206328</span>
+ <span class="number">0.00038349518757139558907246168118138126339502603496474</span>
+ <span class="number">0.00019174759731070330743990956198900093346887403385916</span>
+ <span class="number">9.5873799095977345870517210976476351187065612851145e-05</span>
+ <span class="number">4.7936899603066884549003990494658872746866687685767e-05</span>
+ <span class="number">2.3968449808418218729186577165021820094761474895673e-05</span>
+ <span class="number">1.1984224905069706421521561596988984804731977538387e-05</span>
+ <span class="number">5.9921124526424278428797118088908617299871778780951e-06</span>
+ <span class="number">2.9960562263346607504548128083570598118251878683408e-06</span>
+ <span class="number">1.4980281131690112288542788461553611206917585861527e-06</span>
+ <span class="number">7.4901405658471572113049856673065563715595930217207e-07</span>
+ <span class="number">3.7450702829238412390316917908463317739740476297248e-07</span>
+ <span class="number">1.8725351414619534486882457659356361712045272098287e-07</span>
+ <span class="number">9.3626757073098082799067286680885620193236507169473e-08</span>
+ <span class="number">4.681337853654909269511551813854009695950362701667e-08</span>
+ <span class="number">2.3406689268274552759505493419034844037886207223779e-08</span>
+ <span class="number">1.1703344634137277181246213503238103798093456639976e-08</span>
+ <span class="number">5.8516723170686386908097901008341396943900085051757e-09</span>
+ <span class="number">2.9258361585343193579282304690689559020175857150074e-09</span>
+ <span class="number">1.4629180792671596805295321618659637103742615227834e-09</span>
+<span class="special">*/</span>
+</pre>
+<p>
+ </p>
+<p>
+ The output can be copied as text and readily integrated into a given source
+ code. Alternatively, the output can be written to a text or even be used
+ within a self-written automatic code generator as this example.
+ </p>
+<p>
+ A computer algebra system can be used to verify the results obtained from
+ Boost.Math and Boost.Multiprecision. For example, the <a href="http://www.wolfram.com/products/mathematica/index.html" target="_top">Wolfram
+ Mathematica</a> computer algebra system can obtain a similar table
+ with the command:
+ </p>
+<pre class="programlisting"><span class="identifier">Table</span><span class="special">[</span><span class="identifier">N</span><span class="special">[</span><span class="identifier">Sin</span><span class="special">[</span><span class="identifier">Pi</span> <span class="special">/</span> <span class="special">(</span><span class="number">2</span><span class="special">^</span><span class="identifier">n</span><span class="special">)],</span> <span class="number">50</span><span class="special">],</span> <span class="special">{</span><span class="identifier">n</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="number">31</span><span class="special">,</span> <span class="number">1</span><span class="special">}]</span>
+</pre>
+<p>
+ The Wolfram Alpha computational
+ knowledge engine can also be used to generate this table. The same command
+ can be pasted into the compute box.
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="why_high_precision.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../high_precision.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="float128.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/high_precision/use_ntl.html
==============================================================================
--- (empty file)
+++ trunk/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/high_precision/use_ntl.html 2013-03-07 05:14:18 EST (Thu, 07 Mar 2013)
@@ -0,0 +1,76 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Using NTL Library</title>
+<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../high_precision.html" title="Using Boost.Math with High-Precision Floating-Point Libraries">
+<link rel="prev" href="e_float.html" title="Using e_float Library">
+<link rel="next" href="using_test.html" title="Using without expression templates for Boost.Test and others">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="e_float.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../high_precision.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="using_test.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_using_udt_high_precision_use_ntl">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.using_udt.high_precision.use_ntl"></a><a class="link" href="use_ntl.html" title="Using NTL Library">Using
+ NTL Library</a>
+</h4></div></div></div>
+<p>
+ NTL::RR (an arbitrarily-fixed
+ precision floating-point number type), can be used via the bindings in
+ boost/math/bindings/rr.hpp.
+ For details, see <a href="http://shoup.net/ntl/" target="_top">NTL: A Library for
+ doing Number Theory by Victor Shoup</a>.
+ </p>
+<p>
+ <span class="bold"><strong>New projects are recommended to use Boost.Multiprecision
+ instead.</strong></span>
+ </p>
+<p>
+ Unfortunately <code class="computeroutput"><span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span></code> doesn't quite satisfy our conceptual
+ requirements, so there is a very thin wrapper class <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">ntl</span><span class="special">::</span><span class="identifier">RR</span></code>
+ defined in boost/math/bindings/rr.hpp
+ that you should use in place of <code class="computeroutput"><span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span></code>.
+ The class is intended to be a drop-in replacement for the "real"
+ NTL::RR that adds some syntactic sugar to keep this library happy, plus
+ some of the standard library functions not implemented in NTL.
+ </p>
+<p>
+ For those functions that are based upon the <a class="link" href="../../backgrounders/lanczos.html" title="The Lanczos Approximation">Lanczos
+ approximation</a>, the bindings defines a series of approximations with
+ up to 61 terms and accuracy up to approximately 3e-113. This therefore
+ sets the upper limit for accuracy to the majority of functions defined
+ this library when used with <code class="computeroutput"><span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span></code>.
+ </p>
+<p>
+ There is a concept checking test program for NTL support here.
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="e_float.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../high_precision.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="using_test.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/high_precision/using_test.html
==============================================================================
--- (empty file)
+++ trunk/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/high_precision/using_test.html 2013-03-07 05:14:18 EST (Thu, 07 Mar 2013)
@@ -0,0 +1,140 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Using without expression templates for Boost.Test and others</title>
+<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../high_precision.html" title="Using Boost.Math with High-Precision Floating-Point Libraries">
+<link rel="prev" href="use_ntl.html" title="Using NTL Library">
+<link rel="next" href="../concepts.html" title="Conceptual Requirements for Real Number Types">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="use_ntl.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../high_precision.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../concepts.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_using_udt_high_precision_using_test">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.using_udt.high_precision.using_test"></a><a class="link" href="using_test.html" title="Using without expression templates for Boost.Test and others">Using
+ without expression templates for Boost.Test and others</a>
+</h4></div></div></div>
+<p>
+ As noted in the Boost.Multiprecision
+ documentation, certain program constructs will not compile when using expression
+ templates. One example that many users may encounter is Boost.Test (1.54
+ and earlier) when using macro BOOST_CHECK_CLOSE and BOOST_CHECK_CLOSE_FRACTION.
+ </p>
+<p>
+ If, for example, you wish to use any multiprecision type like <code class="computeroutput"><span class="identifier">cpp_dec_float_50</span></code> in place of <code class="computeroutput"><span class="keyword">double</span></code> to give more precision, you will
+ need to override the default <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">et_on</span></code>
+ with <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">et_off</span></code>.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">multiprecision</span><span class="special">/</span><span class="identifier">cpp_dec_float</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+<p>
+ To define a 50 decimal digit type using <code class="computeroutput"><span class="identifier">cpp_dec_float</span></code>,
+ you must pass two template parameters to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">number</span></code>.
+ </p>
+<p>
+ It may be more legible to use a two-staged type definition such as this:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">cpp_dec_float</span><span class="special">&lt;</span><span class="number">50</span><span class="special">&gt;</span> <span class="identifier">mp_backend</span><span class="special">;</span>
+<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">number</span><span class="special">&lt;</span><span class="identifier">mp_backend</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">et_off</span><span class="special">&gt;</span> <span class="identifier">cpp_dec_float_50_noet</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ Here, we first define <code class="computeroutput"><span class="identifier">mp_backend</span></code>
+ as <code class="computeroutput"><span class="identifier">cpp_dec_float</span></code> with 50
+ digits. The second step passes this backend to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">number</span></code>
+ with <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">et_off</span></code>, an enumerated type.
+ </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">number</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">cpp_dec_float</span><span class="special">&lt;</span><span class="number">50</span><span class="special">&gt;,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">et_off</span><span class="special">&gt;</span>
+<span class="identifier">cpp_dec_float_50_noet</span><span class="special">;</span><span class="error">`</span>
+</pre>
+<p>
+ You can reduce typing with a <code class="computeroutput"><span class="keyword">using</span></code>
+ directive <code class="computeroutput"><span class="keyword">using</span> <span class="keyword">namespace</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">;</span></code>
+ if desired, as shown below.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">number</span><span class="special">&lt;</span><span class="identifier">cpp_dec_float</span><span class="special">&lt;</span><span class="number">50</span><span class="special">&gt;,</span> <span class="identifier">et_off</span><span class="special">&gt;</span> <span class="identifier">cpp_dec_float_50_noet</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ Now <code class="computeroutput"><span class="identifier">cpp_dec_float_50_noet</span></code>
+ can be used as a direct replacement for built-in types like <code class="computeroutput"><span class="keyword">double</span></code> etc.
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="identifier">BOOST_AUTO_TEST_CASE</span><span class="special">(</span><span class="identifier">cpp_float_test_check_close</span><span class="special">)</span>
+<span class="special">{</span>
+
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">.</span><span class="identifier">precision</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">cpp_dec_float_50_noet</span><span class="special">&gt;::</span><span class="identifier">digits10</span><span class="special">);</span> <span class="comment">// All significant digits.</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">showpoint</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> <span class="comment">// Show trailing zeros.</span>
+
+ <span class="identifier">cpp_dec_float_50_noet</span> <span class="identifier">a</span> <span class="special">(</span><span class="string">"1."</span><span class="special">);</span>
+ <span class="identifier">cpp_dec_float_50_noet</span> <span class="identifier">b</span> <span class="special">(</span><span class="string">"1."</span><span class="special">);</span>
+ <span class="identifier">b</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">cpp_dec_float_50_noet</span><span class="special">&gt;::</span><span class="identifier">epsilon</span><span class="special">();</span> <span class="comment">// Increment least significant decimal digit.</span>
+
+ <span class="identifier">cpp_dec_float_50_noet</span> <span class="identifier">eps</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">cpp_dec_float_50_noet</span><span class="special">&gt;::</span><span class="identifier">epsilon</span><span class="special">();</span>
+
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span><span class="string">"a = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">a</span> <span class="special">&lt;&lt;</span> <span class="string">",\nb = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">b</span> <span class="special">&lt;&lt;</span> <span class="string">",\neps = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">eps</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+
+ <span class="identifier">BOOST_CHECK_CLOSE</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">eps</span><span class="special">);</span> <span class="comment">// Expected to pass (because tolerance is as percent).</span>
+ <span class="identifier">BOOST_CHECK_CLOSE_FRACTION</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">eps</span><span class="special">);</span> <span class="comment">// Expected to fail.</span>
+</pre>
+<p>
+ </p>
+<p>
+ Using <code class="computeroutput"><span class="identifier">cpp_dec_float_50</span></code>
+ with the default expression template use switched on, the compiler error
+ message for `BOOST_CHECK_CLOSE_FRACTION(a, b, eps); would be:
+ </p>
+<p>
+</p>
+<pre class="programlisting"><span class="comment">// failure floating_point_comparison.hpp(59): error C2440: 'static_cast' :</span>
+<span class="comment">// cannot convert from 'int' to 'boost::multiprecision::detail::expression&lt;tag,Arg1,Arg2,Arg3,Arg4&gt;'</span>
+</pre>
+<p>
+ </p>
+<p>
+ A full example code is at test_cpp_float_close_fraction.cpp
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="use_ntl.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../high_precision.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../concepts.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/high_precision/why_high_precision.html
==============================================================================
--- (empty file)
+++ trunk/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/high_precision/why_high_precision.html 2013-03-07 05:14:18 EST (Thu, 07 Mar 2013)
@@ -0,0 +1,136 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Why use a high-precision library rather than built-in floating-point types?</title>
+<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../../index.html" title="Math Toolkit">
+<link rel="up" href="../high_precision.html" title="Using Boost.Math with High-Precision Floating-Point Libraries">
+<link rel="prev" href="../high_precision.html" title="Using Boost.Math with High-Precision Floating-Point Libraries">
+<link rel="next" href="use_multiprecision.html" title="Using Boost.Multiprecision">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../high_precision.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../high_precision.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="use_multiprecision.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section math_toolkit_using_udt_high_precision_why_high_precision">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="math_toolkit.using_udt.high_precision.why_high_precision"></a><a class="link" href="why_high_precision.html" title="Why use a high-precision library rather than built-in floating-point types?">Why
+ use a high-precision library rather than built-in floating-point types?</a>
+</h4></div></div></div>
+<p>
+ For nearly all applications, the built-in floating-point types, <code class="computeroutput"><span class="keyword">double</span></code> (and <code class="computeroutput"><span class="keyword">long</span>
+ <span class="keyword">double</span></code> if this offers higher precision
+ than <code class="computeroutput"><span class="keyword">double</span></code>) offer enough
+ precision, typically a dozen decimal digits.
+ </p>
+<p>
+ Some reasons why one would want to use a higher precision:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+ A much more precise result (many more digits) is just a requirement.
+ </li>
+<li class="listitem">
+ The range of the computed value exceeds the range of the type: factorials
+ are the textbook example.
+ </li>
+<li class="listitem">
+ Using double is (or may be) too inaccurate.
+ </li>
+<li class="listitem">
+ Using long double (or may be) is too inaccurate.
+ </li>
+<li class="listitem">
+ Using an extended precision type implemented in software as double-double
+ (Darwin)
+ is sometimes unpredictably inaccurate.
+ </li>
+<li class="listitem">
+ Loss of precision or inaccuracy caused by extreme arguments or cancellation
+ error.
+ </li>
+<li class="listitem">
+ An accuracy as good as possible for a chosen built-in floating-point
+ type is required.
+ </li>
+<li class="listitem">
+ As a reference value, for example, to determine the inaccuracy of a
+ value computed with a built-in floating point type, (perhaps even using
+ some quick'n'dirty algorithm). The accuracy of many functions and distributions
+ in Boost.Math has been measured in this way from tables of very high
+ precision (up to 1000 decimal digits).
+ </li>
+</ul></div>
+<p>
+ Many functions and distributions have differences from exact values that
+ are only a few least significant bits - computation noise. Others, often
+ those for which analytical solutions are not available, require approximations
+ and iteration: these may lose several decimal digits of precision.
+ </p>
+<p>
+ Much larger loss of precision can occur for boundary
+ or corner cases,
+ often caused by <a href="http://en.wikipedia.org/wiki/Loss_of_significance" target="_top">cancellation
+ errors</a>.
+ </p>
+<p>
+ (Some of the worst and most common examples of <a href="http://en.wikipedia.org/wiki/Loss_of_significance" target="_top">cancellation
+ error or loss of significance</a> can be avoided by using <a class="link" href="../../dist/stat_tut/overview/complements.html#complements">complements</a>:
+ see <a class="link" href="../../dist/stat_tut/overview/complements.html#why_complements">why complements?</a>).
+ </p>
+<p>
+ If you require a value which is as accurate as can be represented in the
+ floating-point type, and is thus the closest representable value and has
+ an error less than 1/2 a <a href="http://en.wikipedia.org/wiki/Least_significant_bit" target="_top">least
+ significant bit</a> or ulp
+ it may be useful to use a higher-precision type, for example, <code class="computeroutput"><span class="identifier">cpp_dec_float_50</span></code>, to generate this value.
+ Conversion of this value to a built-in floating-point type ('float', <code class="computeroutput"><span class="keyword">double</span></code> or <code class="computeroutput"><span class="keyword">long</span>
+ <span class="keyword">double</span></code>) will not cause any further
+ loss of precision. A decimal digit string will also be 'read' precisely
+ by the compiler into a built-in floating-point type to the nearest representable
+ value.
+ </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../../doc/src/images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+ In contrast, reading a value from an <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">istream</span></code>
+ into a built-in floating-point type is <span class="bold"><strong>not guaranteed</strong></span>
+ by the C++ Standard to give the nearest representable value.
+ </p></td></tr>
+</table></div>
+<p>
+ William Kahan coined the term <a href="http://en.wikipedia.org/wiki/Rounding#The_table-maker.27s_dilemma" target="_top">Table-Maker's
+ Dilemma</a> for the problem of correctly rounding functions. Using
+ a much higher precision (50 or 100 decimal digits) is a practical way of
+ generating (almost always) correctly rounded values.
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012, 2013 John Maddock, Paul A. Bristow,
+ Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani, Thijs
+ van den Berg, Benjamin Sobotta and Christopher Kormanyos<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../high_precision.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../high_precision.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="use_multiprecision.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Modified: trunk/libs/math/doc/sf_and_dist/roadmap.qbk
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/roadmap.qbk (original)
+++ trunk/libs/math/doc/sf_and_dist/roadmap.qbk 2013-03-07 05:14:18 EST (Thu, 07 Mar 2013)
@@ -16,6 +16,7 @@
 * Fixed nasty cyclic dependency bug that caused some headers to not compile [@https://svn.boost.org/trac/boost/ticket/7999 #7999].
 * Fixed bug in __tgamma that caused spurious overflow for arguments between 142.5 and 143.
 * Fixed bug in raise_rounding_error that caused it to return an incorrect result when throwing an exception is turned off [@https://svn.boost.org/trac/boost/ticket/7905 #7905].
+* Added minimal __float128 support.
 
 [h4 Boost-1.53]
 


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