:orphan:
-
A
DeviceCapabilities
data class is defined to contain all capabilities of the device's execution interface (i.e. its implementation ofDevice.execute
). A TOML file can be used to define the capabilities of a device, and it can be loaded into aDeviceCapabilities
object. (#6407)>>> from pennylane.devices.capabilities import load_toml_file, parse_toml_document, DeviceCapabilities >>> document = load_toml_file("my_device.toml") >>> capabilities = parse_toml_document(document) >>> isinstance(capabilities, DeviceCapabilities) True
-
Added
qml.devices.qubit_mixed
module for mixed-state qubit device support (#6379). This module introduces anapply_operation
helper function that features:-
Two density matrix contraction methods using
einsum
andtensordot
-
Optimized handling of special cases including: Diagonal operators, Identity operators, CX (controlled-X), Multi-controlled X gates, Grover operators
-
-
Added submodule 'initialize_state' featuring a
create_initial_state
function for initializing a density matrix fromqml.StatePrep
operations orqml.QubitDensityMatrix
operations. (#6503)
-
Added support for the
wire_options
dictionary to customize wire line formatting inqml.draw_mpl
circuit visualizations, allowing global and per-wire customization with options likecolor
,linestyle
, andlinewidth
. (#6486) -
Shortened the string representation for the
qml.S
,qml.T
, andqml.SX
operators. (#6542)
-
jax.vmap
can be captured withqml.capture.make_plxpr
and is compatible with quantum circuits. (#6349) -
qml.capture.PlxprInterpreter
base class has been added for easy transformation and execution of pennylane variant jaxpr. (#6141)
-
qml.BasisRotation
template is now JIT compatible. (#6019) -
The Jaxpr primitives for
for_loop
,while_loop
andcond
now store slices instead of numbers of args. (#6521) -
Expand
ExecutionConfig.gradient_method
to storeTransformDispatcher
type. (#6455)
-
Top level access to
Device
,QubitDevice
, andQutritDevice
have been removed. Instead, they are available asqml.devices.LegacyDevice
,qml.devices.QubitDevice
, andqml.devices.QutritDevice
respectively. (#6537) -
The
'ancilla'
argument forqml.iterative_qpe
has been removed. Instead, use the'aux_wire'
argument. (#6532) -
The
qml.BasisStatePreparation
template has been removed. Instead, useqml.BasisState
. (#6528) -
The
qml.workflow.set_shots
helper function has been removed. We no longer interact with the legacy device interface in our code. Instead, shots should be specified on the tape, and the device should use these shots. (#6534) -
QNode.gradient_fn
has been removed. Please useQNode.diff_method
instead.QNode.get_gradient_fn
can also be used to process the diff method. (#6535) -
qml.broadcast
has been removed. Users should usefor
loops instead. (#6527) -
The
max_expansion
argument forqml.transforms.clifford_t_decomposition
has been removed. (#6531) -
The
expand_depth
argument forqml.compile
has been removed. (#6531) -
The
qml.shadows.shadow_expval
transform has been removed. Instead, please use theqml.shadow_expval
measurement process. (#6530) (#6561)
-
The
QNode.get_best_method
andQNode.best_method_str
methods have been deprecated. Instead, use theqml.workflow.get_best_diff_method
function. (#6418) -
The
qml.execute
gradient_fn
keyword argument has been renameddiff_method
, to better align with the termionology used by theQNode
.gradient_fn
will be removed in v0.41. (#6549)
- Add a warning message to Gradients and training documentation about ComplexWarnings (#6543)
-
qml.math.get_deep_interface
now works properly for autograd arrays. (#6557) -
Fixed
Identity.__repr__
to return correct wires list. (#6506)
This release contains contributions from (in alphabetical order):
Shiwen An, Astral Cai, Yushao Chen, Pietropaolo Frisoni, Austin Huang, Christina Lee, Andrija Paurevic, Justin Pickering