FCCQuad.jl is a Julia implementation of variants of Filon-Clenshaw-Curtis (FCC) quadrature.
fccquad computes complex finite Fourier integrals of the form
where
fccquad_cc computes real finite Fourier integrals of the form
where
fccquad_cs, fccquad_sc, and fccquad_ss
replace one or both of the cosines in the above integrand with sines.
Specify a FCC quadrature variant with the method keyword argument.
(Default: :tone.)
-
Method
:nonadaptiveis FCC quadrature with the base-2 logarithm of the interpolation degree specified bynonadaptivelog2degree(default: 10). -
Method
:degreeis a degree-adaptive FCC quadrature with the base-2 logarithm of the interpolation degree starting atminlog2degree(default: 3) and adaptively increasing but not beyondglobalmaxlog2degree(default: 20). -
Methods
:plain,:tone, and:chirpare hybrid interval-adaptive degree-adaptive FCC quadrature variants with the base-2 logarithm of the per-subinterval interpolation degree starting atminlog2degree(default: 3) and adaptively increasing but not beyondlocalmaxlog2degree(default: 6). If a subinterval's accuracy goals are not met even with the maximum degree, then the subinterval is divided intobranching-many equal subintervals. (default: 4). -
Methods
:toneand:chirpuse automatic differentiation to factor out a per-subinterval tone or chirp (respectively) before the polynomial interpolation step. To use these methods, the function$g$ must be generic enough to take input of typeFCCQuad.Jets.Jet{real(T)}, which is a subtype ofNumber.
| Method | Supported Working Precisions |
|---|---|
:nonadaptive, :degree |
Float64, BigFloat(precision=256) |
:plain, :tone |
Float32, Float64, BigFloat(precision=256) |
:chirp |
Float64 |
All methods involve evaluating a function
The :tone and :chirp methods compute Taylor coefficients
of
The :chirp method compensates for the :chirp method will divide
the domain of integration into subintervals and recurse if
:chirp method is only recommended
for integrands that are extremely expensive to sample.
For more information, see the preprint:
Filon-Clenshaw-Curtis Quadrature with Automatic Tone Removal