## org.apache.commons.math3.analysis.integration
Class IterativeLegendreGaussIntegrator

    java.lang.Object
      org.apache.commons.math3.analysis.integration.BaseAbstractUnivariateIntegrator
          org.apache.commons.math3.analysis.integration.IterativeLegendreGaussIntegrator

All Implemented Interfaces:
  UnivariateIntegrator

    public class IterativeLegendreGaussIntegrator

extends BaseAbstractUnivariateIntegrator

This algorithm divides the integration interval into equally-sized sub-interval and on each of them performs a Legendre-Gauss quadrature.

Since:
  3.1
Version:
  $Id: IterativeLegendreGaussIntegrator.java 1416643 2012-12-03 19:37:14Z tn $

Field Summary
`private static GaussIntegratorFactory` `FACTORY` Factory that computes the points and weights.
`private int` `numberOfPoints` Number of integration points (per interval).

Fields inherited from class org.apache.commons.math3.analysis.integration.BaseAbstractUnivariateIntegrator
`DEFAULT_ABSOLUTE_ACCURACY, DEFAULT_MAX_ITERATIONS_COUNT, DEFAULT_MIN_ITERATIONS_COUNT, DEFAULT_RELATIVE_ACCURACY, iterations`

Constructor Summary
`IterativeLegendreGaussIntegrator(int n, double relativeAccuracy, double absoluteAccuracy)` Builds an integrator with given accuracies.
`IterativeLegendreGaussIntegrator(int n, double relativeAccuracy, double absoluteAccuracy, int minimalIterationCount, int maximalIterationCount)` Builds an integrator with given accuracies and iterations counts.
`IterativeLegendreGaussIntegrator(int n, int minimalIterationCount, int maximalIterationCount)` Builds an integrator with given iteration counts.

Method Summary
`protected double` `doIntegrate()` Method for implementing actual integration algorithms in derived classes.
`private double` `stage(int n)` Compute the n-th stage integral.

Methods inherited from class org.apache.commons.math3.analysis.integration.BaseAbstractUnivariateIntegrator
`computeObjectiveValue, getAbsoluteAccuracy, getEvaluations, getIterations, getMax, getMaximalIterationCount, getMin, getMinimalIterationCount, getRelativeAccuracy, integrate, setup`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### FACTORY

    private static final GaussIntegratorFactory FACTORY

  Factory that computes the points and weights.

### numberOfPoints

    private final int numberOfPoints

  Number of integration points (per interval).

Constructor Detail

### IterativeLegendreGaussIntegrator

    public IterativeLegendreGaussIntegrator(int n,
                                            double relativeAccuracy,
                                            double absoluteAccuracy,
                                            int minimalIterationCount,
                                            int maximalIterationCount)
                                     throws NotStrictlyPositiveException,
                                            NumberIsTooSmallException

  Builds an integrator with given accuracies and iterations counts.

  Parameters:
    `n` - Number of integration points.
    `relativeAccuracy` - Relative accuracy of the result.
    `absoluteAccuracy` - Absolute accuracy of the result.
    `minimalIterationCount` - Minimum number of iterations.
    `maximalIterationCount` - Maximum number of iterations.
  Throws:
    `NotStrictlyPositiveException` - if minimal number of iterations is not strictly positive.
    `NumberIsTooSmallException` - if maximal number of iterations is smaller than or equal to the minimal number of iterations.

### IterativeLegendreGaussIntegrator

    public IterativeLegendreGaussIntegrator(int n,
                                            double relativeAccuracy,
                                            double absoluteAccuracy)

  Builds an integrator with given accuracies.

  Parameters:
    `n` - Number of integration points.
    `relativeAccuracy` - Relative accuracy of the result.
    `absoluteAccuracy` - Absolute accuracy of the result.

### IterativeLegendreGaussIntegrator

    public IterativeLegendreGaussIntegrator(int n,
                                            int minimalIterationCount,
                                            int maximalIterationCount)

  Builds an integrator with given iteration counts.

  Parameters:
    `n` - Number of integration points.
    `minimalIterationCount` - Minimum number of iterations.
    `maximalIterationCount` - Maximum number of iterations.
  Throws:
    `NotStrictlyPositiveException` - if minimal number of iterations is not strictly positive.
    `NumberIsTooSmallException` - if maximal number of iterations is smaller than or equal to the minimal number of iterations.

Method Detail

### doIntegrate

    protected double doIntegrate()
                          throws TooManyEvaluationsException,
                                 MaxCountExceededException

  Method for implementing actual integration algorithms in derived classes.

  Specified by:
    `doIntegrate` in class `BaseAbstractUnivariateIntegrator`
  Returns:
    the root.
  Throws:
    `TooManyEvaluationsException` - if the maximal number of evaluations is exceeded.
    `MaxCountExceededException` - if the maximum iteration count is exceeded or the integrator detects convergence problems otherwise

### stage

    private double stage(int n)
                  throws TooManyEvaluationsException

  Compute the n-th stage integral.

  Parameters:
    `n` - Number of steps.
  Returns:
    the value of n-th stage integral.
  Throws:
    `TooManyEvaluationsException` - if the maximum number of evaluations is exceeded.

Copyright (c) 2003-2013 Apache Software Foundation