blob: 240ac37a464bd0704309e62ec5aee3a79c3db9f5 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>Beta (Apache Commons Math 3.3 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Beta (Apache Commons Math 3.3 API)";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Beta.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev Class</li>
<li><a href="../../../../../org/apache/commons/math3/special/Erf.html" title="class in org.apache.commons.math3.special"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/commons/math3/special/Beta.html" target="_top">Frames</a></li>
<li><a href="Beta.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.commons.math3.special</div>
<h2 title="Class Beta" class="title">Class Beta</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.commons.math3.special.Beta</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="strong">Beta</span>
extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block"><p>
This is a utility class that provides computation methods related to the
Beta family of functions.
</p>
<p>
Implementation of <a href="../../../../../org/apache/commons/math3/special/Beta.html#logBeta(double, double)"><code>logBeta(double, double)</code></a> is based on the
algorithms described in
<ul>
<li><a href="http://dx.doi.org/10.1145/22721.23109">Didonato and Morris
(1986)</a>, <em>Computation of the Incomplete Gamma Function Ratios
and their Inverse</em>, TOMS 12(4), 377-393,</li>
<li><a href="http://dx.doi.org/10.1145/131766.131776">Didonato and Morris
(1992)</a>, <em>Algorithm 708: Significant Digit Computation of the
Incomplete Beta Function Ratios</em>, TOMS 18(3), 360-373,</li>
</ul>
and implemented in the
<a href="http://www.dtic.mil/docs/citations/ADA476840">NSWC Library of Mathematical Functions</a>,
available
<a href="http://www.ualberta.ca/CNS/RESEARCH/Software/NumericalNSWC/site.html">here</a>.
This library is "approved for public release", and the
<a href="http://www.dtic.mil/dtic/pdf/announcements/CopyrightGuidance.pdf">Copyright guidance</a>
indicates that unless otherwise stated in the code, all FORTRAN functions in
this library are license free. Since no such notice appears in the code these
functions can safely be ported to Commons-Math.
</p></div>
<dl><dt><span class="strong">Version:</span></dt>
<dd>$Id: Beta.java 1546350 2013-11-28 11:41:12Z erans $</dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/special/Beta.html#logBeta(double, double)">logBeta</a></strong>(double&nbsp;p,
double&nbsp;q)</code>
<div class="block">Returns the value of log B(p, q) for 0 ≤ x ≤ 1 and p, q > 0.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/special/Beta.html#logBeta(double, double, double, int)">logBeta</a></strong>(double&nbsp;a,
double&nbsp;b,
double&nbsp;epsilon,
int&nbsp;maxIterations)</code>
<div class="block"><strong>Deprecated.</strong>&nbsp;
<div class="block"><i>as of version 3.1, this method is deprecated as the
computation of the beta function is no longer iterative; it will be
removed in version 4.0. Current implementation of this method
internally calls <a href="../../../../../org/apache/commons/math3/special/Beta.html#logBeta(double, double)"><code>logBeta(double, double)</code></a>.</i></div>
</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/special/Beta.html#regularizedBeta(double, double, double)">regularizedBeta</a></strong>(double&nbsp;x,
double&nbsp;a,
double&nbsp;b)</code>
<div class="block">Returns the
<a href="http://mathworld.wolfram.com/RegularizedBetaFunction.html">
regularized beta function</a> I(x, a, b).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/special/Beta.html#regularizedBeta(double, double, double, double)">regularizedBeta</a></strong>(double&nbsp;x,
double&nbsp;a,
double&nbsp;b,
double&nbsp;epsilon)</code>
<div class="block">Returns the
<a href="http://mathworld.wolfram.com/RegularizedBetaFunction.html">
regularized beta function</a> I(x, a, b).</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/special/Beta.html#regularizedBeta(double, double, double, double, int)">regularizedBeta</a></strong>(double&nbsp;x,
double&nbsp;a,
double&nbsp;b,
double&nbsp;epsilon,
int&nbsp;maxIterations)</code>
<div class="block">Returns the regularized beta function I(x, a, b).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/special/Beta.html#regularizedBeta(double, double, double, int)">regularizedBeta</a></strong>(double&nbsp;x,
double&nbsp;a,
double&nbsp;b,
int&nbsp;maxIterations)</code>
<div class="block">Returns the regularized beta function I(x, a, b).</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="regularizedBeta(double, double, double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>regularizedBeta</h4>
<pre>public static&nbsp;double&nbsp;regularizedBeta(double&nbsp;x,
double&nbsp;a,
double&nbsp;b)</pre>
<div class="block">Returns the
<a href="http://mathworld.wolfram.com/RegularizedBetaFunction.html">
regularized beta function</a> I(x, a, b).</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>x</code> - Value.</dd><dd><code>a</code> - Parameter <code>a</code>.</dd><dd><code>b</code> - Parameter <code>b</code>.</dd>
<dt><span class="strong">Returns:</span></dt><dd>the regularized beta function I(x, a, b).</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></code> - if the algorithm fails to converge.</dd></dl>
</li>
</ul>
<a name="regularizedBeta(double, double, double, double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>regularizedBeta</h4>
<pre>public static&nbsp;double&nbsp;regularizedBeta(double&nbsp;x,
double&nbsp;a,
double&nbsp;b,
double&nbsp;epsilon)</pre>
<div class="block">Returns the
<a href="http://mathworld.wolfram.com/RegularizedBetaFunction.html">
regularized beta function</a> I(x, a, b).</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>x</code> - Value.</dd><dd><code>a</code> - Parameter <code>a</code>.</dd><dd><code>b</code> - Parameter <code>b</code>.</dd><dd><code>epsilon</code> - When the absolute value of the nth item in the
series is less than epsilon the approximation ceases to calculate
further elements in the series.</dd>
<dt><span class="strong">Returns:</span></dt><dd>the regularized beta function I(x, a, b)</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></code> - if the algorithm fails to converge.</dd></dl>
</li>
</ul>
<a name="regularizedBeta(double, double, double, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>regularizedBeta</h4>
<pre>public static&nbsp;double&nbsp;regularizedBeta(double&nbsp;x,
double&nbsp;a,
double&nbsp;b,
int&nbsp;maxIterations)</pre>
<div class="block">Returns the regularized beta function I(x, a, b).</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>x</code> - the value.</dd><dd><code>a</code> - Parameter <code>a</code>.</dd><dd><code>b</code> - Parameter <code>b</code>.</dd><dd><code>maxIterations</code> - Maximum number of "iterations" to complete.</dd>
<dt><span class="strong">Returns:</span></dt><dd>the regularized beta function I(x, a, b)</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></code> - if the algorithm fails to converge.</dd></dl>
</li>
</ul>
<a name="regularizedBeta(double, double, double, double, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>regularizedBeta</h4>
<pre>public static&nbsp;double&nbsp;regularizedBeta(double&nbsp;x,
double&nbsp;a,
double&nbsp;b,
double&nbsp;epsilon,
int&nbsp;maxIterations)</pre>
<div class="block">Returns the regularized beta function I(x, a, b).
The implementation of this method is based on:
<ul>
<li>
<a href="http://mathworld.wolfram.com/RegularizedBetaFunction.html">
Regularized Beta Function</a>.</li>
<li>
<a href="http://functions.wolfram.com/06.21.10.0001.01">
Regularized Beta Function</a>.</li>
</ul></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>x</code> - the value.</dd><dd><code>a</code> - Parameter <code>a</code>.</dd><dd><code>b</code> - Parameter <code>b</code>.</dd><dd><code>epsilon</code> - When the absolute value of the nth item in the
series is less than epsilon the approximation ceases to calculate
further elements in the series.</dd><dd><code>maxIterations</code> - Maximum number of "iterations" to complete.</dd>
<dt><span class="strong">Returns:</span></dt><dd>the regularized beta function I(x, a, b)</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></code> - if the algorithm fails to converge.</dd></dl>
</li>
</ul>
<a name="logBeta(double, double, double, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>logBeta</h4>
<pre><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
public static&nbsp;double&nbsp;logBeta(double&nbsp;a,
double&nbsp;b,
double&nbsp;epsilon,
int&nbsp;maxIterations)</pre>
<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>as of version 3.1, this method is deprecated as the
computation of the beta function is no longer iterative; it will be
removed in version 4.0. Current implementation of this method
internally calls <a href="../../../../../org/apache/commons/math3/special/Beta.html#logBeta(double, double)"><code>logBeta(double, double)</code></a>.</i></div>
<div class="block">Returns the natural logarithm of the beta function B(a, b).
The implementation of this method is based on:
<ul>
<li><a href="http://mathworld.wolfram.com/BetaFunction.html">
Beta Function</a>, equation (1).</li>
</ul></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - Parameter <code>a</code>.</dd><dd><code>b</code> - Parameter <code>b</code>.</dd><dd><code>epsilon</code> - This parameter is ignored.</dd><dd><code>maxIterations</code> - This parameter is ignored.</dd>
<dt><span class="strong">Returns:</span></dt><dd>log(B(a, b)).</dd></dl>
</li>
</ul>
<a name="logBeta(double, double)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>logBeta</h4>
<pre>public static&nbsp;double&nbsp;logBeta(double&nbsp;p,
double&nbsp;q)</pre>
<div class="block">Returns the value of log B(p, q) for 0 ≤ x ≤ 1 and p, q > 0. Based on the
<em>NSWC Library of Mathematics Subroutines</em> implementation,
<code>DBETLN</code>.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>p</code> - First argument.</dd><dd><code>q</code> - Second argument.</dd>
<dt><span class="strong">Returns:</span></dt><dd>the value of <code>log(Beta(p, q))</code>, <code>NaN</code> if
<code>p &lt;= 0</code> or <code>q &lt;= 0</code>.</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Beta.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev Class</li>
<li><a href="../../../../../org/apache/commons/math3/special/Erf.html" title="class in org.apache.commons.math3.special"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/commons/math3/special/Beta.html" target="_top">Frames</a></li>
<li><a href="Beta.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2003&#x2013;2014 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>