java.lang.Object
org.apache.commons.math3.analysis.function.Sinc
All Implemented Interfaces:
DifferentiableUnivariateFunction, UnivariateDifferentiableFunction, UnivariateFunction

Sinc function, defined by

   sinc(x) = 1            if x = 0,
             sin(x) / x   otherwise.
 
Since:
3.0
  • Field Details

    • SHORTCUT

      private static final double SHORTCUT
      Value below which the computations are done using Taylor series.

      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| invalid input: '<'= SHORTCUT.

      See Also:
    • normalized

      private final boolean normalized
      For normalized sinc function.
  • Constructor Details

    • Sinc

      public Sinc()
      The sinc function, sin(x) / x.
    • Sinc

      public Sinc(boolean normalized)
      Instantiates the sinc function.
      Parameters:
      normalized - If true, the function is sin(πx) / πx, otherwise sin(x) / x.
  • Method Details