Skip to content
Contains the PennyLane Strawberry Fields plugin. This plugin allows two devices to work with PennyLane - the Strawberry Fields Fock backend, and the Strawberry Fields Gaussian backend.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github
doc added info on Identity to the docs Nov 30, 2018
pennylane_sf
tests added tests Jan 16, 2019
.coveragerc
.gitignore renamed openqml-sf to pennylane-sf Oct 29, 2018
.pylintrc updated lintrc Nov 13, 2018
.readthedocs.yml
.travis.yml
LICENSE first commit Oct 11, 2018
Makefile
README.rst added whitepaper links Nov 14, 2018
requirements.txt
setup.py

README.rst

PennyLane Strawberry Fields Plugin

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

This PennyLane plugin allows the Strawberry Fields simulators to be used as PennyLane devices.

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

PennyLane is a machine learning library for optimization and automatic differentiation of hybrid quantum-classical computations.

Features

  • Provides two devices to be used with PennyLane: strawberryfields.fock and strawberryfields.gaussian. These provide access to the Strawberry Fields Fock and Gaussian backends respectively.
  • Supports all core PennyLane operations and expectation values across the two devices.
  • Combine Strawberry Fields optimized simulator suite with PennyLane's automatic differentiation and optimization.

Installation

PennyLane-SF requires both PennyLane and Strawberry Fields. It can be installed via pip:

$ python -m pip install pennylane-sf

Getting started

Once the PennyLane-SF plugin is installed, the two provided Strawberry Fields devices can be accessed straight away in PennyLane.

You can instantiate these devices for PennyLane as follows:

import pennylane as qml
dev_fock = qml.device('strawberryfields.fock', wires=2, cutoff_dim=10)
dev_gaussian = qml.device('strawberryfields.gaussian', wires=2)

These devices can then be used just like other devices for the definition and evaluation of QNodes within PennyLane. For more details, see the plugin usage guide and refer to the PennyLane documentation.

Contributing

We welcome contributions - simply fork the PennyLane-SF repository, and then make a pull request containing your contribution. All contributers to PennyLane-SF will be listed as authors on the releases.

We also encourage bug reports, suggestions for new features and enhancements, and even links to cool projects or applications built on PennyLane and Strawberry Fields.

Authors

Josh Izaac, Ville Bergholm, Maria Schuld, Nathan Killoran and Christian Gogolin

If you are doing research using PennyLane and StrawberryFields, please cite our papers:

Ville Bergholm, Josh Izaac, Maria Schuld, Christian Gogolin, and Nathan Killoran. PennyLane: Automatic differentiation of hybrid quantum-classical computations. 2018. arXiv:1811.04968

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

Support

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

We also have a Strawberry Fields Slack channel - come join the discussion and chat with our Strawberry Fields team.

License

PennyLane-SF is free and open source, released under the Apache License, Version 2.0.

You can’t perform that action at this time.