Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world.

Known Issues, and TODO List

Predominantly this is a TODO list, or a list of possible future enhancements. Items labeled "High Priority" effect the proper functioning of the component, and should be fixed as soon as possible. Items labeled "Medium Priority" are desirable enhancements, often pertaining to the performance of the component, but do not effect it's accuracy or functionality. Items labeled "Low Priority" should probably be investigated at some point. Such classifications are obviously highly subjective.

If you don't see a component listed here, then we don't have any known issues with it.

Incomplete Beta
• Investigate Didonato and Morris' asymptotic expansion for large a and b (medium priority).
Inverse Gamma
• Investigate whether we can skip iteration altogether if the first approximation is good enough (Medium Priority).
Polynomials
• The Legendre and Laguerre Polynomials have surprisingly different error rates on different platforms, considering they are evaluated with only basic arithmetic operations. Maybe this is telling us something, or maybe not (Low Priority).
Elliptic Integrals
• [para Carlson's algorithms (mainly RJ) are somewhat prone to internal overflow/underflow when the arguments are very large or small. The homogeneity relations:] [para RF(ka, kb, kc) = k-1/2 RF(a, b, c)] [para and] [para RJ(ka, kb, kc, kr) = k-3/2 RJ(a, b, c, r)] [para could be used to sidestep trouble here: provided the problem domains can be accurately identified. (Medium Priority).]
• There are a several other integrals: Bulirsch's el functions that could be implemented using Carlson's integrals (Low Priority).
• The integrals K(k) and E(k) could be implemented using rational approximations (both for efficiency and accuracy), assuming we can find them. (Medium Priority).
Owen's T Function

There is a problem area at arbitrary precision when a is very close to 1. However, note that the value for T(h, 1) is well known and easy to compute, and if we replaced the ak terms in series T1, T2 or T4 by (ak - 1) then we would have the difference between T(h, a) and T(h, 1). Unfortunately this doesn't improve the convergence of those series in that area. It certainly looks as though a new series in terms of (1-a)k is both possible and desirable in this area, but it remains elusive at present.

Statistical distributions
• Student's t Perhaps switch to normal distribution as a better approximation for very large degrees of freedom?
Feature Requests

The following table lists distributions that are found in other packages but which are not yet present here, the more frequently the distribution is found, the higher the priority for implementing it:

Distribution

R

Mathematica 6

NIST

Regress+

Matlab

Geometric

X

X

-

-

X

Multinomial

X

-

-

-

X

Tukey Lambda

X

-

X

-

-

Half Normal / Folded Normal

-

X

-

X

-

Chi

-

X

-

X

-

Gumbel

-

X

-

X

-

Discrete Uniform

-

X

-

-

X

Log Series

-

X

-

X

-

Nakagami (generalised Chi)

-

-

-

X

X

Log Logistic

-

-

-

-

X

Tukey (Studentized range)

X

-

-

-

-

Wilcoxon rank sum

X

-

-

-

-

Wincoxon signed rank

X

-

-

-

-

Non-central Beta

X

-

-

-

-

Maxwell

-

X

-

-

-

Beta-Binomial

-

X

-

-

-

Beta-negative Binomial

-

X

-

-

-

Zipf

-

X

-

-

-

Birnbaum-Saunders / Fatigue Life

-

-

X

-

-

Double Exponential

-

-

X

-

-

Power Normal

-

-

X

-

-

Power Lognormal

-

-

X

-

-

Cosine

-

-

-

X

-

Double Gamma

-

-

-

X

-

Double Weibul

-

-

-

X

-

Hyperbolic Secant

-

-

-

X

-

Semicircular

-

-

-

X

-

-

-

-

X

-

Birr / Fisk

-

-

-

X

-

Reciprocal

-

-

-

X

-

Kolmogorov Distribution

-

-

-

-

-

Also asked for more than once:

• Add support for interpolated distributions, possibly combine with numeric integration and differentiation.
• Add support for bivariate and multivariate distributions: most especially the normal.
• Add support for the log of the cdf and pdf: this is mainly a performance optimisation since we can avoid some special function calls for some distributions by returning the log of the result.
 Copyright © 2006-2021 Nikhar Agrawal, Anton Bikineev, Matthew Borland, Paul A. Bristow, Marco Guazzone, Christopher Kormanyos, Hubert Holin, Bruno Lalande, John Maddock, Evan Miller, Jeremy Murphy, Matthew Pulver, Johan Råde, Gautam Sewani, Benjamin Sobotta, Nicholas Thompson, Thijs van den Berg, Daryle Walker and Xiaogang Zhang 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)