| Home | Libraries | People | FAQ | More

## History and What's New

Currently open bug reports can be viewed here.

All bug reports including closed ones can be viewed here.

##### Boost-1.54

- Major reorganization to incorporate other Boost.Math like Integer Utilities Integer Utilities (Greatest Common Divisor and Least Common Multiple), quaternions and octonions. Making new chapter headings.
- Added many references to Boost.Multiprecision and `cpp_dec_float_50` as an example of a User-defined Type (UDT).
- Added Clang to list of supported compilers.
- Fixed constants to use a thread-safe cache of computed values when used at arbitrary precision.
- Added finding zeros of Bessel functions `cyl_bessel_j_zero`, `cyl_neumann_zero`, `airy_ai_zero` and `airy_bi_zero`(by Christopher Kormanyos).
- More accuracy improvements to the Bessel J and Y functions from Rocco Romeo.
- Fixed nasty cyclic dependency bug that caused some headers to not compile #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 #7905.
- Added minimal __float128 support.
- Fixed bug in edge-cases of poisson quantile #8308.
- Adjusted heuristics used in Halley iteration to cope with inverting the incomplete beta in tricky regions where the derivative is flatlining. Example is computing the quantile of the Fisher F distribution for probabilities smaller than machine epsilon. See ticket #8314.

##### Boost-1.53

- Fixed issues #7325, #7415 and #7416, #7183, #7649, #7694, #4445, #7492, #7891, #7429.
- Fixed mistake in calculating pooled standard deviation in two-sample students t example #7402.
- Improve complex acos/asin/atan, see #7290, #7291.
- Improve accuracy in some corner cases of cyl_bessel_j and gamma_p/gamma_q thanks to suggestions from Rocco Romeo.
- Improve accuracy of Bessel J and Y for integer orders thanks to suggestions from Rocco Romeo.

##### Boost-1.52

- Corrected moments for small degrees of freedom #7177 (reported by Thomas Mang).
- Added Airy functions and Jacobi Elliptic functions.
- Corrected failure to detect bad parameters in many distributions #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.
- Fixed issue in Hankel functions that causes incorrect values to be returned for x < 0 and ν odd, see #7135.
- Fixed issues #6517, #6362, #7053, #2693, #6937, #7099.
- Permitted infinite degrees of freedom #7259 implemented using the normal distribution (requested by Thomas Mang).
- Much enhanced accuracy for large degrees of freedom ν and/or large non-centrality δ by switching to use the Students t distribution (or Normal distribution for infinite degrees of freedom) centered at delta, when δ / (4 * ν) < epsilon for the floating-point type in use. #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).

##### Boost-1.51

See Boost-1.52 - some items were added but not listed in time for the release.

##### Boost-1.50

- Promoted math constants to be 1st class citizens, including convenient access to the most widely used built-in float, double, long double via three namespaces.
- Added the Owen's T function and Skew Normal distribution written by Benjamin Sobotta: see Owens T and skew_normal_distrib.
- Added Hankel functions cyl_hankel_1, cyl_hankel_2, sph_hankel_1 and sph_hankel_2.
- Corrected issue #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.
- Fixed issue in `bessel_jy` which causes Y8.5(4π) to yield a NaN.

##### Boost-1.49

