Skip to main content

Open source library for continuous-variable quantum computation

Project description

Strawberry Fields
#################

.. image:: https://img.shields.io/travis/XanaduAI/strawberryfields.svg?style=for-the-badge
:alt: Travis
:target: https://travis-ci.org/XanaduAI/strawberryfields

.. image:: https://img.shields.io/codecov/c/github/xanaduai/strawberryfields/master.svg?style=for-the-badge
:alt: Codecov coverage
:target: https://codecov.io/gh/XanaduAI/strawberryfields

.. image:: https://img.shields.io/codacy/grade/bd14437d17494f16ada064d8026498dd.svg?style=for-the-badge
:alt: Codacy grade
:target: https://app.codacy.com/app/XanaduAI/strawberryfields?utm_source=github.com&utm_medium=referral&utm_content=XanaduAI/strawberryfields&utm_campaign=badger

.. image:: https://img.shields.io/readthedocs/strawberryfields.svg?style=for-the-badge
:alt: Read the Docs
:target: https://strawberryfields.readthedocs.io

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

Features
========

.. image:: doc/_static/sfcomponents.svg
:align: right
:width: 60%

* 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:

* `Python <http://python.org/>`_ >=3.5
* `NumPy <http://numpy.org/>`_ >=1.13.3
* `SciPy <http://scipy.org/>`_ >=1.0.0
* `NetworkX <http://networkx.github.io/>`_ >=2.0
* `Tensorflow <https://www.tensorflow.org/>`_ >=1.3

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


Installation
============
.. highlight:: console

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 ``guassian``).

Individual test modules are run using
::

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


Documentation
=============

The Strawberry Fields documentation is built automatically and hosted at `Read the Docs <https://strawberryfields.readthedocs.io>`_.

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

* `Sphinx <http://sphinx-doc.org/>`_ >=1.5
* `graphviz <http://graphviz.org/>`_ >=2.38
* `sphinxcontrib-bibtex <https://sphinxcontrib-bibtex.readthedocs.io/en/latest/>`_ >=0.3.6

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.


Support
=======

- **Source Code:** https://github.com/XanaduAI/strawberryfields
- **Issue Tracker:** https://github.com/XanaduAI/strawberryfields/issues

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.0.tar.gz (1.7 MB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for StrawberryFields-0.7.0.tar.gz
Algorithm Hash digest
SHA256 b9b2473b3f23b7afa0064620bb38d98e93a9c09d80037198a4cee53471b14164
MD5 cf647899e76b8402d03f3098d4719205
BLAKE2b-256 cccf1cf7d9d3de05273e421c317a7f7d3fbc6e74140d1b71bfdb1f914b2304ac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for StrawberryFields-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 62e02c04b159e5b15d0664df3eea2cddd2af343995a7256b52535a0767295df3
MD5 4a33922084222acac240b73dc1219c73
BLAKE2b-256 edc4ce23bf132e67aabfe65af52fd23227bdd16cb6a1a8d77134b84cd9e5a175

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