1414 that produces a set of gate names to be used as the target gate set in decompositions.
1515 [ (#8522 )] ( https://github.com/PennyLaneAI/pennylane/pull/8522 )
1616
17+ * The :class:` ~pennylane.decomposition.DecompositionGraph ` now tracks the minimum number of
18+ dynamic wire allocations required to solve the circuit, and provides a ` minimize_work_wires `
19+ option that enables the graph to select the best decomposition rules while minimizing the
20+ number of additional allocations of work wires.
21+ [ (#8729 )] ( https://github.com/PennyLaneAI/pennylane/pull/8729 )
22+
1723<h4 >Pauli product measurements</h4 >
1824
1925* Added a :func:` ~pennylane.ops.pauli_measure ` that takes a Pauli product measurement.
2430
2531<h3 >Improvements 🛠</h3 >
2632
33+ * Added a new decomposition, ` _decompose_2_cnots ` , for the two-qubit decomposition for ` QubitUnitary ` .
34+ It supports the analytical decomposition a two-qubit unitary known to require exactly 2 CNOTs.
35+ [ (#8666 )] ( https://github.com/PennyLaneAI/pennylane/issues/8666 )
36+
37+ * Arithmetic dunder methods (` __add__ ` , ` __mul__ ` , ` __rmul__ ` ) have been added to
38+ :class:` ~.transforms.core.TransformDispatcher ` , :class:` ~.transforms.core.TransformContainer ` ,
39+ and :class:` ~.transforms.core.TransformProgram ` to enable intuitive composition of transform
40+ programs using ` + ` and ` * ` operators.
41+ [ (#8703 )] ( https://github.com/PennyLaneAI/pennylane/pull/8703 )
42+
43+ * Quantum compilation passes in MLIR and XDSL can now be applied using the core PennyLane transform
44+ infrastructure, instead of using Catalyst-specific tools. This is made possible by a new argument in
45+ :func:` ~pennylane.transform ` and ` ~.TransformDispatcher ` called `` pass_name `` , which accepts a string
46+ corresponding to the name of the compilation pass.
47+ The `` pass_name `` argument ensures that the given compilation pass will be used when qjit'ing a
48+ workflow, where the pass is performed in MLIR or xDSL.
49+ [ (#8539 )] ( https://github.com/PennyLaneAI/pennylane/pull/8539 )
50+
2751* ` Operator.decomposition ` will fallback to the first entry in ` qml.list_decomps ` if the ` Operator.compute_decomposition `
2852 method is not overridden.
2953 [ (#8686 )] ( https://github.com/PennyLaneAI/pennylane/pull/8686 )
342366
343367<h3 >Internal changes ⚙️</h3 >
344368
369+ * Bump ` jax ` version to ` 0.7.1 ` for ` capture ` module.
370+ [ (#8715 )] ( https://github.com/PennyLaneAI/pennylane/pull/8715 )
371+
372+ * Bump ` jax ` version to ` 0.7.0 ` for ` capture ` module.
373+ [ (#8701 )] ( https://github.com/PennyLaneAI/pennylane/pull/8701 )
374+
375+ * Improve error handling when using PennyLane's experimental program capture functionality with an incompatible JAX version.
376+ [ (#8723 )] ( https://github.com/PennyLaneAI/pennylane/pull/8723 )
377+
345378* Bump ` autoray ` package version to ` 0.8.2 ` .
346379 [ (#8674 )] ( https://github.com/PennyLaneAI/pennylane/pull/8674 )
347380
406439 :class:` ~.TemporaryAND ` , :class:` ~.QSVT ` , and :class:` ~.SelectPauliRot ` .
407440 [ (#8490 )] ( https://github.com/PennyLaneAI/pennylane/pull/8490 )
408441 [ (#8577 )] ( https://github.com/PennyLaneAI/pennylane/pull/8577 )
442+ [ (#8721 )] ( https://github.com/PennyLaneAI/pennylane/issues/8721 )
409443
410444* The constant to convert the length unit Bohr to Angstrom in `` qml.qchem `` is updated to use scipy
411445 constants.
@@ -452,6 +486,13 @@ A warning message has been added to :doc:`Building a plugin <../development/plug
452486
453487<h3 >Bug fixes 🐛</h3 >
454488
489+ * Update ` interface-unit-tests.yml ` to use its input parameter ` pytest_additional_args ` when running pytest.
490+ [ (#8705 )] ( https://github.com/PennyLaneAI/pennylane/pull/8705 )
491+
492+ * Fixes a bug where in ` resolve_work_wire_type ` we incorrectly returned a value of ` zeroed ` if ` both work_wires `
493+ and ` base_work_wires ` were empty, causing an incorrect work wire type.
494+ [ (#8718 )] ( https://github.com/PennyLaneAI/pennylane/pull/8718 )
495+
455496* The warnings-as-errors CI action was failing due to an incompatibility between ` pytest-xdist ` and ` pytest-benchmark ` .
456497 Disabling the benchmark package allows the tests to be collected an executed.
457498 [ (#8699 )] ( https://github.com/PennyLaneAI/pennylane/pull/8699 )
@@ -493,6 +534,13 @@ A warning message has been added to :doc:`Building a plugin <../development/plug
493534* Fixes a bug where :func:` ~.change_op_basis ` cannot be captured when the ` uncompute_op ` is left out.
494535 [ (#8695 )] ( https://github.com/PennyLaneAI/pennylane/pull/8695 )
495536
537+ * Fixes a bug where decomposition rules are sometimes incorrectly disregarded by the ` DecompositionGraph ` when a higher level
538+ decomposition rule uses dynamically allocated work wires.
539+ [ (#8725 )] ( https://github.com/PennyLaneAI/pennylane/pull/8725 )
540+
541+ * Fixes a bug where :class:` ~.ops.ChangeOpBasis ` is not correctly reconstructed using ` qml.pytrees.unflatten(*qml.pytrees.flatten(op)) `
542+ [ (#8721 )] ( https://github.com/PennyLaneAI/pennylane/issues/8721 )
543+
496544<h3 >Contributors ✍️</h3 >
497545
498546This release contains contributions from (in alphabetical order):
@@ -513,6 +561,7 @@ Mudit Pandey,
513561Shuli Shu,
514562Jay Soni,
515563nate stemen,
564+ Theodoros Trochatos,
516565David Wierichs,
517566Hongsheng Zheng,
518567Zinan Zhou
0 commit comments