Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r80137 - in trunk/libs/math/doc/sf_and_dist: . distributions graphs
From: pbristow_at_[hidden]
Date: 2012-08-22 06:53:43


Author: pbristow
Date: 2012-08-22 06:53:41 EDT (Wed, 22 Aug 2012)
New Revision: 80137
URL: http://svn.boost.org/trac/boost/changeset/80137

Log:
Many minor docs updates and edits.
Text files modified:
   trunk/libs/math/doc/sf_and_dist/credits.qbk | 39 ++++++++------
   trunk/libs/math/doc/sf_and_dist/distributions/nc_t.qbk | 103 ++++++++++++++++++++++++---------------
   trunk/libs/math/doc/sf_and_dist/distributions/students_t.qbk | 60 +++++++++++-----------
   trunk/libs/math/doc/sf_and_dist/graphs/dist_graphs.cpp | 11 ++++
   trunk/libs/math/doc/sf_and_dist/roadmap.qbk | 34 +++++++++---
   5 files changed, 152 insertions(+), 95 deletions(-)

Modified: trunk/libs/math/doc/sf_and_dist/credits.qbk
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/credits.qbk (original)
+++ trunk/libs/math/doc/sf_and_dist/credits.qbk 2012-08-22 06:53:41 EDT (Wed, 22 Aug 2012)
@@ -26,19 +26,19 @@
 and manipulation code, and nonfinite facets to permit C99 output of infinities and NaNs.
 (nonfinite facets were not added until Boost 1.47 but had been in use with Boost.Spirit).
 This library was based on a suggestion from Robert Ramey, author of Boost.Serialization.
-Paul A. Bristow expressed the need for better handling of
+Paul A. Bristow expressed the need for better handling of
 [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2022.pdf
 Input & Output of NaN and infinity for the C++ Standard Library]
 and suggested following the C99 format.
 
-Antony Polukhin improved lexical cast avoiding stringstream so that
+Antony Polukhin improved lexical cast avoiding stringstream so that
 it was no longer necessary to use a globale C99 facet to handle nonfinites.
 
 H'''å'''kan Ard'''ö''',
 Boris Gubenko, John Maddock,
 Markus Sch'''ö'''pflin
-and Olivier Verdier tested the floating-point library and
-Martin Bonner, Peter Dimov and John Maddock provided valuable advice.
+and Olivier Verdier tested the floating-point library and
+Martin Bonner, Peter Dimov and John Maddock provided valuable advice.
 
 Gautam Sewani coded the logistic distribution as part of a Google Summer of Code project 2008.
 
@@ -46,7 +46,8 @@
 (Thijs has also threatened to implement some multivariate distributions).
 
 Thomas Mang requested the inverse gamma in chi squared distributions
-for Bayesian applications and helped in their implementation.
+for Bayesian applications and helped in their implementation,
+and provided a nice example of their use.
 
 Professor Nico Temme for advice on the inverse incomplete beta function.
 
@@ -60,22 +61,17 @@
 program used to generate the html and pdf versions
 of this document, adding several new features en route.
 
