Skip to main content

Picard-Lefschetz Integration in N-Dimensions for highly oscillatory functions

Project description

plind.py Documentation

Introduction

plind.py (Picard-Lefschetz Integration in N-Dimensions) is a Python package that implements the Picard-Lefschetz method for integrating highly oscillatory functions in any number of dimensions.

Description

This code is for people interested in computing integrals of the form $$I=\int_\Omega \text{d}^n\mathbf{x}\exp i S(\mathbf{x};\mathbf{\mu}).$$ These integrals occur in quantum theory and wave optics. Such integrals are not possible to do using traditional numerical methods due to their highly oscillatory nature.

However, Picard-Lefschetz (PL) theory gives a recipe for computing them by analytically continuing the integration domain to $\mathbb{C}^n$, deforming the integration domain according to certain rules, then integrating on the new domain. This package is an implementation of the PL algorithm in Python.

For details, see papers in the additional information section.

Installation

To use plind.py, run pip install plind.

Usage

To use the code, follow the examples in Example Notebook.ipynb.

Additional Information

For more information on the code and its usage, refer to the docstrings and comments within the code files, or email the authors. See also arXiv:2103.08687 and arXiv:1909.04632 for details on the method.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

plind-0.1.0.tar.gz (51.1 kB view hashes)

Uploaded Source

Built Distribution

plind-0.1.0-py3-none-any.whl (41.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page