Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r78207 - in trunk/libs/math/doc/sf_and_dist: . html html/index html/math_toolkit/main_overview html/math_toolkit/status
From: john_at_[hidden]
Date: 2012-04-26 05:50:05


Author: johnmaddock
Date: 2012-04-26 05:50:03 EDT (Thu, 26 Apr 2012)
New Revision: 78207
URL: http://svn.boost.org/trac/boost/changeset/78207

Log:
Update docs to match source on thread safety issues.
Text files modified:
   trunk/libs/math/doc/sf_and_dist/html/index.html | 2 +-
   trunk/libs/math/doc/sf_and_dist/html/index/s13.html | 4 ++--
   trunk/libs/math/doc/sf_and_dist/html/index/s14.html | 4 ++--
   trunk/libs/math/doc/sf_and_dist/html/index/s15.html | 4 ++--
   trunk/libs/math/doc/sf_and_dist/html/index/s16.html | 4 ++--
   trunk/libs/math/doc/sf_and_dist/html/index/s17.html | 9 ++-------
   trunk/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html | 8 ++++++++
   trunk/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html | 2 +-
   trunk/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/threads.html | 27 ++++-----------------------
   trunk/libs/math/doc/sf_and_dist/html/math_toolkit/status/history1.html | 8 ++++++++
   trunk/libs/math/doc/sf_and_dist/roadmap.qbk | 4 ++++
   trunk/libs/math/doc/sf_and_dist/thread_safety.qbk | 23 ++++-------------------
   12 files changed, 40 insertions(+), 59 deletions(-)

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 2012-04-26 05:50:03 EDT (Thu, 26 Apr 2012)
@@ -534,7 +534,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: April 22, 2012 at 16:05:48 GMT</small></p></td>
+<td align="left"><p><small>Last revised: April 26, 2012 at 09:45:15 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 2012-04-26 05:50:03 EDT (Thu, 26 Apr 2012)
@@ -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 id1299659">
+<div class="section id1291198">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id1299659"></a>Function Index</h2></div></div></div>
+<a name="id1291198"></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">K</a> <a class="link" href="s13.html#idx_id_10">L</a> <a class="link" href="s13.html#idx_id_11">M</a> <a class="link" href="s13.html#idx_id_12">N</a> <a class="link" href="s13.html#idx_id_13">O</a> <a class="link" href="s13.html#idx_id_14">P</a> <a class="link" href="s13.html#idx_id_15">Q</a> <a class="link" href="s13.html#idx_id_16">R</a> <a class="link" href="s13.html#idx_id_17">S</a> <a class="link" href="s13.html#idx_id_18">T</a> <a class="link" href="s13.html#idx_id_19">U</a> <a class="link" href="s13.html#idx_id_20">V</a> <a class="link" href=
"s13.html#idx_id_21">W</a> <a class="link" href="s13.html#idx_id_22">Z</a></p>
 <div class="variablelist"><dl>
 <dt>

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 2012-04-26 05:50:03 EDT (Thu, 26 Apr 2012)
@@ -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 id1316008">
+<div class="section id1307956">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id1316008"></a>Class Index</h2></div></div></div>
+<a name="id1307956"></a>Class Index</h2></div></div></div>
 <p><a class="link" href="s14.html#idx_id_24">B</a> <a class="link" href="s14.html#idx_id_25">C</a> <a class="link" href="s14.html#idx_id_26">D</a> <a class="link" href="s14.html#idx_id_27">E</a> <a class="link" href="s14.html#idx_id_28">F</a> <a class="link" href="s14.html#idx_id_29">G</a> <a class="link" href="s14.html#idx_id_30">H</a> <a class="link" href="s14.html#idx_id_31">I</a> <a class="link" href="s14.html#idx_id_33">L</a> <a class="link" href="s14.html#idx_id_34">M</a> <a class="link" href="s14.html#idx_id_35">N</a> <a class="link" href="s14.html#idx_id_37">P</a> <a class="link" href="s14.html#idx_id_39">R</a> <a class="link" href="s14.html#idx_id_40">S</a> <a class="link" href="s14.html#idx_id_41">T</a> <a class="link" href="s14.html#idx_id_42">U</a> <a class="link" href="s14.html#idx_id_44">W</a></p>
 <div class="variablelist"><dl>
 <dt>

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 2012-04-26 05:50:03 EDT (Thu, 26 Apr 2012)
@@ -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 id1317495">
+<div class="section id1308914">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id1317495"></a>Typedef Index</h2></div></div></div>
+<a name="id1308914"></a>Typedef Index</h2></div></div></div>
 <p><a class="link" href="s15.html#idx_id_46">A</a> <a class="link" href="s15.html#idx_id_47">B</a> <a class="link" href="s15.html#idx_id_48">C</a> <a class="link" href="s15.html#idx_id_49">D</a> <a class="link" href="s15.html#idx_id_50">E</a> <a class="link" href="s15.html#idx_id_51">F</a> <a class="link" href="s15.html#idx_id_52">G</a> <a class="link" href="s15.html#idx_id_53">H</a> <a class="link" href="s15.html#idx_id_54">I</a> <a class="link" href="s15.html#idx_id_56">L</a> <a class="link" href="s15.html#idx_id_58">N</a> <a class="link" href="s15.html#idx_id_59">O</a> <a class="link" href="s15.html#idx_id_60">P</a> <a class="link" href="s15.html#idx_id_62">R</a> <a class="link" href="s15.html#idx_id_63">S</a> <a class="link" href="s15.html#idx_id_64">T</a> <a class="link" href="s15.html#idx_id_65">U</a> <a class="link" href="s15.html#idx_id_66">V</a> <a class="link" href="s15.html#idx_id_67">W</a></p>
 <div class="variablelist"><dl>
 <dt>

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 2012-04-26 05:50:03 EDT (Thu, 26 Apr 2012)
@@ -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 id1322880">
+<div class="section id1310731">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id1322880"></a>Macro Index</h2></div></div></div>
+<a name="id1310731"></a>Macro Index</h2></div></div></div>
 <p><a class="link" href="s16.html#idx_id_70">B</a> <a class="link" href="s16.html#idx_id_74">F</a></p>
 <div class="variablelist"><dl>
 <dt>

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 2012-04-26 05:50:03 EDT (Thu, 26 Apr 2012)
@@ -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 id1324106">
+<div class="section id1315235">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id1324106"></a>Index</h2></div></div></div>
+<a name="id1315235"></a>Index</h2></div></div></div>
 <p><a class="link" href="s17.html#idx_id_92">A</a> <a class="link" href="s17.html#idx_id_93">B</a> <a class="link" href="s17.html#idx_id_94">C</a> <a class="link" href="s17.html#idx_id_95">D</a> <a class="link" href="s17.html#idx_id_96">E</a> <a class="link" href="s17.html#idx_id_97">F</a> <a class="link" href="s17.html#idx_id_98">G</a> <a class="link" href="s17.html#idx_id_99">H</a> <a class="link" href="s17.html#idx_id_100">I</a> <a class="link" href="s17.html#idx_id_101">K</a> <a class="link" href="s17.html#idx_id_102">L</a> <a class="link" href="s17.html#idx_id_103">M</a> <a class="link" href="s17.html#idx_id_104">N</a> <a class="link" href="s17.html#idx_id_105">O</a> <a class="link" href="s17.html#idx_id_106">P</a> <a class="link" href="s17.html#idx_id_107">Q</a> <a class="link" href="s17.html#idx_id_108">R</a> <a class="link" href="s17.html#idx_id_109">S</a> <a class="link" href="s17.html#idx_id_110">T</a> <a class="link" href="s17.html#idx_id_111">U</a> <a class="link" href="s17.html#idx_id_112">V</a