-Thanks to Mark Coleman and Georgi Boshnakov for spot test values
-from __Mathematica, and of course,
-to Eric Weissten for nurturing __Mathworld, an invaluable resource.
-
-The Skew-normal distribution and Owen's t function were written by Benjamin Sobotta.
-
 Plots of the functions and distributions were prepared in
 [@http://www.w3.org/ W3C] standard
 [@http://www.svg.org/ Scalable Vector Graphic (SVG)] format
 using a program created by Jacob Voytko during a
 [@http://code.google.com/soc/2007/ Google Summer of Code (2007)].
-Since browser support for rendering SVG is still not universal
-(Microsoft Internet Explorer, even IE 8 beta, still lacks native SVG support
+From 2012, the latest versions of all Internet Browsers have support
+for rendering SVG (with varying quality). Older versions, especially
+(Microsoft Internet Explorer (before IE 9) lack native SVG support
 but can be made to work with
-[@http://www.adobe.com/svg/viewer/install/ Adobe's free SVG viewer] plugin),
-so the SVG files were batch converted to JPEG using
+[@http://www.adobe.com/svg/viewer/install/ Adobe's free SVG viewer] plugin).
+The SVG files can be converted to JPEG or PNG using
 [@http://www.inkscape.org/ Inkscape].
 
 We are also indebted to Matthias Schabel for managing the formal Boost-review
@@ -83,10 +79,21 @@
 Arnaldur Gylfason, John Phillips, Stephan Tolksdorf and Jeff Garland
 - for their many helpful comments.
 
+Thanks to Mark Coleman and Georgi Boshnakov for spot test values
+from __Mathematica, and of course,
+to Eric Weissten for nurturing __Mathworld, an invaluable resource.
+
+The Skew-normal distribution and Owen's t function were written by Benjamin Sobotta.
+
+We thank Thomas Mang for persuading us to allow t distributions
+to have infinite degrees of freedom
+and contributing to some long discussions about how to improve accuracy
+for large non-centrality and/or large degrees of freedom.
+
 [endsect] [/section:credits Credits and Acknowledgements]
 
 [/
- Copyright 2006, 2007, 2008, 2009, 2010 John Maddock and Paul A. Bristow.
+ Copyright 2006, 2007, 2008, 2009, 2010, 2012 John Maddock and Paul A. Bristow.
   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).

Modified: trunk/libs/math/doc/sf_and_dist/distributions/nc_t.qbk
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/distributions/nc_t.qbk (original)
+++ trunk/libs/math/doc/sf_and_dist/distributions/nc_t.qbk 2012-08-22 06:53:41 EDT (Wed, 22 Aug 2012)
@@ -2,9 +2,9 @@
 
 ``#include <boost/math/distributions/non_central_t.hpp>``
 
- namespace boost{ namespace math{
+ namespace boost{ namespace math{
 
- template <class RealType = double,
+ template <class RealType = double,
              class ``__Policy`` = ``__policy_class`` >
    class non_central_t_distribution;
 
@@ -23,18 +23,18 @@
       // Accessor to degrees_of_freedom parameter v:
       RealType degrees_of_freedom()const;
 
- // Accessor to non-centrality parameter lambda:
+ // Accessor to non-centrality parameter delta:
       RealType non_centrality()const;
    };
-
+
    }} // namespaces
-
+
 The noncentral T distribution is a generalization of the __students_t_distrib.
-Let X have a normal distribution with mean [delta] and variance 1, and let
+Let X have a normal distribution with mean [delta] and variance 1, and let
 [nu] S[super 2] have
-a chi-squared distribution with degrees of freedom [nu]. Assume that
+a chi-squared distribution with degrees of freedom [nu]. Assume that
 X and S[super 2] are independent. The
-distribution of t[sub [nu]]([delta])=X/S is called a
+distribution of t[sub [nu]]([delta])=X/S is called a
 noncentral t distribution with degrees of freedom [nu] and noncentrality
 parameter [delta].
 
@@ -45,25 +45,26 @@
 where [sub 1]F[sub 1](a;b;x) is a confluent hypergeometric function.
 
 The following graph illustrates how the distribution changes
-for different values of [delta]:
+for different values of [nu] and [delta]:
 
 [graph nc_t_pdf]
+[graph nc_t_cdf]
 
 [h4 Member Functions]
 
- non_central_t_distribution(RealType v, RealType lambda);
-
+ non_central_t_distribution(RealType v, RealType delta);
+
 Constructs a non-central t distribution with degrees of freedom
 parameter /v/ and non-centrality parameter /delta/.
 
-Requires v > 0 and finite delta, otherwise calls __domain_error.
+Requires /v/ > 0 (including positive infinity) and finite /delta/, otherwise calls __domain_error.
 
       RealType degrees_of_freedom()const;
-
+
 Returns the parameter /v/ from which this object was constructed.
 
       RealType non_centrality()const;
-
+
 Returns the non-centrality parameter /delta/ from which this object was constructed.
 
 [h4 Non-member Accessors]
@@ -76,18 +77,16 @@
 [h4 Accuracy]
 
 The following table shows the peak errors
-(in units of [@http://en.wikipedia.org/wiki/Machine_epsilon epsilon])
+(in units of [@http://en.wikipedia.org/wiki/Machine_epsilon epsilon])
 found on various platforms with various floating-point types.
 Unless otherwise specified, any floating-point type that is narrower
 than the one shown will have __zero_error.
 
 [table Errors In CDF of the Noncentral T Distribution
-[[Significand Size] [Platform and Compiler] [[nu],[delta] < 600]]
+[[Significand Size (bits)] [Platform and Compiler] [[nu], [delta] < 600]]
 [[53] [Win32, Visual C++ 8] [Peak=120 Mean=26 ] ]
 [[64] [RedHat Linux IA32, gcc-4.1.1] [Peak=121 Mean=26] ]
-
 [[64] [Redhat Linux IA64, gcc-3.4.4] [Peak=122 Mean=25] ]
-
 [[113] [HPUX IA64, aCC A.06.06] [Peak=115 Mean=24] ]
 ]
 
@@ -96,25 +95,37 @@
 increases rapidly for [delta] > 500, likewise the accuracy decreases
 rapidly for very large [delta].]
 
-Accuracy for the quantile and PDF functions should be broadly similar,
-note however that the /mode/ is determined numerically and can not
-in principal be more accurate than the square root of machine epsilon.
+Accuracy for the quantile and PDF functions should be broadly similar.
+The /mode/ is determined numerically and cannot
+in principal be more accurate than the square root of
+floating-point type FPT epsilon, accessed using `boost::math::tools::epsilon<FPT>()`.
+For 64-bit `double`, epsilon is about 1e-16, so the fractional accuracy is limited to 1e-8.
 
 [h4 Tests]
 
-There are two sets of tests of this distribution: basic sanity checks
-compare this implementation to the test values given in
+There are two sets of tests of this distribution:
+
+Basic sanity checks compare this implementation to the test values given in
 "Computing discrete mixtures of continuous
 distributions: noncentral chisquare, noncentral t
 and the distribution of the square of the sample
 multiple correlation coefficient."
-Denise Benton, K. Krishnamoorthy,
+Denise Benton, K. Krishnamoorthy,
 Computational Statistics & Data Analysis 43 (2003) 249-267.
-While accuracy checks use test data computed with this
+
+Accuracy checks use test data computed with this
 implementation and arbitary precision interval arithmetic:
 this test data is believed to be accurate to at least 50
 decimal places.
 
+The cases of large (or infinite) [nu] and/or large [delta] has received special
+treatment to avoid catastrophic loss of accuracy.
+New tests have been added to confirm the improvement achieved.
+
+From Boost 1.52, degrees of freedom [nu] can be +[infin]
+when the normal distribution located at [delta]
+(equivalent to the central Student's t distribution)
+is used in place for accuracy and speed.
 
 [h4 Implementation]
 
@@ -124,7 +135,7 @@
 distributions: noncentral chisquare, noncentral t
 and the distribution of the square of the sample
 multiple correlation coefficient."
-Denise Benton, K. Krishnamoorthy,
+Denise Benton, K. Krishnamoorthy,
 Computational Statistics & Data Analysis 43 (2003) 249-267.
 
 This uses the following formula for the CDF:
@@ -150,7 +161,7 @@
 and therefore we have a means to compute either the probability or its
 complement directly without the risk of cancellation error. The
 crossover criterion for choosing whether to calculate the CDF or
-its complement is the same as for the
+its complement is the same as for the
 __non_central_beta_distrib.
 
 The PDF can be computed by a very similar method using:
@@ -162,17 +173,27 @@
 For both the PDF and CDF we switch to approximating the distribution by a
 Student's t distribution centred on [delta] when [nu] is very large.
 The crossover location appears to be when [delta]/(4[nu]) < [epsilon],
-this location was estimated by inspection of equation 2.6 in
-"A Comparison of Approximations To Persentiles of the
+this location was estimated by inspection of equation 2.6 in
+"A Comparison of Approximations To Percentiles of the
 Noncentral t-Distribution". H. Sahai and M. M. Ojeda,
-Revista Investigacion Operacional Vol 21, No 2, 2000, and confirmed by
-experimental testing. See also
-"Some Approximations to the Persentage Points of the Noncentral
+Revista Investigacion Operacional Vol 21, No 2, 2000, page 123.
+
+Equation 2.6 is a Fisher-Cornish expansion by Eeden and Johnson.
+The second term includes the ratio [delta]/(4[nu]),
+so when this term become negligible, this and following terms can be ignored,
+leaving just Student's t distribution centred on [delta].
+
+This was also confirmed by experimental testing.
+
+See also
+
+* "Some Approximations to the Percentage Points of the Noncentral
 t-Distribution". C. van Eeden. International Statistical Review, 29, 4-31.
-"Continuous Univariate Distributions". N.L. Johnson, S. Kotz and
+
+* "Continuous Univariate Distributions". N.L. Johnson, S. Kotz and
 N. Balkrishnan. 1995. John Wiley and Sons New York.
 
-The quantile is calculated via the usual
+The quantile is calculated via the usual
 [link math_toolkit.toolkit.internals1.roots2
 derivative-free root-finding techniques],
 with the initial guess taken as the quantile of a normal approximation
@@ -182,13 +203,13 @@
 functional maximisation of the PDF.
 
 The remaining functions (mean, variance etc) are implemented
-using the formulas given in
-Weisstein, Eric W. "Noncentral Student's t-Distribution."
-From MathWorld--A Wolfram Web Resource.
+using the formulas given in
+Weisstein, Eric W. "Noncentral Student's t-Distribution."
+From MathWorld--A Wolfram Web Resource.
 [@http://mathworld.wolfram.com/NoncentralStudentst-Distribution.html
 http://mathworld.wolfram.com/NoncentralStudentst-Distribution.html]
-and in the
-[@http://reference.wolfram.com/mathematica/ref/NoncentralStudentTDistribution.html
+and in the
+[@http://reference.wolfram.com/mathematica/ref/NoncentralStudentTDistribution.html
 Mathematica documentation].
 
 Some analytic properties of noncentral distributions
@@ -197,10 +218,12 @@
 
 Andrea van Aubel & Wolfgang Gawronski, Applied Mathematics and Computation, 141 (2003) 3-12.
 
+
+
 [endsect] [/section:nc_t_dist]
 
 [/ nc_t.qbk
- Copyright 2008 John Maddock and Paul A. Bristow.
+ Copyright 2008, 2012 John Maddock and Paul A. Bristow.
   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).

Modified: trunk/libs/math/doc/sf_and_dist/distributions/students_t.qbk
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/distributions/students_t.qbk (original)
+++ trunk/libs/math/doc/sf_and_dist/distributions/students_t.qbk 2012-08-22 06:53:41 EDT (Wed, 22 Aug 2012)
@@ -2,12 +2,12 @@
 
 ``#include <boost/math/distributions/students_t.hpp>``
 
- namespace boost{ namespace math{
-
- template <class RealType = double,
+ namespace boost{ namespace math{
+
+ template <class RealType = double,
              class ``__Policy`` = ``__policy_class`` >
    class students_t_distribution;
-
+
    typedef students_t_distribution<> students_t;
 
    template <class RealType, class ``__Policy``>
@@ -15,13 +15,13 @@
    {
       typedef RealType value_type;
       typedef Policy policy_type;
-
+
       // Construct:
       students_t_distribution(const RealType& v);
-
+
       // Accessor:
       RealType degrees_of_freedom()const;
-
+
       // degrees of freedom estimation:
       static RealType find_degrees_of_freedom(
          RealType difference_from_mean,
@@ -30,21 +30,21 @@
          RealType sd,
          RealType hint = 100);
    };
-
+
    }} // namespaces
-
-A statistical distribution published by William Gosset in 1908.
-His employer, Guinness Breweries, required him to publish under a
+
+A statistical distribution published by William Gosset in 1908.
+His employer, Guinness Breweries, required him to publish under a
 pseudonym (possibly to hide that they were using statistics),
 so he chose "Student". Given N independent measurements, let
 
 [equation students_t_dist]
 
-where /M/ is the population mean,[' ''' &#x3BC; '''] is the sample mean, and /s/ is the
+where /M/ is the population mean,[' ''' &#x3BC; '''] is the sample mean, and /s/ is the
 sample variance.
 
-Student's t-distribution is defined as the distribution of the random
-variable t which is - very loosely - the "best" that we can do not
+Student's t-distribution is defined as the distribution of the random
+variable t which is - very loosely - the "best" that we can do not
 knowing the true standard deviation of the sample. It has the PDF:
 
 [equation students_t_ref1]
@@ -61,15 +61,15 @@
 [h4 Member Functions]
 
    students_t_distribution(const RealType& v);
-
+
 Constructs a Student's t-distribution with /v/ degrees of freedom.
 
-Requires v > 0, otherwise calls __domain_error. Note that
-non-integral degrees of freedom are supported, and
-meaningful under certain circumstances.
+Requires /v/ > 0, otherwise calls __domain_error. Note that
+non-integral degrees of freedom are supported,
+and are meaningful under certain circumstances.
 
    RealType degrees_of_freedom()const;
-
+
 Returns the number of degrees of freedom of this distribution.
 
    static RealType find_degrees_of_freedom(
@@ -80,15 +80,15 @@
       RealType hint = 100);
 
 Returns the number of degrees of freedom required to observe a significant
-result in the Student's t test when the mean differs from the "true"
+result in the Student's t test when the mean differs from the "true"
 mean by /difference_from_mean/.
 
 [variablelist
 [[difference_from_mean][The difference between the true mean and the sample mean
                         that we wish to show is significant.]]
-[[alpha][The maximum acceptable probability of rejecting the null hypothesis
+[[alpha][The maximum acceptable probability of rejecting the null hypothesis
         when it is in fact true.]]
-[[beta][The maximum acceptable probability of failing to reject the null hypothesis
+[[beta][The maximum acceptable probability of failing to reject the null hypothesis
         when it is in fact false.]]
 [[sd][The sample standard deviation.]]
 [[hint][A hint for the location to start looking for the result, a good choice for this
@@ -99,10 +99,10 @@
 Remember that for a two-sided test, you must divide alpha by two
 before calling this function.]
 
-For more information on this function see the
-[@http://www.itl.nist.gov/div898/handbook/prc/section2/prc222.htm
+For more information on this function see the
+[@http://www.itl.nist.gov/div898/handbook/prc/section2/prc222.htm
 NIST Engineering Statistics Handbook].
-
+
 [h4 Non-member Accessors]
 
 All the [link math_toolkit.dist.dist_ref.nmp usual non-member accessor functions] that are generic to all
@@ -117,14 +117,14 @@
 
 [h4 Accuracy]
 
-The normal distribution is implemented in terms of the
+The normal distribution is implemented in terms of the
 [link math_toolkit.special.sf_beta.ibeta_function incomplete beta function]
 and [link math_toolkit.special.sf_beta.ibeta_inv_function its inverses],
 refer to accuracy data on those functions for more information.
 
 [h4 Implementation]
 
-In the following table /v/ is the degrees of freedom of the distribution,
+In the following table /v/ is the degrees of freedom of the distribution,
 /t/ is the random variate, /p/ is the probability and /q = 1-p/.
 
 [table
@@ -161,9 +161,9 @@
 [[kurtosis excess][if (v > 4) 6 \/ (df - 4) else NaN]]
 ]
 
-If the moment index k is less than v, then the moment is undefined.
-Evaluating the moment will throw a 'domain_error' unless ignored by a policy,
-when it will return 'std::numeric_limits<>::quiet_NaN();'
+If the moment index /k/ is less than /v/, then the moment is undefined.
+Evaluating the moment will throw a __domain_error unless ignored by a policy,
+when it will return `std::numeric_limits<>::quiet_NaN();`
 
 (For simplicity, we have not implemented the return of infinity in some cases
 as suggested by [@http://en.wikipedia.org/wiki/Student%27s_t-distribution Wikipedia Student's t].

Modified: trunk/libs/math/doc/sf_and_dist/graphs/dist_graphs.cpp
==============================================================================
--- trunk/libs/math/doc/sf_and_dist/graphs/dist_graphs.cpp (original)
+++ trunk/libs/math/doc/sf_and_dist/graphs/dist_graphs.cpp 2012-08-22 06:53:41 EDT (Wed, 22 Aug 2012)
@@ -391,8 +391,19 @@
    nc_t_plotter.add(boost::math::non_central_t(10, 0), "v=10, &#x3B4;=0");
    nc_t_plotter.add(boost::math::non_central_t(10, 5), "v=10, &#x3B4;=5");
    nc_t_plotter.add(boost::math::non_central_t(10, 10), "v=10, &#x3B4;=10");
+ nc_t_plotter.add(boost::math::non_central_t(std::numeric_limits<double>::infinity(), 15), "v=inf, &#x3B4;=15");
    nc_t_plotter.plot("Non Central T PDF", "nc_t_pdf.svg");
 
+ distribution_plotter<boost::math::non_central_t>
+ nc_t_CDF_plotter(false);
+ nc_t_CDF_plotter.add(boost::math::non_central_t(10, -10), "v=10, &#x3B4;=-10");
+ nc_t_CDF_plotter.add(boost::math::non_central_t(10, -5), "v=10, &#x3B4;=-5");
+ nc_t_CDF_plotter.add(boost::math::non_central_t(10, 0), "v=10, &#x3B4;=0");
+ nc_t_CDF_plotter.add(boost::math::non_central_t(10, 5), "v=10, &#x3B4;=5");
+ nc_t_CDF_plotter.add(boost::math::non_central_t(10, 10), "v=10, &#x3B4;=10");
+ nc_t_CDF_plotter.add(boost::math::non_central_t(std::numeric_limits<double>::infinity(), 15), "v=inf, &#x3B4;=15");
+ nc_t_CDF_plotter.plot("Non Central T CDF", "nc_t_cdf.svg");
+
    distribution_plotter<boost::math::beta_distribution<> >
       beta_plotter;
    beta_plotter.add(boost::math::beta_distribution<>(0.5, 0.5), "alpha=0.5, beta=0.5");

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-08-22 06:53:41 EDT (Wed, 22 Aug 2012)
@@ -1,9 +1,9 @@
 [template history[]
 
-Currently open bug reports can be viewed
+Currently open bug reports can be viewed
 [@https://svn.boost.org/trac/boost/query?status=assigned&status=new&status=reopened&component=math&col=id&col=summary&col=status&col=type&col=milestone&col=component&order=priority here].
 
-All bug reports including closed ones can be viewed
+All bug reports including closed ones can be viewed
 [@https://svn.boost.org/trac/boost/query?status=assigned&status=closed&status=new&status=reopened&component=math&col=id&col=summary&col=status&col=type&col=milestone&col=component&order=priority here].
 
 [h4 Boost-1.52]
@@ -13,12 +13,28 @@
 [@https://svn.boost.org/trac/boost/ticket/6934 #6934] (reported by Florian Schoppmann)
 by adding a function check_out_of_range to test many possible bad parameters.
 This test revealed several distributions where the checks for bad parameters were ineffective,
-and these have been rectified.
+and these have been rectified.
 * Fixed issue in Hankel functions that causes incorrect values to be returned for ['x < 0] and [nu] odd, see [@https://svn.boost.org/trac/boost/ticket/7135 #7135].
 * Fixed issues [@https://svn.boost.org/trac/boost/ticket/6517 #6517], [@https://svn.boost.org/trac/boost/ticket/6362 #6362],
 [@https://svn.boost.org/trac/boost/ticket/7053 #7053], [@https://svn.boost.org/trac/boost/ticket/2693 #2693],
 [@https://svn.boost.org/trac/boost/ticket/6937 #6937], [@https://svn.boost.org/trac/boost/ticket/7099 #7099].
 
+* Permitted infinite degrees of freedom [@https://svn.boost.org/trac/boost/ticket/7259 #7259]
+implemented using the normal distribution (requested by Thomas Mang).
+* Much enhanced accuracy for large degrees of freedom [nu] and/or large non-centrality [delta]
+by switching to use the Students t distribution
+(or Normal distribution for infinite degrees of freedom)
+ centered at delta,
+when [delta] / (4 * [nu]) < epsilon for the floating-point type in use.
+[@https://svn.boost.org/trac/boost/ticket/7259 #7259].
+It was found that the incomplete beta was suffering from serious cancellation errors
+when degrees of freedom was very large. (That has now been fixed in our code,
+but any code based on Didonato and Morris's original papers
+(probably every implementation out there actually) will have the same issue).
+
+[h4 Boost-1.51]
+See Boost-1.52 - some items were added but not listed in time for the release.
+
 [h4 Boost-1.50]
 
 * Promoted math constants to be 1st class citizens,
@@ -29,7 +45,7 @@
 * 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 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.
 * Fixed issue in `bessel_jy` which causes Y[sub 8.5](4[pi]) to yield a NaN.
@@ -66,7 +82,7 @@
 
 * Enabled long double support on OpenBSD (issue [@https://svn.boost.org/trac/boost/ticket/6014 #6014]).
 
-* Changed nextafter and related functions to behave in the same way as other implementations - so that nextafter(+INF, 0)
+* Changed nextafter and related functions to behave in the same way as other implementations - so that nextafter(+INF, 0)
 is a finite value (issue [@https://svn.boost.org/trac/boost/ticket/5823 #5832]).
 
 * Changed tuple include configuration to fix issue when using in conjunction with Boost.Tr1 (issue [@https://svn.boost.org/trac/boost/ticket/5934 #5934]).
@@ -95,7 +111,7 @@
 [h4 Boost-1.46.0]
 
 * Added Wald, Inverse Gaussian and geometric distributions.
-* Added information about configuration macros.
+* Added information about configuration macros.
 * Added support for mpreal as a real-numbered type.
 
 [h4 Boost-1.45.0]
@@ -129,7 +145,7 @@
 [h4 Boost-1.38.0]
 
 * Added Johan R'''&#xE5;'''de's optimised floating point classification routines.
-* Fixed code so that it compiles in GCC's -pedantic mode (bug report
+* Fixed code so that it compiles in GCC's -pedantic mode (bug report
 [@https://svn.boost.org/trac/boost/ticket/1451 #1451]).
 
 [h4 Boost-1.37.0]
@@ -175,7 +191,7 @@
 * Implemented the main probability distribution and density functions.
 * Implemented digamma.
 * Added more factorial functions.
-* Implemented the Hermite, Legendre and Laguerre polynomials plus the
+* Implemented the Hermite, Legendre and Laguerre polynomials plus the
 spherical harmonic functions from TR1.
 * Moved Xiaogang Zhang's elliptic integral code into the library,
 and brought them into line with the rest of the code.
@@ -211,7 +227,7 @@
 Sandbox and trunk last synchonised at revision: .
 
 ]
-[/
+[/
   Copyright 2006 - 2010 John Maddock and Paul A. Bristow.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at


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