Currently open bug reports can be viewed here.
    
      All bug reports including closed ones can be viewed here.
    
      Patches:
    
- 
          Fixed evaluation of zero polynomial in polynomial.hpp, see 12532.
        
- 
          Fixed missing header include in boost/math/tools/tuple.hpp, see 12537.
        
      New Features:
    
- 
          Enabled all the special function code to work correctly with types whose
          precision can change at runtime: for example type mpfr_floatfrom Boost.Multiprecision.
      Patches:
    
- 
          Fix tgamma_delta_ratio for cases where the delta is small compared to the
          base.
        
- 
          Fix misc GCC-4.4 test failures.
        
      New Features:
    
- 
          Polynomial arithmetic added to tools.
        
      New Features:
    
- 
          Promote the root finding and function minimization code to first class
          citizens - these are now officially supported as part of the library.
        
- 
          Allow the library to be used and tested with compiler exception handling
          support turned off. To better facilitate this the default error handling
          policies have been changed to errno_on_error but only
          when the compiler has no exception handling support.
        
      Patches:
    
- 
          Fix behaviour of the non-central chi-squared distribution when the non-centrality
          parameter is zero to match the chi-squared, see 11557.
        
- 
          Fix comments in code for the hypergeometric to match what it actually does,
          also fixes the parameter access functions to return the correct values.
          See 11556.
        
- 
          Stopped using hidden visiblity library build with the Oracle compiler as
          it leads to unresolved externals from the C++ standard library. See 11547.
        
- 
          Fix unintended use of __declspec when building with Oracle C++. See 11546.
        
- 
          Fix corner case bug in root bracketing code, see 11532.
        
- 
          Add some missing typecasts in arguments to std::max in Bernoulli code.
          See 11453.
        
- 
          Fix mistaken assumptions about the possible values for FLT_EVAL_METHOD.
          See 11429.
        
- 
          Completely revamped performance testing and error-rate measuring code so
          we can more easily document how well (or not!) we're doing. This information
          will hopefully get more frequently updated in future as it's more or less
          automatically generated - see the reporting sub-directory
          for more information.
        
- 
          Fix some corner cases in the beta, incomplete beta, and incomplete beta
          derivative. With thanks to Rocco Romeo.
        
- 
          Reorganized the Bessel functions internally to improve the performance
          of Jn and Yn.
        
- 
          Fixed skewness formula for triangular distribution, see #11768.
        
- 
          Fixed some examples so they compile on Unix platforms which have an ::exception
          struct declared, see #11827.
        
- 
          Correct mistake in triangular distribution skewness formula 11768,
          reported by Juan Leni.
        
      Patch release for Boost-1.58:
    
- 
          Minor patch
          for Haiku support.
        
- 
          Fix the decimal digit count for 128-bit floating point types.
        
- 
          Fix a few documentation typos.
        
- 
          Added two new special functions - trigamma
          and polygamma.
        
- 
          Fixed namespace scope constants so they are constexpr on conforming compilers,
          see https://svn.boost.org/trac/boost/ticket/10901.
        
- 
          Fixed various cases of spurious under/overflow in the incomplete beta and
          gamma functions, plus the elliptic integrals, with thanks to Rocco Romeo.
        
- 
          Fix 3-arg legendre_p
          and legendre_q functions
          to not call the policy based overload if the final argument is not actually
          a policy.
        
- 
          Cleaned up some dead code in the incomplete beta function, see #10985.
        
- 
          Fixed extreme-value pdf for large valued inputs, see #10938.
        
- 
          Large update to the Elliptic integral code to use Carlson's latest algorithms
          - these should be more stable, more accurate and slightly faster than before.
          Also added support for Carlson's RG integral.
        
- 
          Added ellint_d, jacobi_zeta and heuman_lambda elliptic
          integrals.
        
- 
          Switched documentation to use SVG rather than PNG graphs and equations
          - browsers seem to have finally caught up!
        
- 
          Added Hyperexponential
          Distribution.
        
- 
          Fix some spurious overflows in the incomplete gamma functions (with thanks
          to Rocco Romeo).
        
- 
          Fix bug in derivative of incomplete beta when a = b = 0.5 - this also effects
          several non-central distributions, see 10480.
        
- 
          Fixed some corner cases in round.
        
- 
          Don't support 80-bit floats in cstdfloat.hpp if standard library support
          is broken.
        
- 
          Breaking change: moved a number of non-core
          headers that are predominantly used for internal maintenance into libs/math/include_private. The headers effected
          areboost/math/tools/test_data.hpp,boost/math/tools/remez.hpp,boost/math/constants/generate.hpp,boost/math/tools/solve.hpp,boost/math/tools/test.hpp. You can continue to use these headers
          by addinglibs/math/include_privateto your compiler's include
          path.
- 
          Breaking change: A number of distributions
          and special functions were returning the maximum finite value rather than
          raising an overflow_error,
          this has now been fixed, which means these functions now behave as documented.
          However, since the default behavior on raising an overflow_error
          is to throw a std::overflow_errorexception, applications
          which have come to reply rely on these functions not throwing may experience
          exceptions where they did not before. The special functions involved are
          gamma_p_inva,
          gamma_q_inva,
          ibeta_inva,
          ibetac_inva,
          ibeta_invb,
          ibetac_invb,
          gamma_p_inv, gamma_q_inv. The distributions
          involved are Pareto
          Distribution, Beta
          Distribution, Geometric
          Distribution, Negative
          Binomial Distribution, Binomial
          Distribution, Chi
          Squared Distribution, Gamma
          Distribution, Inverse
          chi squared Distribution, Inverse
          Gamma Distribution. See #10111.
