Skip to main content

Package for efficient calculation of generalized filter functions

Project description

filter_functions: A package for efficient numerical calculation of generalized filter functions

Coverage Status Build Status Documentation Status PyPI version

Simply put, filter functions characterize a pulse's susceptibility to noise at a given frequency and can thus be used to gain insight into the decoherence of the system. The formalism allows for efficient calculation of several quantities of interest such as average gate fidelity. Moreover, the filter function of a composite pulse can be easily derived from those of the constituent pulses, allowing for efficient assembly and characterization of pulse sequences.

Previously, filter functions have only been computed analytically for select pulses such as dynamical decoupling sequences [1], [2]. With this project we aim to provide a toolkit for calculating and inspecting filter functions for arbitrary pulses including pulses without analytic form such as one might get from numerical pulse optimization algorithms.

The package is built to interface with QuTiP, a widely-used quantum toolbox for Python, and comes with extensive documentation and a test suite.

Installation

To install the package from PyPI, run pip install filter_functions. It is recommended to install QuTiP before by following the instructions on their website rather than installing it through pip. To install the package from source run python setup.py develop to install using symlinks or python setup.py install without.

To install the optional dependencies (tqdm and requests for a fancy progress bar), run pip install -e .[fancy_progressbar] from the root directory.

Documentation

You can find the documentation on Readthedocs. It is built from Jupyter notebooks that can also be run interactively and are located here. The notebooks explain how to use the package and thus make sense to follow chronologically as a first step. Furthermore, there are also a few example scripts in the examples folder.

The documentation including the example notebooks and an automatically generated API documentation can be built by running make <format> inside the doc directory where <format> is for example html.

Building the documentation requires the following additional dependencies: nbsphinx, numpydoc, sphinx_rtd_theme, jupyter_client, ipython, ipykernel, as well as pandoc. The last can be installed via conda (conda install pandoc) or downloaded from Github and the rest automatically by running pip install -e .[doc].

References

[1]: Cywinski, L., Lutchyn, R. M., Nave, C. P., & Das Sarma, S. (2008). How to enhance dephasing time in superconducting qubits. Physical Review B - Condensed Matter and Materials Physics, 77(17), 1–11. https://doi.org/10.1103/PhysRevB.77.174509

[2]: Green, T. J., Sastrawan, J., Uys, H., & Biercuk, M. J. (2013). Arbitrary quantum control of qubits in the presence of universal noise. New Journal of Physics, 15(9), 095004. https://doi.org/10.1088/1367-2630/15/9/095004

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

filter_functions-0.2.4.tar.gz (62.3 kB view hashes)

Uploaded Source

Built Distribution

filter_functions-0.2.4-py3-none-any.whl (77.7 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