org.apache.commons.math3.analysis.integration.gauss
Class BaseRuleFactory<T extends Number>

java.lang.Object
  extended by 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:
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
BaseRuleFactory()
           
 
Method Summary
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.

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.


Copyright © 2003-2013 The Apache Software Foundation. All Rights Reserved.