List of usage examples for org.apache.commons.math.util MathUtils factorialDouble
public static double factorialDouble(final int n)
From source file:com.opengamma.analytics.math.function.special.OrthonormalHermitePolynomialFunctionTest.java
@Test public void test() { final int n = 15; final DoubleFunction1D[] f1 = HERMITE.getPolynomials(n); final DoubleFunction1D[] f2 = ORTHONORMAL.getPolynomials(n); final double x = 3.4; for (int i = 0; i < f1.length; i++) { assertEquals(/* www .j a v a2s. c o m*/ f1[i].evaluate(x) / Math.sqrt(MathUtils.factorialDouble(i) * Math.pow(2, i) * Math.sqrt(Math.PI)), f2[i].evaluate(x), EPS); } }
From source file:com.opengamma.analytics.math.integration.GaussLaguerreWeightAndAbscissaFunction.java
/** * {@inheritDoc}/*from w w w .j a v a 2 s . c o m*/ */ @Override public GaussianQuadratureData generate(final int n) { Validate.isTrue(n > 0); final Pair<DoubleFunction1D, DoubleFunction1D>[] polynomials = LAGUERRE.getPolynomialsAndFirstDerivative(n, _alpha); final Pair<DoubleFunction1D, DoubleFunction1D> pair = polynomials[n]; final DoubleFunction1D p1 = polynomials[n - 1].getFirst(); final DoubleFunction1D function = pair.getFirst(); final DoubleFunction1D derivative = pair.getSecond(); final double[] x = new double[n]; final double[] w = new double[n]; double root = 0; for (int i = 0; i < n; i++) { root = ROOT_FINDER.getRoot(function, derivative, getInitialRootGuess(root, i, n, x)); x[i] = root; w[i] = -GAMMA_FUNCTION.evaluate(_alpha + n) / MathUtils.factorialDouble(n) / (derivative.evaluate(root) * p1.evaluate(root)); } return new GaussianQuadratureData(x, w); }
From source file:com.opengamma.analytics.math.integration.GaussJacobiWeightAndAbscissaFunction.java
/** * {@inheritDoc}/*from w w w. j a va 2 s.c o m*/ */ @Override public GaussianQuadratureData generate(final int n) { Validate.isTrue(n > 0, "n > 0"); final Pair<DoubleFunction1D, DoubleFunction1D>[] polynomials = JACOBI.getPolynomialsAndFirstDerivative(n, _alpha, _beta); final Pair<DoubleFunction1D, DoubleFunction1D> pair = polynomials[n]; final DoubleFunction1D previous = polynomials[n - 1].getFirst(); final DoubleFunction1D function = pair.getFirst(); final DoubleFunction1D derivative = pair.getSecond(); final double[] x = new double[n]; final double[] w = new double[n]; double root = 0; for (int i = 0; i < n; i++) { final double d = 2 * n + _c; root = getInitialRootGuess(root, i, n, x); root = ROOT_FINDER.getRoot(function, derivative, root); x[i] = root; w[i] = GAMMA_FUNCTION.evaluate(_alpha + n) * GAMMA_FUNCTION.evaluate(_beta + n) / MathUtils.factorialDouble(n) / GAMMA_FUNCTION.evaluate(n + _c + 1) * d * Math.pow(2, _c) / (derivative.evaluate(root) * previous.evaluate(root)); } return new GaussianQuadratureData(x, w); }
From source file:org.netxilia.functions.MathFunctions.java
public double FACTDOUBLE(int number) { return MathUtils.factorialDouble(number); }