Class BinomialCoefficientDouble
- java.lang.Object
-
- org.apache.commons.numbers.combinatorics.BinomialCoefficientDouble
-
public final class BinomialCoefficientDouble extends java.lang.ObjectRepresentation of the binomial coefficient, as adouble. It is "n choose k", the number ofk-element subsets that can be selected from ann-element set.
-
-
Field Summary
Fields Modifier and Type Field Description private static intLIMIT_N_LONGThe maximum n that can be computed without overflow of a long for any m.private static intMAX_FACTORIALThe maximum factorial that can be represented as a double.private static intMAX_MThe maximum m that can be computed without overflow of a double.private static intSMALL_MThe maximum m that can be computed without intermediate overflow for any n.private static intSMALL_NThe maximum n that can be computed without intermediate overflow for any m.
-
Constructor Summary
Constructors Modifier Constructor Description privateBinomialCoefficientDouble()Private constructor.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static doublevalue(int n, int k)Computes the binomial coefficient.
-
-
-
Field Detail
-
MAX_FACTORIAL
private static final int MAX_FACTORIAL
The maximum factorial that can be represented as a double.- See Also:
- Constant Field Values
-
LIMIT_N_LONG
private static final int LIMIT_N_LONG
The maximum n that can be computed without overflow of a long for any m.C(66, 33) < 2^63.- See Also:
- Constant Field Values
-
MAX_M
private static final int MAX_M
The maximum m that can be computed without overflow of a double. C(1030, 515) ~ 2.85e308.- See Also:
- Constant Field Values
-
SMALL_N
private static final int SMALL_N
The maximum n that can be computed without intermediate overflow for any m. C(1020, 510) * 510 ~ 1.43e308.- See Also:
- Constant Field Values
-
SMALL_M
private static final int SMALL_M
The maximum m that can be computed without intermediate overflow for any n. C(2147483647, 37) * 37 ~ 5.13e303.- See Also:
- Constant Field Values
-
-
Method Detail
-
value
public static double value(int n, int k)Computes the binomial coefficient.The largest value of
nfor which all coefficients can fit into adoubleis 1029. Largernmay result in infinity depending on the value ofk.Any
min(k, n - k) >= 515cannot fit into adoubleand will result in infinity.- Parameters:
n- Size of the set.k- Size of the subsets to be counted.- Returns:
n choose k.- Throws:
java.lang.IllegalArgumentException- ifn < 0,k < 0ork > n.
-
-