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
orRZ
) depending on therot_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
Attributes
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
Methods
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
orRZ
) depending on therot_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: