public class Sinc extends java.lang.Object implements UnivariateDifferentiableFunction, DifferentiableUnivariateFunction
sinc(x) = 1 if x = 0,
sin(x) / x otherwise.
| Modifier and Type | Field and Description |
|---|---|
private boolean |
normalized
For normalized sinc function.
|
private static double |
SHORTCUT
Value below which the computations are done using Taylor series.
|
| Constructor and Description |
|---|
Sinc()
The sinc function,
sin(x) / x. |
Sinc(boolean normalized)
Instantiates the sinc function.
|
| Modifier and Type | Method and Description |
|---|---|
UnivariateFunction |
derivative()
Deprecated.
as of 3.1, replaced by
value(DerivativeStructure) |
DerivativeStructure |
value(DerivativeStructure t)
Simple mathematical function.
|
double |
value(double x)
Compute the value of the function.
|
private static final double SHORTCUT
The Taylor series for sinc even order derivatives are:
d^(2n)sinc/dx^(2n) = Sum_(k>=0) (-1)^(n+k) / ((2k)!(2n+2k+1)) x^(2k)
= (-1)^n [ 1/(2n+1) - x^2/(4n+6) + x^4/(48n+120) - x^6/(1440n+5040) + O(x^8) ]
The Taylor series for sinc odd order derivatives are:
d^(2n+1)sinc/dx^(2n+1) = Sum_(k>=0) (-1)^(n+k+1) / ((2k+1)!(2n+2k+3)) x^(2k+1)
= (-1)^(n+1) [ x/(2n+3) - x^3/(12n+30) + x^5/(240n+840) - x^7/(10080n+45360) + O(x^9) ]
So the ratio of the fourth term with respect to the first term is always smaller than x^6/720, for all derivative orders. This implies that neglecting this term and using only the first three terms induces a relative error bounded by x^6/720. The SHORTCUT value is chosen such that this relative error is below double precision accuracy when |x| <= SHORTCUT.
private final boolean normalized
public Sinc()
sin(x) / x.public Sinc(boolean normalized)
normalized - If true, the function is
sin(πx) / πx, otherwise sin(x) / x.public double value(double x)
value in interface UnivariateFunctionx - Point at which the function value should be computed.@Deprecated public UnivariateFunction derivative()
value(DerivativeStructure)derivative in interface DifferentiableUnivariateFunctionpublic DerivativeStructure value(DerivativeStructure t) throws DimensionMismatchException
UnivariateDifferentiableFunction classes compute both the
value and the first derivative of the function.
value in interface UnivariateDifferentiableFunctiont - function input valueDimensionMismatchException - if t is inconsistent with the
function's free parameters or orderCopyright (c) 2003-2015 Apache Software Foundation