blob: 8ec8691750afdbff7151cd5f7e41f6b37bb274e7 [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>ArithmeticUtils (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="ArithmeticUtils (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/ArithmeticUtils.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/util/BigReal.html" title="class in org.apache.commons.math3.util"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/commons/math3/util/ArithmeticUtils.html" target="_top">Frames</a></li>
<li><a href="ArithmeticUtils.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.util</div>
<h2 title="Class ArithmeticUtils" class="title">Class ArithmeticUtils</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.util.ArithmeticUtils</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public final class <span class="strong">ArithmeticUtils</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">Some useful, arithmetics related, additions to the built-in functions in
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Math.html?is-external=true" title="class or interface in java.lang"><code>Math</code></a>.</div>
<dl><dt><span class="strong">Version:</span></dt>
<dd>$Id: ArithmeticUtils.java 1591835 2014-05-02 09:04:01Z tn $</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 int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/util/ArithmeticUtils.html#addAndCheck(int, int)">addAndCheck</a></strong>(int&nbsp;x,
int&nbsp;y)</code>
<div class="block">Add two integers, checking for overflow.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/util/ArithmeticUtils.html#addAndCheck(long, long)">addAndCheck</a></strong>(long&nbsp;a,
long&nbsp;b)</code>
<div class="block">Add two long integers, checking for overflow.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/util/ArithmeticUtils.html#binomialCoefficient(int, int)">binomialCoefficient</a></strong>(int&nbsp;n,
int&nbsp;k)</code>
<div class="block"><strong>Deprecated.</strong>&nbsp;
<div class="block"><i>use <a href="../../../../../org/apache/commons/math3/util/CombinatoricsUtils.html#binomialCoefficient(int, int)"><code>CombinatoricsUtils.binomialCoefficient(int, int)</code></a></i></div>
</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/util/ArithmeticUtils.html#binomialCoefficientDouble(int, int)">binomialCoefficientDouble</a></strong>(int&nbsp;n,
int&nbsp;k)</code>
<div class="block"><strong>Deprecated.</strong>&nbsp;
<div class="block"><i>use <a href="../../../../../org/apache/commons/math3/util/CombinatoricsUtils.html#binomialCoefficientDouble(int, int)"><code>CombinatoricsUtils.binomialCoefficientDouble(int, int)</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/util/ArithmeticUtils.html#binomialCoefficientLog(int, int)">binomialCoefficientLog</a></strong>(int&nbsp;n,
int&nbsp;k)</code>
<div class="block"><strong>Deprecated.</strong>&nbsp;
<div class="block"><i>use <a href="../../../../../org/apache/commons/math3/util/CombinatoricsUtils.html#binomialCoefficientLog(int, int)"><code>CombinatoricsUtils.binomialCoefficientLog(int, int)</code></a></i></div>
</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/util/ArithmeticUtils.html#factorial(int)">factorial</a></strong>(int&nbsp;n)</code>
<div class="block"><strong>Deprecated.</strong>&nbsp;
<div class="block"><i>use <a href="../../../../../org/apache/commons/math3/util/CombinatoricsUtils.html#factorial(int)"><code>CombinatoricsUtils.factorial(int)</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/util/ArithmeticUtils.html#factorialDouble(int)">factorialDouble</a></strong>(int&nbsp;n)</code>
<div class="block"><strong>Deprecated.</strong>&nbsp;
<div class="block"><i>use <a href="../../../../../org/apache/commons/math3/util/CombinatoricsUtils.html#factorialDouble(int)"><code>CombinatoricsUtils.factorialDouble(int)</code></a></i></div>
</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/util/ArithmeticUtils.html#factorialLog(int)">factorialLog</a></strong>(int&nbsp;n)</code>
<div class="block"><strong>Deprecated.</strong>&nbsp;
<div class="block"><i>use <a href="../../../../../org/apache/commons/math3/util/CombinatoricsUtils.html#factorialLog(int)"><code>CombinatoricsUtils.factorialLog(int)</code></a></i></div>
</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/util/ArithmeticUtils.html#gcd(int, int)">gcd</a></strong>(int&nbsp;p,
int&nbsp;q)</code>
<div class="block">Computes the greatest common divisor of the absolute value of two
numbers, using a modified version of the "binary gcd" method.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/util/ArithmeticUtils.html#gcd(long, long)">gcd</a></strong>(long&nbsp;p,
long&nbsp;q)</code>
<div class="block">
Gets the greatest common divisor of the absolute value of two numbers,
using the "binary gcd" method which avoids division and modulo
operations.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/util/ArithmeticUtils.html#isPowerOfTwo(long)">isPowerOfTwo</a></strong>(long&nbsp;n)</code>
<div class="block">Returns true if the argument is a power of two.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/util/ArithmeticUtils.html#lcm(int, int)">lcm</a></strong>(int&nbsp;a,
int&nbsp;b)</code>
<div class="block">
Returns the least common multiple of the absolute value of two numbers,
using the formula <code>lcm(a,b) = (a / gcd(a,b)) * b</code>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/util/ArithmeticUtils.html#lcm(long, long)">lcm</a></strong>(long&nbsp;a,
long&nbsp;b)</code>
<div class="block">
Returns the least common multiple of the absolute value of two numbers,
using the formula <code>lcm(a,b) = (a / gcd(a,b)) * b</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/util/ArithmeticUtils.html#mulAndCheck(int, int)">mulAndCheck</a></strong>(int&nbsp;x,
int&nbsp;y)</code>
<div class="block">Multiply two integers, checking for overflow.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/util/ArithmeticUtils.html#mulAndCheck(long, long)">mulAndCheck</a></strong>(long&nbsp;a,
long&nbsp;b)</code>
<div class="block">Multiply two long integers, checking for overflow.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/6/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/util/ArithmeticUtils.html#pow(java.math.BigInteger, java.math.BigInteger)">pow</a></strong>(<a href="http://docs.oracle.com/javase/6/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a>&nbsp;k,
<a href="http://docs.oracle.com/javase/6/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a>&nbsp;e)</code>
<div class="block">Raise a BigInteger to a BigInteger power.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/6/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/util/ArithmeticUtils.html#pow(java.math.BigInteger, int)">pow</a></strong>(<a href="http://docs.oracle.com/javase/6/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a>&nbsp;k,
int&nbsp;e)</code>
<div class="block">Raise a BigInteger to an int power.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/6/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/util/ArithmeticUtils.html#pow(java.math.BigInteger, long)">pow</a></strong>(<a href="http://docs.oracle.com/javase/6/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a>&nbsp;k,
long&nbsp;e)</code>
<div class="block">Raise a BigInteger to a long power.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/util/ArithmeticUtils.html#pow(int, int)">pow</a></strong>(int&nbsp;k,
int&nbsp;e)</code>
<div class="block">Raise an int to an int power.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/util/ArithmeticUtils.html#pow(int, long)">pow</a></strong>(int&nbsp;k,
long&nbsp;e)</code>
<div class="block"><strong>Deprecated.</strong>&nbsp;
<div class="block"><i>As of 3.3. Please use <a href="../../../../../org/apache/commons/math3/util/ArithmeticUtils.html#pow(int, int)"><code>pow(int,int)</code></a> instead.</i></div>
</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/util/ArithmeticUtils.html#pow(long, int)">pow</a></strong>(long&nbsp;k,
int&nbsp;e)</code>
<div class="block">Raise a long to an int power.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/util/ArithmeticUtils.html#pow(long, long)">pow</a></strong>(long&nbsp;k,
long&nbsp;e)</code>
<div class="block"><strong>Deprecated.</strong>&nbsp;
<div class="block"><i>As of 3.3. Please use <a href="../../../../../org/apache/commons/math3/util/ArithmeticUtils.html#pow(long, int)"><code>pow(long,int)</code></a> instead.</i></div>
</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/util/ArithmeticUtils.html#stirlingS2(int, int)">stirlingS2</a></strong>(int&nbsp;n,
int&nbsp;k)</code>
<div class="block"><strong>Deprecated.</strong>&nbsp;
<div class="block"><i>use <a href="../../../../../org/apache/commons/math3/util/CombinatoricsUtils.html#stirlingS2(int, int)"><code>CombinatoricsUtils.stirlingS2(int, int)</code></a></i></div>
</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/util/ArithmeticUtils.html#subAndCheck(int, int)">subAndCheck</a></strong>(int&nbsp;x,
int&nbsp;y)</code>
<div class="block">Subtract two integers, checking for overflow.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/util/ArithmeticUtils.html#subAndCheck(long, long)">subAndCheck</a></strong>(long&nbsp;a,
long&nbsp;b)</code>
<div class="block">Subtract two long integers, checking for overflow.</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="addAndCheck(int, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addAndCheck</h4>
<pre>public static&nbsp;int&nbsp;addAndCheck(int&nbsp;x,
int&nbsp;y)
throws <a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></pre>
<div class="block">Add two integers, checking for overflow.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>x</code> - an addend</dd><dd><code>y</code> - an addend</dd>
<dt><span class="strong">Returns:</span></dt><dd>the sum <code>x+y</code></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></code> - if the result can not be represented
as an <code>int</code>.</dd><dt><span class="strong">Since:</span></dt>
<dd>1.1</dd></dl>
</li>
</ul>
<a name="addAndCheck(long, long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addAndCheck</h4>
<pre>public static&nbsp;long&nbsp;addAndCheck(long&nbsp;a,
long&nbsp;b)
throws <a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></pre>
<div class="block">Add two long integers, checking for overflow.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - an addend</dd><dd><code>b</code> - an addend</dd>
<dt><span class="strong">Returns:</span></dt><dd>the sum <code>a+b</code></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></code> - if the result can not be represented as an long</dd><dt><span class="strong">Since:</span></dt>
<dd>1.2</dd></dl>
</li>
</ul>
<a name="binomialCoefficient(int, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>binomialCoefficient</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;long&nbsp;binomialCoefficient(int&nbsp;n,
int&nbsp;k)
throws <a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a>,
<a href="../../../../../org/apache/commons/math3/exception/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a>,
<a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></pre>
<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>use <a href="../../../../../org/apache/commons/math3/util/CombinatoricsUtils.html#binomialCoefficient(int, int)"><code>CombinatoricsUtils.binomialCoefficient(int, int)</code></a></i></div>
<div class="block">Returns an exact representation of the <a
href="http://mathworld.wolfram.com/BinomialCoefficient.html"> Binomial
Coefficient</a>, "<code>n choose k</code>", the number of
<code>k</code>-element subsets that can be selected from an
<code>n</code>-element set.
<p>
<Strong>Preconditions</strong>:
<ul>
<li> <code>0 &lt;= k &lt;= n </code> (otherwise
<code>IllegalArgumentException</code> is thrown)</li>
<li> The result is small enough to fit into a <code>long</code>. The
largest value of <code>n</code> for which all coefficients are
<code>&lt; Long.MAX_VALUE</code> is 66. If the computed value exceeds
<code>Long.MAX_VALUE</code> an <code>ArithMeticException</code> is
thrown.</li>
</ul></p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - the size of the set</dd><dd><code>k</code> - the size of the subsets to be counted</dd>
<dt><span class="strong">Returns:</span></dt><dd><code>n choose k</code></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></code> - if <code>n &lt; 0</code>.</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a></code> - if <code>k &gt; n</code>.</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></code> - if the result is too large to be
represented by a long integer.</dd></dl>
</li>
</ul>
<a name="binomialCoefficientDouble(int, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>binomialCoefficientDouble</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;binomialCoefficientDouble(int&nbsp;n,
int&nbsp;k)
throws <a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a>,
<a href="../../../../../org/apache/commons/math3/exception/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a>,
<a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></pre>
<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>use <a href="../../../../../org/apache/commons/math3/util/CombinatoricsUtils.html#binomialCoefficientDouble(int, int)"><code>CombinatoricsUtils.binomialCoefficientDouble(int, int)</code></a></i></div>
<div class="block">Returns a <code>double</code> representation of the <a
href="http://mathworld.wolfram.com/BinomialCoefficient.html"> Binomial
Coefficient</a>, "<code>n choose k</code>", the number of
<code>k</code>-element subsets that can be selected from an
<code>n</code>-element set.
<p>
<Strong>Preconditions</strong>:
<ul>
<li> <code>0 &lt;= k &lt;= n </code> (otherwise
<code>IllegalArgumentException</code> is thrown)</li>
<li> The result is small enough to fit into a <code>double</code>. The
largest value of <code>n</code> for which all coefficients are <
Double.MAX_VALUE is 1029. If the computed value exceeds Double.MAX_VALUE,
Double.POSITIVE_INFINITY is returned</li>
</ul></p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - the size of the set</dd><dd><code>k</code> - the size of the subsets to be counted</dd>
<dt><span class="strong">Returns:</span></dt><dd><code>n choose k</code></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></code> - if <code>n &lt; 0</code>.</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a></code> - if <code>k &gt; n</code>.</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></code> - if the result is too large to be
represented by a long integer.</dd></dl>
</li>
</ul>
<a name="binomialCoefficientLog(int, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>binomialCoefficientLog</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;binomialCoefficientLog(int&nbsp;n,
int&nbsp;k)
throws <a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a>,
<a href="../../../../../org/apache/commons/math3/exception/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a>,
<a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></pre>
<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>use <a href="../../../../../org/apache/commons/math3/util/CombinatoricsUtils.html#binomialCoefficientLog(int, int)"><code>CombinatoricsUtils.binomialCoefficientLog(int, int)</code></a></i></div>
<div class="block">Returns the natural <code>log</code> of the <a
href="http://mathworld.wolfram.com/BinomialCoefficient.html"> Binomial
Coefficient</a>, "<code>n choose k</code>", the number of
<code>k</code>-element subsets that can be selected from an
<code>n</code>-element set.
<p>
<Strong>Preconditions</strong>:
<ul>
<li> <code>0 &lt;= k &lt;= n </code> (otherwise
<code>IllegalArgumentException</code> is thrown)</li>
</ul></p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - the size of the set</dd><dd><code>k</code> - the size of the subsets to be counted</dd>
<dt><span class="strong">Returns:</span></dt><dd><code>n choose k</code></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></code> - if <code>n &lt; 0</code>.</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a></code> - if <code>k &gt; n</code>.</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></code> - if the result is too large to be
represented by a long integer.</dd></dl>
</li>
</ul>
<a name="factorial(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>factorial</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;long&nbsp;factorial(int&nbsp;n)
throws <a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a>,
<a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></pre>
<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>use <a href="../../../../../org/apache/commons/math3/util/CombinatoricsUtils.html#factorial(int)"><code>CombinatoricsUtils.factorial(int)</code></a></i></div>
<div class="block">Returns n!. Shorthand for <code>n</code> <a
href="http://mathworld.wolfram.com/Factorial.html"> Factorial</a>, the
product of the numbers <code>1,...,n</code>.
<p>
<Strong>Preconditions</strong>:
<ul>
<li> <code>n &gt;= 0</code> (otherwise
<code>IllegalArgumentException</code> is thrown)</li>
<li> The result is small enough to fit into a <code>long</code>. The
largest value of <code>n</code> for which <code>n!</code> <
Long.MAX_VALUE} is 20. If the computed value exceeds <code>Long.MAX_VALUE</code>
an <code>ArithMeticException </code> is thrown.</li>
</ul>
</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - argument</dd>
<dt><span class="strong">Returns:</span></dt><dd><code>n!</code></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></code> - if the result is too large to be represented
by a <code>long</code>.</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></code> - if <code>n &lt; 0</code>.</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></code> - if <code>n &gt; 20</code>: The factorial value is too
large to fit in a <code>long</code>.</dd></dl>
</li>
</ul>
<a name="factorialDouble(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>factorialDouble</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;factorialDouble(int&nbsp;n)
throws <a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></pre>
<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>use <a href="../../../../../org/apache/commons/math3/util/CombinatoricsUtils.html#factorialDouble(int)"><code>CombinatoricsUtils.factorialDouble(int)</code></a></i></div>
<div class="block">Compute n!, the<a href="http://mathworld.wolfram.com/Factorial.html">
factorial</a> of <code>n</code> (the product of the numbers 1 to n), as a
<code>double</code>.
The result should be small enough to fit into a <code>double</code>: The
largest <code>n</code> for which <code>n! &lt; Double.MAX_VALUE</code> is 170.
If the computed value exceeds <code>Double.MAX_VALUE</code>,
<code>Double.POSITIVE_INFINITY</code> is returned.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - Argument.</dd>
<dt><span class="strong">Returns:</span></dt><dd><code>n!</code></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></code> - if <code>n &lt; 0</code>.</dd></dl>
</li>
</ul>
<a name="factorialLog(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>factorialLog</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;factorialLog(int&nbsp;n)
throws <a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></pre>
<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>use <a href="../../../../../org/apache/commons/math3/util/CombinatoricsUtils.html#factorialLog(int)"><code>CombinatoricsUtils.factorialLog(int)</code></a></i></div>
<div class="block">Compute the natural logarithm of the factorial of <code>n</code>.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - Argument.</dd>
<dt><span class="strong">Returns:</span></dt><dd><code>n!</code></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></code> - if <code>n &lt; 0</code>.</dd></dl>
</li>
</ul>
<a name="gcd(int, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>gcd</h4>
<pre>public static&nbsp;int&nbsp;gcd(int&nbsp;p,
int&nbsp;q)
throws <a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></pre>
<div class="block">Computes the greatest common divisor of the absolute value of two
numbers, using a modified version of the "binary gcd" method.
See Knuth 4.5.2 algorithm B.
The algorithm is due to Josef Stein (1961).
<br/>
Special cases:
<ul>
<li>The invocations
<code>gcd(Integer.MIN_VALUE, Integer.MIN_VALUE)</code>,
<code>gcd(Integer.MIN_VALUE, 0)</code> and
<code>gcd(0, Integer.MIN_VALUE)</code> throw an
<code>ArithmeticException</code>, because the result would be 2^31, which
is too large for an int value.</li>
<li>The result of <code>gcd(x, x)</code>, <code>gcd(0, x)</code> and
<code>gcd(x, 0)</code> is the absolute value of <code>x</code>, except
for the special cases above.</li>
<li>The invocation <code>gcd(0, 0)</code> is the only one which returns
<code>0</code>.</li>
</ul></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>p</code> - Number.</dd><dd><code>q</code> - Number.</dd>
<dt><span class="strong">Returns:</span></dt><dd>the greatest common divisor (never negative).</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></code> - if the result cannot be represented as
a non-negative <code>int</code> value.</dd><dt><span class="strong">Since:</span></dt>
<dd>1.1</dd></dl>
</li>
</ul>
<a name="gcd(long, long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>gcd</h4>
<pre>public static&nbsp;long&nbsp;gcd(long&nbsp;p,
long&nbsp;q)
throws <a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></pre>
<div class="block"><p>
Gets the greatest common divisor of the absolute value of two numbers,
using the "binary gcd" method which avoids division and modulo
operations. See Knuth 4.5.2 algorithm B. This algorithm is due to Josef
Stein (1961).
</p>
Special cases:
<ul>
<li>The invocations
<code>gcd(Long.MIN_VALUE, Long.MIN_VALUE)</code>,
<code>gcd(Long.MIN_VALUE, 0L)</code> and
<code>gcd(0L, Long.MIN_VALUE)</code> throw an
<code>ArithmeticException</code>, because the result would be 2^63, which
is too large for a long value.</li>
<li>The result of <code>gcd(x, x)</code>, <code>gcd(0L, x)</code> and
<code>gcd(x, 0L)</code> is the absolute value of <code>x</code>, except
for the special cases above.
<li>The invocation <code>gcd(0L, 0L)</code> is the only one which returns
<code>0L</code>.</li>
</ul></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>p</code> - Number.</dd><dd><code>q</code> - Number.</dd>
<dt><span class="strong">Returns:</span></dt><dd>the greatest common divisor, never negative.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></code> - if the result cannot be represented as
a non-negative <code>long</code> value.</dd><dt><span class="strong">Since:</span></dt>
<dd>2.1</dd></dl>
</li>
</ul>
<a name="lcm(int, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lcm</h4>
<pre>public static&nbsp;int&nbsp;lcm(int&nbsp;a,
int&nbsp;b)
throws <a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></pre>
<div class="block"><p>
Returns the least common multiple of the absolute value of two numbers,
using the formula <code>lcm(a,b) = (a / gcd(a,b)) * b</code>.
</p>
Special cases:
<ul>
<li>The invocations <code>lcm(Integer.MIN_VALUE, n)</code> and
<code>lcm(n, Integer.MIN_VALUE)</code>, where <code>abs(n)</code> is a
power of 2, throw an <code>ArithmeticException</code>, because the result
would be 2^31, which is too large for an int value.</li>
<li>The result of <code>lcm(0, x)</code> and <code>lcm(x, 0)</code> is
<code>0</code> for any <code>x</code>.
</ul></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - Number.</dd><dd><code>b</code> - Number.</dd>
<dt><span class="strong">Returns:</span></dt><dd>the least common multiple, never negative.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></code> - if the result cannot be represented as
a non-negative <code>int</code> value.</dd><dt><span class="strong">Since:</span></dt>
<dd>1.1</dd></dl>
</li>
</ul>
<a name="lcm(long, long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lcm</h4>
<pre>public static&nbsp;long&nbsp;lcm(long&nbsp;a,
long&nbsp;b)
throws <a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></pre>
<div class="block"><p>
Returns the least common multiple of the absolute value of two numbers,
using the formula <code>lcm(a,b) = (a / gcd(a,b)) * b</code>.
</p>
Special cases:
<ul>
<li>The invocations <code>lcm(Long.MIN_VALUE, n)</code> and
<code>lcm(n, Long.MIN_VALUE)</code>, where <code>abs(n)</code> is a
power of 2, throw an <code>ArithmeticException</code>, because the result
would be 2^63, which is too large for an int value.</li>
<li>The result of <code>lcm(0L, x)</code> and <code>lcm(x, 0L)</code> is
<code>0L</code> for any <code>x</code>.
</ul></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - Number.</dd><dd><code>b</code> - Number.</dd>
<dt><span class="strong">Returns:</span></dt><dd>the least common multiple, never negative.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></code> - if the result cannot be represented
as a non-negative <code>long</code> value.</dd><dt><span class="strong">Since:</span></dt>
<dd>2.1</dd></dl>
</li>
</ul>
<a name="mulAndCheck(int, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mulAndCheck</h4>
<pre>public static&nbsp;int&nbsp;mulAndCheck(int&nbsp;x,
int&nbsp;y)
throws <a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></pre>
<div class="block">Multiply two integers, checking for overflow.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>x</code> - Factor.</dd><dd><code>y</code> - Factor.</dd>
<dt><span class="strong">Returns:</span></dt><dd>the product <code>x * y</code>.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></code> - if the result can not be
represented as an <code>int</code>.</dd><dt><span class="strong">Since:</span></dt>
<dd>1.1</dd></dl>
</li>
</ul>
<a name="mulAndCheck(long, long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mulAndCheck</h4>
<pre>public static&nbsp;long&nbsp;mulAndCheck(long&nbsp;a,
long&nbsp;b)
throws <a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></pre>
<div class="block">Multiply two long integers, checking for overflow.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - Factor.</dd><dd><code>b</code> - Factor.</dd>
<dt><span class="strong">Returns:</span></dt><dd>the product <code>a * b</code>.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></code> - if the result can not be represented
as a <code>long</code>.</dd><dt><span class="strong">Since:</span></dt>
<dd>1.2</dd></dl>
</li>
</ul>
<a name="subAndCheck(int, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>subAndCheck</h4>
<pre>public static&nbsp;int&nbsp;subAndCheck(int&nbsp;x,
int&nbsp;y)
throws <a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></pre>
<div class="block">Subtract two integers, checking for overflow.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>x</code> - Minuend.</dd><dd><code>y</code> - Subtrahend.</dd>
<dt><span class="strong">Returns:</span></dt><dd>the difference <code>x - y</code>.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></code> - if the result can not be represented
as an <code>int</code>.</dd><dt><span class="strong">Since:</span></dt>
<dd>1.1</dd></dl>
</li>
</ul>
<a name="subAndCheck(long, long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>subAndCheck</h4>
<pre>public static&nbsp;long&nbsp;subAndCheck(long&nbsp;a,
long&nbsp;b)
throws <a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></pre>
<div class="block">Subtract two long integers, checking for overflow.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - Value.</dd><dd><code>b</code> - Value.</dd>
<dt><span class="strong">Returns:</span></dt><dd>the difference <code>a - b</code>.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></code> - if the result can not be represented as a
<code>long</code>.</dd><dt><span class="strong">Since:</span></dt>
<dd>1.2</dd></dl>
</li>
</ul>
<a name="pow(int, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pow</h4>
<pre>public static&nbsp;int&nbsp;pow(int&nbsp;k,
int&nbsp;e)
throws <a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a>,
<a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></pre>
<div class="block">Raise an int to an int power.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>k</code> - Number to raise.</dd><dd><code>e</code> - Exponent (must be positive or zero).</dd>
<dt><span class="strong">Returns:</span></dt><dd>\( k^e \)</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></code> - if <code>e &lt; 0</code>.</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></code> - if the result would overflow.</dd></dl>
</li>
</ul>
<a name="pow(int, long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pow</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;int&nbsp;pow(int&nbsp;k,
long&nbsp;e)
throws <a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></pre>
<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>As of 3.3. Please use <a href="../../../../../org/apache/commons/math3/util/ArithmeticUtils.html#pow(int, int)"><code>pow(int,int)</code></a> instead.</i></div>
<div class="block">Raise an int to a long power.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>k</code> - Number to raise.</dd><dd><code>e</code> - Exponent (must be positive or zero).</dd>
<dt><span class="strong">Returns:</span></dt><dd>k<sup>e</sup></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></code> - if <code>e &lt; 0</code>.</dd></dl>
</li>
</ul>
<a name="pow(long, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pow</h4>
<pre>public static&nbsp;long&nbsp;pow(long&nbsp;k,
int&nbsp;e)
throws <a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a>,
<a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></pre>
<div class="block">Raise a long to an int power.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>k</code> - Number to raise.</dd><dd><code>e</code> - Exponent (must be positive or zero).</dd>
<dt><span class="strong">Returns:</span></dt><dd>\( k^e \)</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></code> - if <code>e &lt; 0</code>.</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></code> - if the result would overflow.</dd></dl>
</li>
</ul>
<a name="pow(long, long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pow</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;long&nbsp;pow(long&nbsp;k,
long&nbsp;e)
throws <a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></pre>
<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>As of 3.3. Please use <a href="../../../../../org/apache/commons/math3/util/ArithmeticUtils.html#pow(long, int)"><code>pow(long,int)</code></a> instead.</i></div>
<div class="block">Raise a long to a long power.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>k</code> - Number to raise.</dd><dd><code>e</code> - Exponent (must be positive or zero).</dd>
<dt><span class="strong">Returns:</span></dt><dd>k<sup>e</sup></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></code> - if <code>e &lt; 0</code>.</dd></dl>
</li>
</ul>
<a name="pow(java.math.BigInteger, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pow</h4>
<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a>&nbsp;pow(<a href="http://docs.oracle.com/javase/6/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a>&nbsp;k,
int&nbsp;e)
throws <a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></pre>
<div class="block">Raise a BigInteger to an int power.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>k</code> - Number to raise.</dd><dd><code>e</code> - Exponent (must be positive or zero).</dd>
<dt><span class="strong">Returns:</span></dt><dd>k<sup>e</sup></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></code> - if <code>e &lt; 0</code>.</dd></dl>
</li>
</ul>
<a name="pow(java.math.BigInteger, long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pow</h4>
<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a>&nbsp;pow(<a href="http://docs.oracle.com/javase/6/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a>&nbsp;k,
long&nbsp;e)
throws <a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></pre>
<div class="block">Raise a BigInteger to a long power.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>k</code> - Number to raise.</dd><dd><code>e</code> - Exponent (must be positive or zero).</dd>
<dt><span class="strong">Returns:</span></dt><dd>k<sup>e</sup></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></code> - if <code>e &lt; 0</code>.</dd></dl>
</li>
</ul>
<a name="pow(java.math.BigInteger, java.math.BigInteger)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pow</h4>
<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a>&nbsp;pow(<a href="http://docs.oracle.com/javase/6/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a>&nbsp;k,
<a href="http://docs.oracle.com/javase/6/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a>&nbsp;e)
throws <a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></pre>
<div class="block">Raise a BigInteger to a BigInteger power.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>k</code> - Number to raise.</dd><dd><code>e</code> - Exponent (must be positive or zero).</dd>
<dt><span class="strong">Returns:</span></dt><dd>k<sup>e</sup></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></code> - if <code>e &lt; 0</code>.</dd></dl>
</li>
</ul>
<a name="stirlingS2(int, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stirlingS2</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;long&nbsp;stirlingS2(int&nbsp;n,
int&nbsp;k)
throws <a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a>,
<a href="../../../../../org/apache/commons/math3/exception/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a>,
<a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></pre>
<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>use <a href="../../../../../org/apache/commons/math3/util/CombinatoricsUtils.html#stirlingS2(int, int)"><code>CombinatoricsUtils.stirlingS2(int, int)</code></a></i></div>
<div class="block">Returns the <a
href="http://mathworld.wolfram.com/StirlingNumberoftheSecondKind.html">
Stirling number of the second kind</a>, "<code>S(n,k)</code>", the number of
ways of partitioning an <code>n</code>-element set into <code>k</code> non-empty
subsets.
<p>
The preconditions are <code>0 &lt;= k &lt;= n </code> (otherwise
<code>NotPositiveException</code> is thrown)
</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - the size of the set</dd><dd><code>k</code> - the number of non-empty subsets</dd>
<dt><span class="strong">Returns:</span></dt><dd><code>S(n,k)</code></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></code> - if <code>k &lt; 0</code>.</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a></code> - if <code>k &gt; n</code>.</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></code> - if some overflow happens, typically for n exceeding 25 and
k between 20 and n-2 (S(n,n-1) is handled specifically and does not overflow)</dd><dt><span class="strong">Since:</span></dt>
<dd>3.1</dd></dl>
</li>
</ul>
<a name="isPowerOfTwo(long)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>isPowerOfTwo</h4>
<pre>public static&nbsp;boolean&nbsp;isPowerOfTwo(long&nbsp;n)</pre>
<div class="block">Returns true if the argument is a power of two.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - the number to test</dd>
<dt><span class="strong">Returns:</span></dt><dd>true if the argument is a power of two</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/ArithmeticUtils.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/util/BigReal.html" title="class in org.apache.commons.math3.util"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/commons/math3/util/ArithmeticUtils.html" target="_top">Frames</a></li>
<li><a href="ArithmeticUtils.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>