qml.estimator.templates.SelectPauliRot

class SelectPauliRot(rot_axis, num_ctrl_wires, precision=None, wires=None)[source]

Bases: ResourceOperator

Resource class for the SelectPauliRot gate.

Parameters:
  • rot_axis (str) – the rotation axis used in the multiplexer

  • num_ctrl_wires (int) – the number of control wires of the multiplexer

  • precision (float | None) – the precision used in the single qubit rotations

  • wires (Sequence[int], None) – the wires the operation acts on

Resources:

The resources are obtained from the construction scheme given in Möttönen and Vartiainen (2005), Fig 7a. Specifically, the resources for an \(n\) qubit unitary are given as \(2^{n}\) instances of the CNOT gate and \(2^{n}\) instances of the single qubit rotation gate (RX, RY or RZ) depending on the rot_axis.

See also

The associated PennyLane operation SelectPauliRot.

Example

The resources for this operation are computed using:

>>> import pennylane.estimator as qre
>>> mltplxr = qre.SelectPauliRot(
...     rot_axis = "Y",
...     num_ctrl_wires = 4,
...     precision = 1e-3,
... )
>>> print(qre.estimate(mltplxr, gate_set=['RY','CNOT']))
--- Resources: ---
Total wires: 5
    algorithmic wires: 5
    allocated wires: 0
    zero state: 0
    any state: 0
Total gates : 32
'RY': 16,
'CNOT': 16

resource_keys

resource_params

Returns a dictionary containing the minimal information needed to compute the resources.

resource_keys = {'num_ctrl_wires', 'precision', 'rot_axis'}
resource_params

Returns a dictionary containing the minimal information needed to compute the resources.

Returns:

A dictionary containing the resource parameters:
  • rot_axis (str): the rotation axis used in the multiplexer

  • num_ctrl_wires (int): the number of control wires of the multiplexer

  • precision (float): the precision used in the single qubit rotations

Return type:

dict

phase_grad_resource_decomp(num_ctrl_wires, ...)

Returns a list representing the resources of the operator.

resource_decomp(num_ctrl_wires, rot_axis, ...)

Returns a list representing the resources of the operator.

resource_rep(num_ctrl_wires, rot_axis[, ...])

Returns a compressed representation containing only the parameters of the Operator that are needed to compute the resources.

classmethod phase_grad_resource_decomp(num_ctrl_wires, rot_axis, precision)[source]

Returns a list representing the resources of the operator. Each object in the list represents a gate and the number of times it occurs in the circuit.

Parameters:
  • rot_axis (str) – the rotation axis used in the multiplexer

  • num_ctrl_wires (int) – the number of control wires of the multiplexer

  • precision (float) – the precision used in the single qubit rotations

Resources:

The resources are obtained from the construction scheme given in O’Brien and Sünderhauf (2025), Fig 4. Specifically, the resources use two SemiAdder.

Note

This method assumes a phase gradient state is prepared on an auxiliary register.

Returns:

A list of GateCount objects, where each object represents a specific quantum gate and the number of times it appears in the decomposition.

Return type:

list[GateCount]

classmethod resource_decomp(num_ctrl_wires, rot_axis, precision)[source]

Returns a list representing the resources of the operator. Each object in the list represents a gate and the number of times it occurs in the circuit.

Parameters:
  • rot_axis (str) – the rotation axis used in the multiplexer

  • num_ctrl_wires (int) – the number of control wires of the multiplexer

  • precision (float) – the precision used in the single qubit rotations

Resources:

The resources are obtained from the construction scheme given in Möttönen and Vartiainen (2005), Fig 7a. Specifically, the resources for an \(n\) qubit unitary are given as \(2^{n}\) instances of the CNOT gate and \(2^{n}\) instances of the single qubit rotation gate (RX, RY or RZ) depending on the rot_axis.

Returns:

A list of GateCount objects, where each object represents a specific quantum gate and the number of times it appears in the decomposition.

Return type:

list[GateCount]

classmethod resource_rep(num_ctrl_wires, rot_axis, precision=None)[source]

Returns a compressed representation containing only the parameters of the Operator that are needed to compute the resources.

Parameters:
  • rot_axis (str) – the rotation axis used in the multiplexer

  • num_ctrl_wires (int) – the number of control wires of the multiplexer

  • precision (float | None) – the precision used in the single qubit rotations

Returns:

the operator in a compressed representation

Return type:

CompressedResourceOp

Contents

Using PennyLane

Release news

Development

API

Internals