qml.decomposition.list_decomps¶
- list_decomps(op_type)[source]¶
Lists all stored decomposition rules for an operator class.
Note
This function is only relevant when the new experimental graph-based decomposition system (introduced in v0.41) is enabled via
enable_graph()
. This new way of doing decompositions is generally more resource efficient and accommodates multiple alternative decomposition rules for an operator.- Parameters:
op_type (type or str) – the operator class to retrieve decomposition rules for. For symbolic operators, use strings such as
"Adjoint(RY)"
,"Pow(H)"
,"C(RX)"
, etc.- Returns:
a list of decomposition rules registered for the given operator.
- Return type:
list[DecompositionRule]
Example
>>> import pennylane as qml >>> qml.list_decomps(qml.CRX) [<pennylane.decomposition.decomposition_rule.DecompositionRule at 0x136da9de0>, <pennylane.decomposition.decomposition_rule.DecompositionRule at 0x136da9db0>, <pennylane.decomposition.decomposition_rule.DecompositionRule at 0x136da9f00>]
Each decomposition rule can be inspected:
>>> print(qml.list_decomps(qml.CRX)[0]) @register_resources(_crx_to_rx_cz_resources) def _crx_to_rx_cz(phi, wires, **__): qml.RX(phi / 2, wires=wires[1]), qml.CZ(wires=wires), qml.RX(-phi / 2, wires=wires[1]), qml.CZ(wires=wires), >>> print(qml.draw(qml.list_decomps(qml.CRX)[0])(0.5, wires=[0, 1])) 0: ───────────╭●────────────╭●─┤ 1: ──RX(0.25)─╰Z──RX(-0.25)─╰Z─┤
code/api/pennylane.decomposition.list_decomps
Download Python script
Download Notebook
View on GitHub