- Deprecated wrongly named `twothirds` math constant in favour of `two_thirds` (with underscore separator). (issue #6199).
- Refactored test data and some special function code to improve support for arbitary precision and/or expression-template-enabled types.
- Added new faster zeta function evaluation method.

Fixed issues:

- Corrected CDF complement for Laplace distribution (issue #6151).
- Corrected branch cuts on the complex inverse trig functions, to handle signed zeros (issue #6171).
- Fixed bug in `bessel_yn` which caused incorrect overflow errors to be raised for negative n (issue #6367).
- Also fixed minor/cosmetic/configuration issues #6120, #6191, #5982, #6130, #6234, #6307, #6192.

##### Boost-1.48

- Added new series evaluation methods to the cyclic Bessel I, J, K and Y functions. Also taken great care to avoid spurious over and underflow of these functions. Fixes issue #5560
- Added an example of using Inverse Chi-Squared distribution for Bayesian statistics, provided by Thomas Mang.
- Added tests to use improved version of lexical_cast which handles C99 nonfinites without using globale facets.
- Corrected wrong out-of-bound uniform distribution CDF complement values #5733.
- Enabled long double support on OpenBSD (issue #6014).
- Changed nextafter and related functions to behave in the same way as other implementations - so that nextafter(+INF, 0) is a finite value (issue #5832).
- Changed tuple include configuration to fix issue when using in conjunction with Boost.Tr1 (issue #5934).
- Changed class eps_tolerance to behave correctly when both ends of the range are zero (issue #6001).
- Fixed missing include guards on prime.hpp (issue #5927).
- Removed unused/undocumented constants from constants.hpp (issue #5982).
- Fixed missing std:: prefix in nonfinite_num_facets.hpp (issue #5914).
- Minor patches for Cray compiler compatibility.

##### Boost-1.47

- Added changesign function to sign.hpp to facilitate addition of nonfinite facets.
- Addition of nonfinite facets from Johan Rade, with tests, examples of use for C99 format infinity and NaN, and documentation.
- Added tests and documentation of changesign from Johan Rade.

##### Boost-1.46.1

- Fixed issues #5095, #5113.

##### Boost-1.46.0

- Added Wald, Inverse Gaussian and geometric distributions.
- Added information about configuration macros.
- Added support for mpreal as a real-numbered type.

##### Boost-1.45.0

- Added warnings about potential ambiguity with std random library in distribution and function names.
- Added inverse gamma distribution and inverse chi_square and scaled inverse chi_square.
- Editorial revision of documentation, and added FAQ.

##### Boost-1.44.0

- Fixed incorrect range and support for Rayleigh distribution.
- Fixed numerical error in the quantile of the Student's T distribution: the function was returning garbage values for non-integer degrees of freedom between 2 and 3.

##### Boost-1.41.0

- Significantly improved performance for the incomplete gamma function and its inverse.

##### Boost-1.40.0

- Added support for MPFR as a bignum type.
- Added some full specializations of the policy classes to reduce compile times.
- Added logistic and hypergeometric distributions, from Gautam Sewani's Google Summer of Code project.
- Added Laplace distribution submitted by Thijs van den Berg.
- Updated performance test code to include new distributions, and improved the performance of the non-central distributions.
- Added SSE2 optimised Lanczos approximation code, from Gautam Sewani's Google Summer of Code project.
- Fixed bug in cyl_bessel_i that used an incorrect approximation for ν = 0.5, also effects the non-central Chi Square Distribution when ν = 3, see bug report #2877.
- Fixed minor bugs #2873.

##### Boost-1.38.0

- Added Johan Råde's optimised floating point classification routines.
- Fixed code so that it compiles in GCC's -pedantic mode (bug report #1451).

##### Boost-1.37.0

- Improved accuracy and testing of the inverse hypergeometric functions.

##### Boost-1.36.0

- Added Noncentral Chi Squared Distribution.
- Added Noncentral Beta Distribution.
- Added Noncentral F Distribution.
- Added Noncentral T Distribution.
- Added Exponential Integral Functions.
- Added Zeta Function.
- Added Rounding and Truncation functions.
- Added Compile time powers of runtime bases.
- Added SSE2 optimizations for Lanczos evaluation.

##### Boost-1.35.0: Post Review First Official Release

- Added Policy based framework that allows fine grained control over function behaviour.
- Breaking change: Changed default behaviour for domain, pole and overflow errors to throw an exception (based on review feedback), this behaviour can be customised using Policy's.
- Breaking change: Changed exception thrown when an internal evaluation error occurs to boost::math::evaluation_error.
- Breaking change: Changed discrete quantiles to return an integer result: this is anything up to 20 times faster than finding the true root, this behaviour can be customised using Policy's.
- Polynomial/rational function evaluation is now customisable and hopefully faster than before.
- Added performance test program.

##### Milestone 4: Second Review Candidate (1st March 2007)

- Moved Xiaogang Zhang's Bessel Functions code into the library, and brought them into line with the rest of the code.
- Added C# "Distribution Explorer" demo application.

##### Milestone 3: First Review Candidate (31st Dec 2006)

- Implemented the main probability distribution and density functions.
- Implemented digamma.
- Added more factorial functions.
- 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.
- Moved Hubert Holin's existing Boost.Math special functions into this library and brought them into line with the rest of the code.

##### Milestone 2: Released September 10th 2006

- Implement preview release of the statistical distributions.
- Added statistical distributions tutorial.
- Implemented root finding algorithms.
- Implemented the inverses of the incomplete gamma and beta functions.
- Rewrite erf/erfc as rational approximations (valid to 128-bit precision).
- Integrated the statistical results generated from the test data with Boost.Test: uses a database of expected results, indexed by test, floating point type, platform, and compiler.
- Improved lgamma near 1 and 2 (rational approximations).
- Improved erf/erfc inverses (rational approximations).
- Implemented Rational function generation (the Remez method).

##### Milestone 1: Released March 31st 2006

- Implement gamma/beta/erf functions along with their incomplete counterparts.
- Generate high quality test data, against which future improvements can be judged.
- Provide tools for the evaluation of infinite series, continued fractions, and rational functions.
- Provide tools for testing against tabulated test data, and collecting statistics on error rates.
- Provide sufficient docs for people to be able to find their way around the library.

SVN Revisions:

Sandbox and trunk last synchonised at revision: .