Class GaussLaguerreQuadratureIntegrator1D
- java.lang.Object
-
- com.opengamma.strata.math.impl.integration.Integrator1D<Double,Double>
-
- com.opengamma.strata.math.impl.integration.GaussianQuadratureIntegrator1D
-
- com.opengamma.strata.math.impl.integration.GaussLaguerreQuadratureIntegrator1D
-
public class GaussLaguerreQuadratureIntegrator1D extends GaussianQuadratureIntegrator1D
Gauss-Laguerre quadrature approximates the value of integrals of the form $$ \begin{align*} \int_{0}^{\infty} e^{-x}f(x) dx \end{align*} $$ The weights and abscissas are generated byGaussLaguerreWeightAndAbscissaFunction
.The function to integrate is scaled in such a way as to allow any values for the limits of integration. At present, this integrator can only be used for the limits $[0, \infty]$.
-
-
Constructor Summary
Constructors Constructor Description GaussLaguerreQuadratureIntegrator1D(int n)
Creates an instance.GaussLaguerreQuadratureIntegrator1D(int n, double alpha)
Creates an instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Function<Double,Double>
getIntegralFunction(Function<Double,Double> function, Double lower, Double upper)
Returns a function that is valid for both the type of quadrature and the limits of integration.Double[]
getLimits()
Gets the limits.-
Methods inherited from class com.opengamma.strata.math.impl.integration.GaussianQuadratureIntegrator1D
equals, hashCode, integrate, integrateFromPolyFunc
-
Methods inherited from class com.opengamma.strata.math.impl.integration.Integrator1D
integrate
-
-
-
-
Constructor Detail
-
GaussLaguerreQuadratureIntegrator1D
public GaussLaguerreQuadratureIntegrator1D(int n)
Creates an instance.- Parameters:
n
- the value
-
GaussLaguerreQuadratureIntegrator1D
public GaussLaguerreQuadratureIntegrator1D(int n, double alpha)
Creates an instance.- Parameters:
n
- the valuealpha
- the alpha
-
-
Method Detail
-
getLimits
public Double[] getLimits()
Description copied from class:GaussianQuadratureIntegrator1D
Gets the limits.- Specified by:
getLimits
in classGaussianQuadratureIntegrator1D
- Returns:
- The lower and upper limits for which the quadrature is valid
-
getIntegralFunction
public Function<Double,Double> getIntegralFunction(Function<Double,Double> function, Double lower, Double upper)
Returns a function that is valid for both the type of quadrature and the limits of integration. The function $f(x)$ that is to be integrated is transformed into a form suitable for this quadrature method using: $$ \begin{align*} \int_{0}^{\infty} f(x) dx &= \int_{0}^{\infty} f(x) e^x e^{-x} dx\\ &= \int_{0}^{\infty} g(x) e^{-x} dx \end{align*} $$- Specified by:
getIntegralFunction
in classGaussianQuadratureIntegrator1D
- Parameters:
function
- The function to be integrated, not nulllower
- The lower integration limit, not nullupper
- The upper integration limit, not null- Returns:
- A function in the appropriate form for integration
- Throws:
UnsupportedOperationException
- If the lower limit is not $-\infty$ or the upper limit is not $\infty$
-
-