Skip to main content

biglogo

Python Tests Python Version Support Version PyPI version Documentation Status GitHub repository github: stars github: forks License: MIT Code style: black zenodo: DOI

SHIFT : Scalable Helper Interface for Fourier Transforms

Introduction

SHIFT is a scalable interface library for computing FFTs with scipy. The library wraps scipy FFT routines, making it easy to keep track of the corresponding Fourier modes in Fourier space. The package can be used for very large computations with MPI distributed code possible using the mpi4py library, using a slab decomposition to perform distributed FFTs.

NOTE: SHIFT was originally designed to be a Spherical/Polar Fourier Transform library. However, the package has developed into being predominanty a helper and MPI interface for FFTs in 1D/2D/3D cartesian grids. The development of the Polar and Spherical Bessel transforms is still ongoing but is no longer the focus -- functions in shift.polar and shift.sphere should be used with extreme caution and are only available from the sphere branch of the code.

Dependencies

  • numba
  • numpy
  • scipy
  • mpi4py [Optional: enables MPI distributed processes]

Installation

SHIFT can be installed via pip:

pip install shift-fft

Or by cloning the github repository:

git clone https://github.com/knaidoo29/SHIFT.git
cd SHIFT
pip install .

The latter of which can be used to install specific branches.

Once this is done you should be able to call SHIFT from python:

import shift

To use the MPI functionality please take a look at the documentation which instructs users how to use the SHIFT MPI object and how to run these distributed jobs successfully without errors or MPI related hanging.

Documentation

In depth documentation and tutorials are provided here.

Citation

If you use SHIFT in your work, please cite:

DOI

  @software{naidoo_shift_2025,
    author       = {Naidoo, Krishna},
    title        = {SHIFT: a scalable MPI library for computing fast Fourier transforms in python},
    year         = 2025,
    publisher    = {Zenodo},
    doi          = {10.5281/zenodo.17093446},
    url          = {https://doi.org/10.5281/zenodo.17093446}}

Support

If you have any issues with the code or want to suggest ways to improve it please open a new issue (here) or (if you don't have a github account) email krishna.naidoo.11@ucl.ac.uk.

Metadata

Release files for shift-fft 1.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for shift-fft 1.0.5
File Size Uploaded
shift_fft-1.0.5.tar.gz 34.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for shift-fft 1.0.5
File Interpreter ABI Platform
shift_fft-1.0.5-py3-none-any.whl Python 3 none any Details

Total release size: 80.1 kB

Release files / shift_fft-1.0.5.tar.gz

Download URL shift_fft-1.0.5.tar.gz
Size 34.9 kB
Tags Source
SHA-256 checksum
How to use checksums
94862efe0e439def4b92964fbdb56459a1551d699787895aed7cbd84e987ccfe
BLAKE2b-256 checksum
How to use checksums
c0bfde72fbd4f6d027e88da2254c18e8f38fee833b5a95944a9014dda7d8f67a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release files / shift_fft-1.0.5-py3-none-any.whl

Download URL shift_fft-1.0.5-py3-none-any.whl
Size 45.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
84379e97dba0fe885cf328ee4653ab92b4926b2676e82a49866cf4fb9cb47af0
BLAKE2b-256 checksum
How to use checksums
8a3e365f90570c331ab5f2a9466e284159d14d820deba38f22d6359b7edce729
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release history Release notifications | RSS feed

1.1.1

2 release files

1.1.0

2 release files

This release

1.0.5 This release

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page