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
Version:
$Id: BaseRuleFactory.java 1455194 2013-03-11 15:45:54Z luc$
• ### Constructor Summary

Constructors
Constructor and Description
BaseRuleFactory()
• ### Method Summary

Methods
Modifier and Type Method and 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 Detail

• #### BaseRuleFactory

public BaseRuleFactory()
• ### Method Detail

• #### 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.

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.