Skip to main content

Open source library for continuous-variable quantum computation

Project description

Travis Codecov coverage Codacy grade Read the Docs PyPI PyPI - License PyPI - Python Version

Strawberry Fields is a full-stack Python library for designing, simulating, and optimizing continuous variable (CV) quantum optical circuits.

Features

doc/_static/sfcomponents.svg
  • An open-source software architecture for photonic quantum computing

  • A full-stack quantum software platform, implemented in Python specifically targeted to the CV model

  • Quantum circuits are written using the easy-to-use and intuitive Blackbird quantum programming language

  • Includes a suite of CV quantum computer simulators implemented using NumPy and Tensorflow - these built-in quantum compiler tools convert and optimize Blackbird code for classical simulation

  • Future releases will aim to target experimental backends, including photonic quantum computing chips

Dependencies

Strawberry Fields depends on the following Python packages:

These can be installed using pip, or, if on linux, using your package manager (i.e. apt if on a Debian-based system.)

Installation

Installation of Strawberry Fields, as well as all required Python packages mentioned above, can be done using pip:

$ python -m pip install strawberryfields

Software tests

To ensure that Strawberry Fields is working correctly after installation, the test suite can be run by navigating to the source code folder and running

make test

Note that this runs all of the tests, using all available backends, so can be quite slow (it should take around 40 minutes to complete). Alternatively, you can run the full test suite for a particular backend by running

make test-[backend]

where [backend] should be replaced with the backend you would like to test (fock, tf, or gaussian).

Individual test modules are run using

python tests/test_gate.py --backend=[backend]

Documentation

The Strawberry Fields documentation is built automatically and hosted at Read the Docs.

To build the documentation locally, the following additional packages are required:

If using Ubuntu, they can be installed via a combination of apt and pip:

$ sudo apt install graphviz
$ pip3 install sphinx --user
$ pip3 install sphinxcontrib-bibtex --user

To build the HTML documentation, go to the top-level directory and run the command

$ make docs

The documentation can then be found in the doc/_build/html/ directory.

Authors

Nathan Killoran, Josh Izaac, Nicolás Quesada, Ville Bergholm, Matthew Amy, and Christian Weedbrook.

We welcome contributions - simply fork the Strawberry Fields repository, and then make a pull request containing your contribution.

If you are doing research using Strawberry Fields, please cite our whitepaper:

Nathan Killoran, Josh Izaac, Nicolás Quesada, Ville Bergholm, Matthew Amy, and Christian Weedbrook. Strawberry Fields: A Software Platform for Photonic Quantum Computing. arXiv, 2018. arXiv:1804.03159

Support

If you are having issues, please let us know by posting the issue on our Github issue tracker.

License

Strawberry Fields is free and open source, released under the Apache License, Version 2.0.

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

StrawberryFields-0.7.2.tar.gz (1.7 MB view details)

Uploaded Source

Built Distribution

StrawberryFields-0.7.2-py3-none-any.whl (1.6 MB view details)

Uploaded Python 3

File details

Details for the file StrawberryFields-0.7.2.tar.gz.

File metadata

File hashes

Hashes for StrawberryFields-0.7.2.tar.gz
Algorithm Hash digest
SHA256 df41e177f47304da0de61b19feeb9a0d2c210a584a6b3912b585c75c7ac3ad90
MD5 a943a4fbb2b6725ed811ed2f34bc3534
BLAKE2b-256 1bfac5dea41cfa9c7bfe41866c077cd34ef4ad9e73d6c269ebcfb1ed61d8abda

See more details on using hashes here.

File details

Details for the file StrawberryFields-0.7.2-py3-none-any.whl.

File metadata

File hashes

Hashes for StrawberryFields-0.7.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7b3fc2ce7078c25807ac44107d875eae170e637d387e0a4bcf5407e785f9dbbe
MD5 9bc864fe86aae6f558c9fd0700548c11
BLAKE2b-256 1c6f6b84823fa03d308cfe8f5ab8f1df6713c53576031d729162aea55d38c388

See more details on using hashes here.

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