> <a class="link" href="s17.html#idx_id_113">W</a> <a class="link" href="s17.html#idx_id_114">Z</a></p>
 <div class="variablelist"><dl>
 <dt>
@@ -1285,7 +1285,6 @@
 <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/constants/constants.html" title="The Mathematical Constants"><span class="index-entry-level-1">The Mathematical Constants</span></a></p></li>
 <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/main_overview/threads.html" title="Thread Safety"><span class="index-entry-level-1">Thread Safety</span></a></p></li>
 <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>
@@ -4395,10 +4394,6 @@
 </ul></div>
 </li>
 <li class="listitem" style="list-style-type: none">
-<p><span class="index-entry-level-0">Thread Safety</span></p>
-<div class="index"><ul class="index" type="none" compact><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/main_overview/threads.html" title="Thread Safety"><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">tol</span></p>
 <div class="index"><ul class="index" type="none" compact><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/toolkit/internals1/roots2.html" title="Root Finding Without Derivatives: Bisection, Bracket and TOMS748"><span class="index-entry-level-1">Root Finding Without Derivatives: Bisection, Bracket and TOMS748</span></a></p></li></ul></div>
 </li>

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 2012-04-26 05:50:03 EDT (Thu, 26 Apr 2012)
@@ -50,6 +50,14 @@
             nonfinite_num_put formatting of 0.0 is incorrect</a> based on a patch
             submitted by K R Walker.
           </li>
+<li class="listitem">
+ Changed constant initialization mechanism so that it is thread safe even
+ for user-defined types, also so that user defined types get the full
+ precision of the constant, even when <code class="computeroutput"><span class="keyword">long</span>
+ <span class="keyword">double</span></code> does not. So for example
+ 128-bit rational approximations will work with UDT's and do the right
+ thing, even though <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code> may be only 64 or 80 bits.
+ </li>
 </ul></div>
 <h5>
 <a name="math_toolkit.main_overview.history1.h1"></a>

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 2012-04-26 05:50:03 EDT (Thu, 26 Apr 2012)
@@ -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="id842277"></a>
+ <a class="indexterm" name="id834908"></a>
       </p>
 <p>
         Boost.Math documentation is provided in both HTML and PDF formats.

