blob: 298c6bd8552cd38a3a295ef96ea616195c2c5ac0 [file] [log] [blame]
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Known Issues, and Todo List</title>
<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
<link rel="home" href="../../index.html" title="Math Toolkit">
<link rel="up" href="../status.html" title="Library Status">
<link rel="prev" href="compilers.html" title="Compilers">
<link rel="next" href="credits.html" title="Credits and Acknowledgements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="compilers.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../status.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="credits.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="math_toolkit.status.issues"></a><a class="link" href="issues.html" title="Known Issues, and Todo List"> Known Issues, and Todo List</a>
</h3></div></div></div>
<p>
This section lists those issues that are known about.
</p>
<p>
Predominantly this is a TODO list, or a list of possible future enhancements.
Items labled "High Priority" effect the proper functioning of the
component, and should be fixed as soon as possible. Items labled "Medium
Priority" are desirable enhancements, often pertaining to the performance
of the component, but do not effect it's accuracy or functionality. Items
labled "Low Priority" should probably be investigated at some point.
Such classifications are obviously highly subjective.
</p>
<p>
If you don't see a component listed here, then we don't have any known issues
with it.
</p>
<a name="math_toolkit.status.issues.tgamma"></a><h5>
<a name="id1293781"></a>
<a class="link" href="issues.html#math_toolkit.status.issues.tgamma">tgamma</a>
</h5>
<div class="itemizedlist"><ul type="disc"><li>
Can the <a class="link" href="../backgrounders/lanczos.html" title="The Lanczos Approximation">Lanczos approximation</a>
be optimized any further? (low priority)
</li></ul></div>
<a name="math_toolkit.status.issues.incomplete_beta"></a><h5>
<a name="id1293810"></a>
<a class="link" href="issues.html#math_toolkit.status.issues.incomplete_beta">Incomplete Beta</a>
</h5>
<div class="itemizedlist"><ul type="disc"><li>
Investigate Didonato and Morris' asymptotic expansion for large a and
b (medium priority).
</li></ul></div>
<a name="math_toolkit.status.issues.inverse_gamma"></a><h5>
<a name="id1293834"></a>
<a class="link" href="issues.html#math_toolkit.status.issues.inverse_gamma">Inverse Gamma</a>
</h5>
<div class="itemizedlist"><ul type="disc"><li>
Investigate whether we can skip iteration altogether if the first approximation
is good enough (Medium Priority).
</li></ul></div>
<a name="math_toolkit.status.issues.polynomials"></a><h5>
<a name="id1293858"></a>
<a class="link" href="issues.html#math_toolkit.status.issues.polynomials">Polynomials</a>
</h5>
<div class="itemizedlist"><ul type="disc"><li>
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).
</li></ul></div>
<a name="math_toolkit.status.issues.elliptic_integrals"></a><h5>
<a name="id1293882"></a>
<a class="link" href="issues.html#math_toolkit.status.issues.elliptic_integrals">Elliptic Integrals</a>
</h5>
<div class="itemizedlist"><ul type="disc">
<li>
Carlson's algorithms are essentially unchanged from Xiaogang Zhang's
Google Summer of Code student project, and are based on Carlson's original
papers. However, Carlson has revised his algorithms since then (refer
to the references in the elliptic integral docs for a list), to improve
performance and accuracy, we may be able to take advantage of these improvements
too (Low Priority).
</li>
<li>
<p>Carlson's algorithms (mainly R<sub>J</sub>) are somewhat prone to internal overflow/underflow
when the arguments are very large or small. The homogeneity relations:</p>
<p>R<sub>F</sub>(ka,
kb, kc) = k<sup>-1/2</sup> R<sub>F</sub>(a, b, c)</p>
<p>and</p>
<p>R<sub>J</sub>(ka, kb, kc, kr) = k<sup>-3/2</sup> R<sub>J</sub>(a, b, c, r)</p>
<p>could
be used to sidestep trouble here: provided the problem domains can be
accurately identified. (Medium Priority).</p>
</li>
<li>
Carlson's R<sub>C</sub> can be reduced to elementary funtions (asin and log), would
it be more efficient evaluated this way, rather than by Carlson's algorithms?
(Low Priority).
</li>
<li>
Should we add an implementation of Carlson's R<sub>G</sub>? It's not required for
the Legendre form integrals, but some people may find it useful (Low
Priority).
</li>
<li>
There are a several other integrals: D(&#966;, k), Z(&#946;, k), &#923;<sub>0</sub>(&#946;, k) and Bulirsch's
<span class="emphasis"><em>el</em></span> functions that could be implemented using Carlson's
integrals (Low Priority).
</li>
<li>
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).
</li>
<li>
There is a sub-domain of <a class="link" href="../special/ellint/ellint_3.html" title="Elliptic Integrals of the Third Kind - Legendre Form">ellint_3</a>
that is unimplemented (see the docs for details), currently it's not
clear how to solve this issue, or if it's ever likely to be an real problem
in practice - especially as most other implementations don't support
this domain either (Medium Priority).
</li>
</ul></div>
<a name="math_toolkit.status.issues.inverse_hyperbolic_functions"></a><h5>
<a name="id1294013"></a>
<a class="link" href="issues.html#math_toolkit.status.issues.inverse_hyperbolic_functions">Inverse
Hyperbolic Functions</a>
</h5>
<div class="itemizedlist"><ul type="disc"><li>
These functions are inherited from previous Boost versions, before <a class="link" href="../special/powers/log1p.html" title="log1p">log1p</a> became widely
available. Would they be better expressed in terms of this function?
This is probably only an issue for very high precision types (Low Priority).
</li></ul></div>
<a name="math_toolkit.status.issues.statistical_distributions"></a><h5>
<a name="id1294042"></a>
<a class="link" href="issues.html#math_toolkit.status.issues.statistical_distributions">Statistical
distributions</a>
</h5>
<div class="itemizedlist"><ul type="disc"><li>
Student's t Perhaps switch to normal distribution as a better approximation
for very large degrees of freedom?
</li></ul></div>
<a name="math_toolkit.status.issues.feature_requests"></a><h5>
<a name="id1294066"></a>
<a class="link" href="issues.html#math_toolkit.status.issues.feature_requests">Feature Requests</a>
</h5>
<p>
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:
</p>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
<col>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Distribution
</p>
</th>
<th>
<p>
R
</p>
</th>
<th>
<p>
Mathematica 6
</p>
</th>
<th>
<p>
NIST
</p>
</th>
<th>
<p>
Regress+
</p>
</th>
<th>
<p>
Matlab
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
Inverse Gausian / Inverse Normal
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
X
</p>
</td>
</tr>
<tr>
<td>
<p>
Geometric
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
</tr>
<tr>
<td>
<p>
Multinomial
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
</tr>
<tr>
<td>
<p>
Tukey Lambda
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
Half Normal / Folded Normal
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
Chi
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
Gumbel
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
Discrete Uniform
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
</tr>
<tr>
<td>
<p>
Log Series
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
Nakagami (generalised Chi)
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
X
</p>
</td>
</tr>
<tr>
<td>
<p>
Log Logistic
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
</tr>
<tr>
<td>
<p>
Tukey (Studentized range)
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
Wilcoxon rank sum
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
Wincoxon signed rank
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
Non-central Beta
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
Laplace
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
Maxwell
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
Beta-Binomial
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
Beta-negative Binomial
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
Zipf
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
Birnbaum-Saunders / Fatigue Life
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
Double Exponential
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
Power Normal
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
Power Lognormal
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
Cosine
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
Double Gamma
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
Double Weibul
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
Hyperbolic Secant
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
Semicircular
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
Bradford
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
Birr / Fisk
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
Reciprocal
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
-
</p>
</td>
<td>
<p>
X
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
</tbody>
</table></div>
<p>
Also asked for more than once:
</p>
<div class="itemizedlist"><ul type="disc">
<li>
Add support for interpolated distributions, possibly combine with numeric
integration and differentiation.
</li>
<li>
Add support for bivariate and multivariate distributions: most especially
the normal.
</li>
<li>
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.
</li>
</ul></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2006 , 2007, 2008, 2009, 2010 John Maddock, Paul A. Bristow,
Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani and
Thijs van den Berg<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="compilers.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../status.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="credits.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>