qml.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 – the operator class to retrieve decomposition rules for.
- 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─┤