Modified: trunk/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/threads.html
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/threads.html (original)
+++ trunk/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/threads.html 2012-04-26 05:50:03 EDT (Thu, 26 Apr 2012)
@@ -27,29 +27,10 @@
 <a name="math_toolkit.main_overview.threads"></a><a class="link" href="threads.html" title="Thread Safety">Thread Safety</a>
 </h3></div></div></div>
 <p>
- The library is fully thread safe and re-entrant provided the function and
- class templates in the library are instantiated with built-in floating point
- types: i.e. the types <code class="computeroutput"><span class="keyword">float</span></code>,
- <code class="computeroutput"><span class="keyword">double</span></code> and <code class="computeroutput"><span class="keyword">long</span>
- <span class="keyword">double</span></code>.
- </p>
-<p>
- However, the library <span class="bold"><strong>is not thread safe</strong></span>
- when used with user-defined (i.e. class type) numeric types.
- </p>
-<p>
- The reason for the latter limitation is the need to initialise symbolic constants
- using constructs such as:
- </p>
-<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">T</span> <span class="identifier">coefficient_array</span> <span class="special">=</span> <span class="special">{</span> <span class="special">...</span> <span class="identifier">list</span> <span class="identifier">of</span> <span class="identifier">values</span> <span class="special">...</span> <span class="special">};</span>
-</pre>
-<p>
- Which is always thread safe when T is a built-in floating point type, but
- not when T is a user defined type: as in this case there is a need for T's
- constructors to be run, leading to potential race conditions.
- </p>
-<p>
- This limitation may be addressed in a future release.
+ The library is fully thread safe and re-entrant for all functions regards
+ of the data type they are instantiated on. Thread safety limitations relating
+ to user defined types present in previous releases (prior to 1.50.0) have
+ been removed.
       </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>

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 2012-04-26 05:50:03 EDT (Thu, 26 Apr 2012)
@@ -49,6 +49,14 @@
             nonfinite_num_put formatting of 0.0 is incorrect</a> based on a patch
             submitted by K R Walker.
           </li>
+<li class="listitem">
+ Changed constant initialization mechanism so that it is thread safe even
+ for user-defined types, also so that user defined types get the full
+ precision of the constant, even when <code class="computeroutput"><span class="keyword">long</span>
+ <span class="keyword">double</span></code> does not. So for example
+ 128-bit rational approximations will work with UDT's and do the right
+ thing, even though <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code> may be only 64 or 80 bits.
+ </li>
 </ul></div>
 <h5>
 <a name="math_toolkit.status.history1.h1"></a>

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 2012-04-26 05:50:03 EDT (Thu, 26 Apr 2012)
@@ -9,6 +9,10 @@
 * Added the Owen's T function and Skew Normal distribution written by Benjamin Sobotta.
 * Corrected issue [@https://svn.boost.org/trac/boost/ticket/6627 #6627 nonfinite_num_put formatting of 0.0 is incorrect]
 based on a patch submitted by K R Walker.
+* Changed constant initialization mechanism so that it is thread safe even for user-defined types, also
+so that user defined types get the full precision of the constant, even when `long double` does not.
+So for example 128-bit rational approximations will work with UDT's and do the right thing, even though
+`long double` may be only 64 or 80 bits.
 
 [h4 Boost-1.49]
 

Modified: trunk/libs/math/doc/sf_and_dist/thread_safety.qbk
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/thread_safety.qbk (original)
+++ trunk/libs/math/doc/sf_and_dist/thread_safety.qbk 2012-04-26 05:50:03 EDT (Thu, 26 Apr 2012)
@@ -1,24 +1,9 @@
 [section:threads Thread Safety]
 
-The library is fully thread safe and re-entrant provided the function
-and class templates in the library are instantiated with
-built-in floating point types: i.e. the types `float`, `double`
-and `long double`.
-
-However, the library [*is not thread safe] when
-used with user-defined (i.e. class type) numeric types.
-
-The reason for the latter limitation is the need to
-initialise symbolic constants using constructs such as:
-
- static const T coefficient_array = { ... list of values ... };
-
-Which is always thread safe when T is a built-in floating point type,
-but not when T is a user defined type: as in this case there
-is a need for T's constructors to be run, leading to potential
-race conditions.
-
-This limitation may be addressed in a future release.
+The library is fully thread safe and re-entrant for all functions
+regards of the data type they are instantiated on. Thread safety
+limitations relating to user defined types present in previous
+releases (prior to 1.50.0) have been removed.
 
 [endsect] [/section:threads Thread Safety]
 


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