This release contains contributions from (in alphabetical order):
- Added support for custom simulator objects for use with the Floq service. (#51)
This release contains contributions from (in alphabetical order):
Chase Roberts
- Added support for iSWAP and CPhase gate operations. (#45)
- Removed import of
qsimcirq
from__init__.py
, allowing other devices in this plugin to work withoutqsimcirq
being installed. (#46)
This release contains contributions from (in alphabetical order):
Theodor Isacsson
-
PennyLane integration with the qsim circuit simulator package is now available. (#36).
The new devices include:
-
cirq.qsim
, a Schrödinger full state-vector simulator -
cirq.qsimh
, a hybrid Schrödinger-Feynman simulator. This simulator cuts the qubit lattice into two parts; each part is individually simulated using qsim, with Feynman-style path summation used to return the final result. Compared to full state-vector simulation, qsimh reduces memory requirements, at the expense of an increased runtime.
After installing the
qsimcirq
package, the qsim and qsimh devices can be invoked via the names"cirq.qsim"
and"cirq.qsimh"
respectively, e.g.,dev = qml.device("cirq.qsimh", qsimh_options=qsimh_options, wires=3)
These devices can then be used for the evaluation of QNodes within PennyLane. For more details, see the PennyLane qsim documentation
-
This release contains contributions from (in alphabetical order):
Theodor Isacsson, Nathan Killoran, Josh Izaac
-
Devices from Cirq's Pasqal submodule are now available for use. (#40).
A simulator device compatible with Pasqal's neutral-atom model can be invoked via the name
"cirq.pasqal"
, e.g.,dev = qml.device("cirq.pasqal", control_radius=1.0, wires=3)
This release contains contributions from (in alphabetical order):
Nathan Killoran, Josh Izaac
-
Made plugin device compatible with new PennyLane wire management. (#37) (#42)
One can now specify any string or number as a custom wire label, and use these labels to address subsystems on the device:
dev = qml.device('cirq.simulator', wires=['q1', 'ancilla', 0, 1]) def circuit(): qml.Hadamard(wires='q1') qml.CNOT(wires=[1, 'ancilla']) ...
This release contains contributions from (in alphabetical order):
Josh Izaac, Nathan Killoran, Maria Schuld
This release contains contributions from (in alphabetical order):
- Added a new mixedsimulator class to Cirq, which uses Cirq's DensityMatrixSimulator as a backend. #27
- Redesigned the documentation to be consistent with other plugins. #25
- Renamed probability to
analytic_probability
to support new changes in PennyLane. #24
This release contains contributions from (in alphabetical order):
Theodor Isacsson, Nathan Killoran, Maria Schuld, Antal Száva
-
Ported the
CirqDevice
class to use the newQubitDevice
base class, enabling the use of tensor observables. #19 -
Added support for inverse operations by defining the
.inv()
method of theCirqOperation
class which uses thecirq.inverse
function. #15
-
Replaced depreceated Cirq commands. #19
-
Fix a minor bug introduced into the test suite by the release of Cirq 0.7.0. #18
-
Fix bugs introduced into the test suite by the release of Cirq 0.6.0. #13
This release contains contributions from (in alphabetical order):
Johannes Jakob Meyer, Antal Száva
Initial public release.
This release contains contributions from:
Johannes Jakob Meyer