Package org.apache.commons.math3.analysis.integration.gauss

# Class BaseRuleFactory<T extends Number>

java.lang.Object
org.apache.commons.math3.analysis.integration.gauss.BaseRuleFactory<T>

Type Parameters:
  `T` - Type of the number used to represent the points and weights of the quadrature rules.

Direct Known Subclasses:
  `HermiteRuleFactory`, `LegendreHighPrecisionRuleFactory`, `LegendreRuleFactory`

public abstract class BaseRuleFactory<T extends Number> extends Object
Base class for rules that determines the integration nodes and their weights. Subclasses must implement the `computeRule` method.

Since:
  3.1

## Constructor Summary

Constructors
Constructor
Description
`BaseRuleFactory()`

## Method Summary

Modifier and Type
Method
Description
`protected void`
`addRule(Pair<T[],T[]> rule)`
Stores a rule.
`protected abstract Pair<T[],T[]>`
`computeRule(int numberOfPoints)`
Computes the rule for the given order.
`Pair<double[],double[]>`
`getRule(int numberOfPoints)`
Gets a copy of the quadrature rule with the given number of integration points.
`protected Pair<T[],T[]>`
`getRuleInternal(int numberOfPoints)`
Gets a rule.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### BaseRuleFactory

public BaseRuleFactory()

## Method Details

### getRule

public Pair<double[],double[]> getRule(int numberOfPoints) throws NotStrictlyPositiveException, DimensionMismatchException
Gets a copy of the quadrature rule with the given number of integration points.

Parameters:
  `numberOfPoints` - Number of integration points.
Returns:
  a copy of the integration rule.
Throws:
  `NotStrictlyPositiveException` - if `numberOfPoints < 1`.
  `DimensionMismatchException` - if the elements of the rule pair do not have the same length.

### getRuleInternal

protected Pair<T[],T[]> getRuleInternal(int numberOfPoints) throws DimensionMismatchException
Gets a rule. Synchronization ensures that rules will be computed and added to the cache at most once. The returned rule is a reference into the cache.

Parameters:
  `numberOfPoints` - Order of the rule to be retrieved.
Returns:
  the points and weights corresponding to the given order.
Throws:
  `DimensionMismatchException` - if the elements of the rule pair do not have the same length.

### addRule

protected void addRule(Pair<T[],T[]> rule) throws DimensionMismatchException
Stores a rule.

Parameters:
  `rule` - Rule to be stored.
Throws:
  `DimensionMismatchException` - if the elements of the pair do not have the same length.

### computeRule

protected abstract Pair<T[],T[]> computeRule(int numberOfPoints) throws DimensionMismatchException
Computes the rule for the given order.

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.