checkEndpointWidth.m#
Determines if an integral over a bounded contour can be considered non-oscillatory.
As described in the paper [Gibbs et al., 2024], this is a preliminary step to determine if the original integral can be considered non-oscillatory. To achieve this, we place temporary balls around both endpoints \(\{a,b\}\), based on the same criteria used to determine radii throughout the algorithm. If the balls overlap, this is an indication that there are only a few oscillations between the endpoints.
isOverlapping = checkEndpointWidth(a, b, phaseCoeffs, freq, numOscs, numRays, isInteriorBal, imagThresh, useMex)
Inputs#
aandbare the endpoints of the original integralphaseCoeffsis a vector of coefficients of the polynomial phase function in the original integralfreqis the frequency parameter of the original integralnumOscsis the parameter which governs the size of the balls; the larger this value, the more oscillations are permitted inside of the balls.numRaysthe number of rays fired from the endpoints \(\{a,b\}\) when determining the non-oscillatory ball around them.isInteriorBallis a boolean flag which determines if the non-oscillatory ball contains the non-oscillatory region, or is contained within it. Practically, it corresponds to choosing the shortest ray (interior) or the longest ray (exterior) which intercepts the boundary of the non-oscillatory region in the bisection method.
Outputs#
isOverlappingis a boolean flag, true if the non-oscillatory balls around the endpoints \(a\) and \(b\) overlap.