QawfIntegration Type

QAWF adaptive integration for Fourier integrals.

This class attempts to compute a Fourier integral of the function f over the semiinfinite interval [a,+Infinity).

                        +Infinity                           +Infinity
             I = Integral dx f(x) sin(wt)   or   I = Integral dx f(x) cos(wx)
                        a                                   a
The parameter w and choice of sin or cos is taken from the table wf (the length L can take any value, since it is overridden by this function to a value appropriate for the fourier integration). The integral is computed using the QAWO algorithm over each of the subintervals,
             C1 = [a, a + c]
             C2 = [a + c, a + 2c]
             . . . = . . .
             Ck = [a + (k - 1)c, a + kc]
where c = (2floor(|w|) + 1)Pi/|w|. The width c is chosen to cover an odd number of periods so that the contributions from the intervals alternate in sign and are monotonically decreasing when f is positive and monotonically decreasing. The sum of this sequence of contributions is accelerated using the epsilon-algorithm.

Ref.: Gnu Scientific library reference manual ()

Constructors

Constructor Description

QawfIntegration()

Full Usage: QawfIntegration()

Creates an instance of this integration class with a default integration rule and default debug flag setting.

QawfIntegration(debug)

Full Usage: QawfIntegration(debug)

Parameters:
    debug : bool - Setting of the debug flag for this instance. If the integration fails or the specified accuracy is not reached, an exception is thrown if the debug flag is set to true. If set to false, the return value of the integration function will be set to the appropriate error code (an exception will be thrown then only for serious errors).

Creates an instance of this integration class with specified integration rule and specified debug flag setting.

debug : bool

Setting of the debug flag for this instance. If the integration fails or the specified accuracy is not reached, an exception is thrown if the debug flag is set to true. If set to false, the return value of the integration function will be set to the appropriate error code (an exception will be thrown then only for serious errors).

Instance members

Instance member Description

this.Integrate

Full Usage: this.Integrate

Parameters:
    f : Func<float, float>
    a : float
    oscTerm : OscillatoryTerm
    omega : float
    epsabs : float
    limit : int
    result : byref<float>
    abserr : byref<float>

Returns: GSL_ERROR

f : Func<float, float>
a : float
oscTerm : OscillatoryTerm
omega : float
epsabs : float
limit : int
result : byref<float>
abserr : byref<float>
Returns: GSL_ERROR

this.Integrate

Full Usage: this.Integrate

Parameters:
    f : Func<float, float>
    a : float
    oscTerm : OscillatoryTerm
    omega : float
    epsabs : float
    limit : int
    debug : bool
    result : byref<float>
    abserr : byref<float>

Returns: GSL_ERROR

f : Func<float, float>
a : float
oscTerm : OscillatoryTerm
omega : float
epsabs : float
limit : int
debug : bool
result : byref<float>
abserr : byref<float>
Returns: GSL_ERROR

Static members

Static member Description

QawfIntegration.Integration(f, a, oscTerm, omega, epsabs, limit, result, abserr, tempStorage)

Full Usage: QawfIntegration.Integration(f, a, oscTerm, omega, epsabs, limit, result, abserr, tempStorage)

Parameters:
    f : Func<float, float>
    a : float
    oscTerm : OscillatoryTerm
    omega : float
    epsabs : float
    limit : int
    result : byref<float>
    abserr : byref<float>
    tempStorage : byref<obj>

Returns: GSL_ERROR

f : Func<float, float>
a : float
oscTerm : OscillatoryTerm
omega : float
epsabs : float
limit : int
result : byref<float>
abserr : byref<float>
tempStorage : byref<obj>
Returns: GSL_ERROR