PathFinder: A Matlab/Octave package for oscillatory integration

PathFinder: A Matlab/Octave package for oscillatory integration - Published in JOSS (2025)

https://github.com/andrewgibbs/pathfinder

Science Score: 93.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

oscillatory-integrals saddle-point steepest-descent
Last synced: 4 months ago · JSON representation

Repository

A Matlab/Octave package for oscillatory integration

Basic Info
  • Host: GitHub
  • Owner: AndrewGibbs
  • License: mit
  • Language: MATLAB
  • Default Branch: master
  • Homepage:
  • Size: 12.9 MB
Statistics
  • Stars: 14
  • Watchers: 2
  • Forks: 5
  • Open Issues: 4
  • Releases: 3
Topics
oscillatory-integrals saddle-point steepest-descent
Created almost 7 years ago · Last pushed 4 months ago
Metadata Files
Readme License

README.md

PathFinder

codecov Binder status CI CI Documentation Status

PathFinder is a Matlab/Octave toolbox for the numerical evaluation of highly oscillatory integrals. Specifically, PathFinder can efficiently evaluate integrals of the form

math I = \int_{a}^b f(z)\exp(\mathrm{i}\omega g(z)) \mathrm{d}z,

where $g$ is a polynomial, $f$ is entire (analytic everywhere in $\mathbb{C}$), $\omega>0$ is a frequency parameter, and the endpoints $a$ and $b$ may be finite or infinite. Further, it is assumed that $I$ is a convergent integral and that $|f(z)|$ grows sub-exponentially as $|z|\to\infty$.

PathFinder is based on steepest descent contour deformation, but it can be easily used without a deep understanding of the underlying mathematics; it is sufficient to understand the conditions in the previous paragraph.

For information about installation, syntax and how to contribute, please refer to the full documentation.

Acknowledgments

I am very grateful for the guidance and advice of Daan Huybrechs and David Hewett throughout the development of this software. I am also grateful for financial support from KU Leuven project C14/15/05 and EPSRC projects EP/S01375X/1, EP/V053868/.

Some of the code in PathFinder relies on other projects. I am grateful to Dimas Aryo, whose code [3] is used for the Dijkstra shortest path algorithm. Copyright information for this code can be found in: src/shortest_path/dijkstra/license.txt. I am also grateful to Dirk Laurie and Walter Gautschi for writing the Golub-Welsch algorithm used to generate Gaussian quadrature rules.

Owner

  • Name: Andrew Gibbs
  • Login: AndrewGibbs
  • Kind: user
  • Location: London, UK
  • Company: University College London

JOSS Publication

PathFinder: A Matlab/Octave package for oscillatory integration
Published
October 30, 2025
Volume 10, Issue 114, Page 6902
Authors
Andrew Gibbs ORCID
University College London, United Kingdom
Editor
Olexandr Konovalov ORCID
Tags
Matlab Octave Oscillatory integrals High-frequency scattering Catastrophe integrals Steepest descent Coalescing saddles

GitHub Events

Total
  • Issues event: 3
  • Watch event: 2
  • Issue comment event: 10
  • Push event: 49
  • Pull request review event: 3
  • Pull request review comment event: 1
  • Pull request event: 1
  • Create event: 2
Last Year
  • Issues event: 3
  • Watch event: 1
  • Issue comment event: 10
  • Push event: 49
  • Pull request review event: 3
  • Pull request review comment event: 1
  • Pull request event: 1
  • Create event: 2

Dependencies

.github/workflows/draft-pdf.yml actions
  • actions/checkout v4 composite
  • actions/upload-artifact v1 composite
  • openjournals/openjournals-draft-action master composite
.github/workflows/CI.yml actions
  • actions/checkout v3 composite
  • matlab-actions/run-tests v1 composite
  • matlab-actions/setup-matlab v1 composite
environment.yml conda
  • octave
  • octave_kernel