public final int apply(int a) { return (int) Arithmetic.factorial(a); } };
public final int apply(int a) { return (int) Arithmetic.factorial(a); } };
int max = longFactorials.length + doubleFactorials.length; if (n<max) { // if (n! < inf && k! < inf) double n_fac = factorial((int)n); double k_fac = factorial((int)k); double n_minus_k_fac = factorial((int) (n-k)); double nk = n_minus_k_fac * k_fac; if (nk != Double.POSITIVE_INFINITY) { // no numeric overflow?
int max = longFactorials.length + doubleFactorials.length; if (n<max) { // if (n! < inf && k! < inf) double n_fac = factorial((int)n); double k_fac = factorial((int)k); double n_minus_k_fac = factorial((int) (n-k)); double nk = n_minus_k_fac * k_fac; if (nk != Double.POSITIVE_INFINITY) { // no numeric overflow?
int max = longFactorials.length + doubleFactorials.length; if (n < max) { // if (n! < inf && k! < inf) double n_fac = factorial((int) n); double k_fac = factorial((int) k); double n_minus_k_fac = factorial((int) (n - k)); double nk = n_minus_k_fac * k_fac; if (nk != Double.POSITIVE_INFINITY) { // no numeric overflow?