- Support for the
pennylane.operation.Tensor
observable is removed. This observable was deprecated, and is fully removed in PennyLane 0.40. (#170)
This release contains contributions from (in alphabetical order):
-
Support for Python 3.9 has been removed, and support for Python 3.12 has been added. (#167)
-
Upgrade minimum supported version of PennyLane to 0.38.0. (#168)
- Fix deprecated import path for
QubitDevice
. (#162)
This release contains contributions from (in alphabetical order):
Astral Cai Mudit Pandey
- Added support for the
Prod
observable. (#155)
This release contains contributions from (in alphabetical order):
Astral Cai
- Use
tape.measurements
instead oftape.observables
to identify the type of measurement process (#146)
This release contains contributions from (in alphabetical order):
Matthew Silverman
- Added support for NumPy versions >= 1.24 (#142)
This release contains contributions from (in alphabetical order):
Matthew Silverman
- Added support for
qml.StatePrep
as a state preparation operation. (#137)
- Support for Python 3.8 has been removed, and support for Python 3.11 has been added. (#136)
This release contains contributions from (in alphabetical order):
Mudit Pandey, Jay Soni
-
Remove the use of the deprecated function
qml.map
in the tests (#129) -
Update logic in the tests to reflect the new PennyLane return type system (#129)
This release contains contributions from (in alphabetical order):
Matthew Silverman
pennylane-rigetti
no longer supportspython3.7
. A newer python version is required. (#121)
-
Build dependency specification is now solely in
requirements.txt
, which is read bysetup.py
. (#120) -
Removed the use of in-place inversion for PennyLane operations. (#122)
- A missing comma has been added to the version bounds on
qcs-api-client
. (#120)
This release contains contributions from (in alphabetical order):
Albert Mitjans Coma Graham Enos Mudit Pandey
This release uses the latest version of pyQuil to connect to Rigetti Quantum Cloud Services (QCS) and enables the use of the latest Rigetti QPUs as a PennyLane device. #107
-
The package has been renamed to
pennylane-rigetti
. The top level import is nowpennylane_rigetti
. In addition, the prefix for device short names have been changed torigetti
. For example,rigetti.qpu
. #110 -
A new version of the QCS CLI is required if you want to use your QCS account to run your workloads on a live Rigetti QPU. See Using the QCS CLI for details. #107
-
The
forest_url
parameter has been removed, as it is now managed by the QCS CLI. #107 -
The
compiler_url
andqvm_url
device parameters have been removed. The default URLs can be overridden using theQCS_SETTINGS_APPLICATIONS_PYQUIL_QUILC_URL
andQCS_SETTINGS_APPLICATIONS_PYQUIL_QVM_URL
environment variables, respectively. #107 -
The
timeout
parameter for all devices has been renamed tocompiler_timeout
. #107 -
There is now a default execution timeout of 10 seconds. This can be configured for a device by using the new
execution_timeout
parameter. #107 -
The
S
,T
,CSWAP
,ISWAP
, andCCNOT
operations have been removed. Import them directly frompennylane
instead. #107
- Improves the computation of the expectation value when using
QPUDevice
by skipping theDevice.generate_samples
method. #108
- The QPU device now correctly sets the number of shots when parametric compilation is disabled. #107
This release contains contributions from (in alphabetical order):
Albert Mitjans Coma, Antal Szava, Marquess Valdez.
- Defines the missing
state
method andreturns_state
entry of thecapabilities
dictionary forforest.wavefunction
andforest.numpy_wavefunction
. (#101)
This release contains contributions from (in alphabetical order):
Antal Száva.
- Fix a bug where array parameters where not accepted when building circuits on pyQuil side. (#90)
- Added support for Python 3.10. (#96)
This release contains contributions from (in alphabetical order):
Romain Moyard.
- Deprecated Python 3.6. (#85)
- Removed a validation check for
QubitUnitary
that is now in PennyLane core. (#74)
- Pins the PyQuil version to use as
pyquil>=2.16,<2.28.3
due to API deprecations in PyQuil version 3.0. (#73)
This release contains contributions from (in alphabetical order):
Theodor Isacsson, Romain Moyard, Antal Száva.
-
Fixed a bug caused by the
expand_state
method always assuming thatinactive wires are the least significant bits. (#73)
This release contains contributions from (in alphabetical order):
Antal Száva.
-
For compatibility with PennyLane v0.15, the
analytic
keyword argument has been removed from all devices. Analytic expectation values can still be computed by settingshots=None
. (#71) -
For compatibility with PennyLane v0.15, parametric compilation now depends on the
requires_grad
attribute of parameters instead of the deprecatedVariable
class. (#71) -
The circuit hashes used for parametric compilation are computed in
QVMDevice
instead of inQubitDevice
defined in Pennylane. (#71)
This release contains contributions from (in alphabetical order):
Antal Száva.
- Updated the CI. (#63)
- Adapted the documentation to the PennyLane theme. (#64)
This release contains contributions from (in alphabetical order):
Thomas Bromley, Theodor Isacsson, Josh Izaac, Maria Schuld, Antal Száva.
- Version bump
-
Forest devices now support custom wire labels. #55 #57 #58 #59
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('forest.qvm' device='4q-qvm', wires=['q1', 'ancilla', 0, 1]) @qml.qnode(dev) def circuit(): qml.Hadamard(wires='q1') qml.CNOT(wires=[1, 'ancilla']) return qml.expval(qml.PauliZ(0))
-
Fixes a bug where basis states were not correctly initialized #56
-
Tensor measurements have been fixed due to a change in PL v0.11 #52
-
The QCS no longer supports lattice-based devices such as Aspen-4-5Q-E. As a result, the
forest.qvm
andforest.qpu
devices no longer accept lattice-based devices, and must be loaded with the full device name (e.g. Aspen-4). #51
Theodor Isacsson, Josh Izaac, Maria Schuld, Antal Száva
-
Adding support for multi-qubit observable estimation.
-
Added a new method
analytic_probability()
to theWavefunction
simulator devices, so that analytic and non-analytic probabilities are correctly returned. -
Reduced the default number of shots for the
QPUDevice
to 1000 from 1024. -
The test suite now programmatically queries
pyquil.list_quantum_computers()
for valid QPU lattices for integration tests, and additional gradient integration tests have been added. -
The minimum required version of PennyLane has been increased to v0.9 due to plugin API changes in PennyLane.
-
Added parametric compilation for
forest.qvm
andforest.qpu
, leading to significant speed increases when performing optimization -
The plugin has been ported to use the new
QubitDevice
API for plugins, resulting in a cleaner interface with built-in support for multi-qubit observables. -
Bug fixes to allow the plugin to work with pyQuil >= 2.16
-
Operator estimation on
forest.qpu
now works with both 1 and 2 qubit gates -
Adds a converter so that pyQuil and Quil programs can be loaded as differentiable PennyLane templates
-
Added ability to return multi-qubit expectation values to all devices
-
Added variance support
-
Replaced dense matrix expansion with a tensordot implementation
-
Added support for
samples
-
Readout Error Mitigation using Operator Estimation
-
Updates the plugin to work with PyQuil 2.13 and PennyLane 0.6
-
Updated to support PyQuil v2.9.0 and PennyLane v0.4.0. Note that PennyLane-Forest now requires PennyLane>=0.4
-
The observable
qml.Hermitian(A, wires)
can now be measured on an arbitrary number of wires. That is, you can now pass a matrix A of size[2**N, 2**N]
which acts onN
qubits (i.e.,len(wires)==N
). -
Adds support for the
qml.var()
measurement return type provided by PennyLane v0.4.
-
Using any of the available lattices at any given time, instead of a specifically named one
-
updated minimum pyquil version requirement to 2.7
-
added support for pyQVM
-
removed 2.4 changes
-
Updating compiler urls
-
Replacing old lattice with new
-
pyqvm working without the compiler
-
Updating compiler urls
-
Replacing old lattice with new
-
added build and documentation badges
-
Remove the LocalQVMCompiler from the tests