Git Product home page Git Product logo

prol's Introduction

PROL

Code for Computing Generalized Prolate Spheroidal Functions (GPSF)

For the 1-D version, see: Prol 1-D

The numerical methods for this code are described in: Numerical Algorithms for the Computation of Generalized Prolate Spheroidal Functions (the latex source is available and is being updated at in the /doc folder).

A secondary goal of this project is to develop methodology for cross-validation of key results using both analytical computational validating (here, using Mathematica) and numerical validation.

Code License: GNU General Public License v3.0 (see LICENSE file).

Project Status

This code is under development and it is still being tested. The current version does not implement the classic one-dimensional Prolate Spheroidal Wave Functions (PSWF), which we plan to add in the future. Currently, only a MATLAB implementation is available. We plan to add a more comprehensive implementation in FORTRAN, and interfaces for Julia and Python.

Documentation

The numerical methods are described in a paper which is available, along with the associated LaTeX code in the /doc folder of this project. The report is also available on arXiv (https://arxiv.org/abs/1710.02874).

The code which reproduces the figures in the report is available in the /doc/figures folder

"Open Source Proof"

To make the analytical expressions more convenient for analytical verification by the readers, we provide experimental Mathematica code that confirms some of the analytical relations which have been obtained in other ways. Where we have not been able to use Mathematica to verify the most general form of the relations that we have derived, we demonstrate some results with specific choice of parameters, which the user can change easily. Furthermore, where possible, we generate the expression in the paper, and some limited pieces of the code, directly from the relations that are verified in the Mathematica code to reduce the possibility of typos and incompatible notation. Ultimately, the goal of this experiment is to develop methodology that would allow to confirm key results in papers using both an analytical computational tool and a numerical computational tool, and to verify the compatibility between the expressions.

Caveats

  • The classic 1-D Prolate Spheroidal Wave Functions (PSWF) have not been implemented in this code yet.
  • The code is still under development, and has not been stress-tested yet.
  • For technical reasons, accuracy testing will only be available with the FORTRAN implementation.
  • To make the code more readable, the preliminary MATLAB implementation relies on the eigenvector decomposition in MATLAB which poses several potential problems in scaling and porting to other languages and other versions of MATLAB. There are several obvious downsides to using the standard eig, but there are more subtle considerations discussed in eig notes in the documentation folder. If you attempt to port the code and encounter any loss of precision, please note the comments in that part of the code and the notes in the documentation folder. This dependency will be removed in future versions.

Contributing to this Project

We welcome contributions to the code and theoretical background. The latex source of the report is available in this repository.

Citation

Please cite: Roy R. Lederman. Numerical Algorithms for the Computation of Generalized Prolate Spheroidal Functions (2017) arXiv:1710.02874

Additional resources

  • Slepian, David. "Prolate spheroidal wave functions, Fourier analysis and uncertainty—IV: extensions to many dimensions; generalized prolate spheroidal functions." Bell Labs Technical Journal 43.6 (1964): 3009-3057.
  • Serkh, Kirill. On generalized prolate spheroidal functions. Technical Report TR-1519, Department of Mathematics, Yale University, 2015.

prol's People

Contributors

lederman avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.