Example usage for org.apache.commons.math.util MathUtils factorialDouble

List of usage examples for org.apache.commons.math.util MathUtils factorialDouble

Introduction

In this page you can find the example usage for org.apache.commons.math.util MathUtils factorialDouble.

Prototype

public static double factorialDouble(final int n) 

Source Link

Document

Returns n!.

Usage

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);
}