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 UnivariateFunction
x
- Point at which the function value should be computed.@Deprecated public UnivariateFunction derivative()
value(DerivativeStructure)
derivative
in interface DifferentiableUnivariateFunction
public DerivativeStructure value(DerivativeStructure t) throws DimensionMismatchException
UnivariateDifferentiableFunction
classes compute both the
value and the first derivative of the function.
value
in interface UnivariateDifferentiableFunction
t
- function input valueDimensionMismatchException
- if t is inconsistent with the
function's free parameters or orderCopyright (c) 2003-2013 Apache Software Foundation