Class HermiteRuleFactory


  • public class HermiteRuleFactory
    extends BaseRuleFactory<java.lang.Double>
    Factory that creates a Gauss-type quadrature rule using Hermite polynomials of the first kind. Such a quadrature rule allows the calculation of improper integrals of a function

    \(f(x) e^{-x^2}\)

    Recurrence relation and weights computation follow Abramowitz and Stegun, 1964.

    The coefficients of the standard Hermite polynomials grow very rapidly. In order to avoid overflows, each Hermite polynomial is normalized with respect to the underlying scalar product. The initial interval for the application of the bisection method is based on the roots of the previous Hermite polynomial (interlacing). Upper and lower bounds of these roots are provided by

    I. Krasikov, Nonnegative quadratic forms and bounds on orthogonal polynomials, Journal of Approximation theory 111, 31-49
    Since:
    3.3
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static double H0
      π-1/4
      private static double H1
      π-1/4 √2
      private static double SQRT_PI
      π1/2
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected Pair<java.lang.Double[],​java.lang.Double[]> computeRule​(int numberOfPoints)
      Computes the rule for the given order.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • HermiteRuleFactory

        public HermiteRuleFactory()
    • Method Detail

      • computeRule

        protected Pair<java.lang.Double[],​java.lang.Double[]> computeRule​(int numberOfPoints)
                                                                         throws DimensionMismatchException
        Computes the rule for the given order.
        Specified by:
        computeRule in class BaseRuleFactory<java.lang.Double>
        Parameters:
        numberOfPoints - Order of the rule to be computed.
        Returns:
        the computed rule.
        Throws:
        DimensionMismatchException - if the elements of the pair do not have the same length.