- 
          Fix round and trunc functions so they can
          be used with integer arguments, see #10066.
        
- 
          Fix Halley iteration to handle zero derivative (with non-zero second derivative),
          see #10046.
        
- 
          Fix Geometric distribution use of Policies, see #9833.
        
- 
          Fix corner cases in the negative binomial distribution, see #9834.
        
- 
          Fix compilation failures on Mac OS.
        
- 
          Changed version number to new Boost.Math specific version now that we're
          in the modular Boost world.
        
- 
          Added Bernoulli
          numbers, changed arbitrary precision tgamma/lgamma to use Sterling's
          approximation (from Nikhar Agrawal).
        
- 
          Added first derivatives of the Bessel functions: cyl_bessel_j_prime,
          cyl_neumann_prime,
          cyl_bessel_i_prime,
          cyl_bessel_k_prime,
          sph_bessel_prime
          and sph_neumann_prime
          (from Anton Bikineev).
        
- 
          Fixed buggy Student's t example code, along with docs for testing sample
          means for equivalence.
        
- 
          Documented max_iterparameter
          in root finding code better, see #9225.
- 
          Add option to explicitly enable/disable use of __float128 in constants
          code, see #9240.
        
- 
          Cleaned up handling of negative values in Bessel I0 and I1 code (removed
          dead code), see #9512.
        
- 
          Fixed handling of very small values passed to tgamma
          and lgamma so they
          don't generate spurious overflows (thanks to Rocco Romeo).
        
- 
          #9672 PDF and
          CDF of a Laplace distribution throwing domain_error Random variate
          can now be infinite.
        
- 
          Fixed several corner cases in rising_factorial,
          falling_factorial
          and tgamma_delta_ratio
          with thanks to Rocco Romeo.
        
- 
          Fixed several corner cases in rising_factorial,
          falling_factorial
          and tgamma_delta_ratio
          (thanks to Rocco Romeo).
        
- 
          Removed constant pow23_four_minus_pi
          whose value did not match the name (and was unused by Boost.Math),
          see #9712.
- 
          Suppress numerous warnings (mostly from GCC-4.8 and MSVC) #8384,
          #8855,
          #9107,
          #9109..
        
- 
          Fixed PGI compilation issue #8333.
        
- 
          Fixed PGI constant value initialization issue that caused erf to generate
          incorrect results #8621.
        
- 
          Prevent macro expansion of some C99 macros that are also C++ functions
          #8732
          and #8733..
        
- 
          Fixed Student's T distribution to behave correctly with huge degrees of
          freedom (larger than the largest representable integer) #8837.
        
- 
          Make some core functions usable with long
          doubleeven when the platform has
          no standard librarylong doublesupport #8940.
- 
          Fix error handling of distributions to catch invalid scale and location
          parameters when the random variable is infinite #9042
          and #9126.
        
- 
          Add workaround for broken <tuple> in Intel C++ 14 #9087.
        
- 
          Improve consistency of argument reduction in the elliptic integrals #9104.
        
- 
          Fix bug in inverse incomplete beta that results in cancellation errors
          when the beta function is really an arcsine or Student's T distribution.
        
- 
          Fix issue in Bessel I and K function continued fractions that causes spurious
          over/underflow.
        
- 
          Add improvement to non-central chi squared distribution quantile due to
          Thomas Luu, Fast and accurate
          parallel computation of quantile functions for random number generation,
          Doctorial Thesis 2016. Efficient
          and Accurate Parallel Inversion of the Gamma Distribution, Thomas Luu
         
- 
          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_50as 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_zeroandairy_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.
        
- 
          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.
        
- 
          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).
        
      See Boost-1.52 - some items were added but not listed in time for the release.
    
- 
          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
          doubledoes not. So for example
          128-bit rational approximations will work with UDT's and do the right thing,
          even thoughlong doublemay be only 64 or 80 bits.
- 
          Fixed issue in bessel_jywhich causes Y8.5(4π) to yield a NaN.
- 
          Deprecated wrongly named twothirdsmath constant in favour oftwo_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_ynwhich 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.
        
- 
          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.
        
- 
          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.
        
- 
          Added Wald, Inverse Gaussian and geometric distributions.
        
- 
          Added information about configuration macros.
        
- 
          Added support for mpreal as a real-numbered type.
        
- 
          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.
        
- 
          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.
        
- 
          Significantly improved performance for the incomplete gamma function and
          its inverse.
        
- 
          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.
        
- 
          Added Johan Råde's optimised floating point classification routines.
        
- 
          Fixed code so that it compiles in GCC's -pedantic mode (bug report #1451).
        
- 
          Improved accuracy and testing of the inverse hypergeometric functions.
        
- 
          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.
        
- 
          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.
        
- 
          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.
        
- 
          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.
        
- 
          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).
        
- 
          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: .