Update Gaver functional array allocation in gwr.jl #32
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi!
Just a small change: looks like the Gaver functionals are being added to the array in the wrong place, meaning f_1 is being assigned in place of f_0 etc, and f_M is ending up as zero, rather than having f_0=0. (Compare equation 4 from Abate and Valkó, Multi-precision Laplace transform inversion, 2004)
Did some testing against the 35 test functions from Cohen (Numerical methods for Laplace transform inversion, 2007) just to confirm and it generally does better after the change.
Sometimes does slightly worse, but generally this is for problems where the GWR method isn't working very well anyway (i.e. square wave, unshifted sinh, etc.) or else its only worse for a particular values of M on a given problem (since M+2 doesn't necessarily give a better approximation than M, I'm guessing).
Here are some results for$t=9.9$
(Plotting