This release contains contributions from (in alphabetical order):
-
Qiskit devices now support custom wire labels. (#99) (#100)
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('qiskit.ibmq', wires=['q1', 'ancilla', 0, 1]) def circuit(): qml.Hadamard(wires='q1') qml.CNOT(wires=[1, 'ancilla'])
- Adds support for Qiskit v0.20. (#101)
- When converting QASM or Qiskit circuit to PennyLane templates, the
CU1
gate is now natively supported and converted to aQubitUnitary
. (#101)
This release contains contributions from (in alphabetical order):
Maria Schuld, Antal Száva
- Now supports Qiskit version 0.19.1. As a result of breaking changes within Qiskit, version 0.18 and below are no longer supported. (#81) (#85) (#86)
-
Ported the
QiskitDevice
class to inherit from theQubitDevice
class defined in PennyLane to use unified qubit operations and ease development. (#83) -
Added a test for returning probabilities when using the
IBMQDevice
. (#82)
-
Added a type conversion of parameters for parametrized gates, and renamed various gates for Qiskit version 0.18.0 support. (#81)
-
Renamed
QiskitDevice.probabilities
toQiskitDevice.probability
to overloadpennylane.Device.probability
. This fixes a bug that raisesNotImplementedError
when a QNode is used to compute probabilities on a IBMQ device. (#80)
This release contains contributions from (in alphabetical order):
Rafael Haenel, Josh Izaac, Maria Schuld, Antal Száva
- Fixed a bug where users with
IBMQ
tokens linked to multiple providers would experience an error. (#74)
This release contains contributions from (in alphabetical order):
Antal Száva
- Fixed a bug where gradient computations always returned 0 when loading a parametrized Qiskit circuit as a PennyLane template. (#71)
This release contains contributions from (in alphabetical order):
Josh Izaac
- Removed v1
IBMQ
credentials, disallowedunitary_simulator
backend to havememory=True
and discontinuing support forQubitStateVector
on theunitary_simulator
backend due to Qiskit's 0.14.0 version. #65
This release contains contributions from (in alphabetical order):
Antal Száva
- Set
analytic=False
as default, since by default warnings are raised for hardware simulators. #64
This release contains contributions from (in alphabetical order):
Antal Száva
-
Added the ability to automatically convert Qiskit
QuantumCircuits
or QASM circuits directly into PennyLane templates. The loaded operations can be used directly inside PennyLane circuits. #55 -
Updated the list of operations such that each operation is now used from PennyLane. Added capability to specify the inverses of operations. #58
-
Added integration tests for converting objects from Qiskit using PennyLane. #57
-
Added warnings for hardware simulators using
analytic==True
when calculating expectations and variances. #59
- Removed
gates.py
including operationsRot
andBasisState
such that these operations are decomposed by PennyLane and no errors arise for theBasisState
initialized with all-zero states. #60
This release contains contributions from (in alphabetical order):
Antal Száva
- All Qiskit devices now support tensor observables using the
return expval(qml.PauliZ(0) @ qml.Hermitian(A, [1, 2]))
syntax introduced in PennyLane v0.6.
This release contains contributions from (in alphabetical order):
Josh Izaac
- Fixed a bug where backend keyword arguments, such as
backend_options
andnoise_model
, were being passed to backends that did not support it. #51
This release contains contributions from (in alphabetical order):
Josh Izaac
This is a significant release, bringing the plugin up to date with the latest PennyLane and Qiskit features.
-
The plugin and the tests have been completely re-written from scratch, to ensure high quality and remove technical debt. #44 #43
-
Samples and variance support have been added to all devices. #46
-
Multi-qubit hermitian observables are now supported, due to support being added in Qiskit version 0.12.
-
Support has been added for IBM Q Experience 2.0. #44
-
Hardware and software devices are now treated identically, with expectations, variance, and samples computed via the probability, not the amplitudes. This has several consequences:
-
It makes the code cleaner and simpler, as there is now one defined way of computing statistics.
-
It is faster in most cases, as this does not require computing large matrix-vector products, or Kronecker products. Instead, eigenvalues of single- and multi-qubit observables are computed using dyanamic programming.
-
It reduces the number of tests required.
-
-
Test suite now includes tests against the IBM Q Experience, in addition to the local simulators.
- Due to the move to IBM Q 2.0 credentials, users remaining with IBM Q v1.0 now must pass an additional URL argument to the service. The plugin has been modified to allow the user to pass this argument if required. #44
This release contains contributions from:
Shahnawaz Ahmed, Josh Izaac
- Added noise model and backend options to the devices as well as new observables.
- Added support for all PennyLane observables for calculating expectation values.
- Added (copied & adjusted from pennylane-forest) test for the expectation values.
- Added the necessary DefaultQubit device for comparison.
- Added logging.
- Changed expval_queue to obs_queue and expectations to observables as per latest pennylane.
- Reversed qregs to match the default qubit device behavior.
- Renamed devices correctly.
- Made wires explicit. If num_wires of operation is 0 then use the whole system as wires!
- Renamed the IBMQ device from
qiskit.ibm
toqiskit.ibmq
.
- Fixed the Unitary gate.
- Fixed the token loading and the shots.
- Fixed and updated to qiskit v0.10.1
- Fixed the valid expectation values of all devices. Along with it tests where fixed.
- Removed the IBMQX_TOKEN import and replace with the correct args.
- Removed the unconditional make coverage.
- Removed default qubit device, this is not tested in this package!
- Removed the
LegacySimulatorsQiskitDevice
as this isn't supported inqiskit
anymore.
- updated to
qiskit
version0.10.*
.
- Added the noise model to
BasicAerQiskitDevice
andAerQiskitDevice
with unit tests (#13) - Added unit tests for the docs (#7/#20)
- Fixed the ''multiple''
backends
keyword bug (#13). - Fixed the
par_domain
of the operations (real valued parameters) inpos.py
(#21) - Fixed documentation problems
- Started to 'fix' ''low'' code quality due to type hints with codacy (#15)
- Small typos and code cleanups
AerQiskitDevice
andLegacySimulatorQiskitDevice
with tests
- Readme & documentation
setup.py
- Code style clean-ups & code cleaning.
- Build setup with travis CI
- Removed unsied
num_runs
kwargs - Fixed the overlapping kwargs with
- Better tests taken from the ProjectQ plugin
- remove the sleep after computation.
- The device
IbmQQiskitDevice
now can load theibmqx_token
from the environment variabeIBMQX_TOKEN
- Renamed
psops
toqisktops
- The setup/build requirements are now read from
requirements.txt
. The file is included now in the distribution file. - Due to changes in qiskit (0.7.0) the Device
AerDevice
must be correctly termed toBasicAerDevice
- Due to the removal of
qiskit.unroll.CircuitBackend
the complete plugin logic needed an overhaul. Now theQuantumCircuit
is used in conjunction with the new convertersdag_to_circuit
andcircuit_to_dag
as well as the usage of the base classInstruction
. We hope that this change will work for most cases.
- The Readme: links and the usage of device instead of provider, to stay in PennyLane-lingo
- Update to qiskit 0.7.0 made changes necessary: import location have changes