qp.labs.estimator_beta.paulirot_controlled_resource_decomp

paulirot_controlled_resource_decomp(num_ctrl_wires, num_zero_ctrl, target_resource_params)[source]

Returns a list representing the resources for a controlled version of the PauliRot operator.

Parameters:
  • num_ctrl_wires (int) – the number of qubits the operation is controlled on

  • num_zero_ctrl (int) – the number of control qubits, that are controlled when in the \(|0\rangle\) state

  • target_resource_params (dict) – A dictionary containing the resource parameters of the target operator

Resources:

The resources are computed based on Section VIII (Figures 3 and 4) of The Bravyi-Kitaev transformation for quantum computation of electronic structure, in combination with the following identities:

When the pauli_string is a single Pauli operator (X, Y, Z, Identity) the cost is the associated controlled single qubit rotation gate: (CRX, CRY, CRZ, controlled- GlobalPhase).

The resources are derived from the following identity. If an operation \(\hat{A}\) can be expressed as \(\hat{A} \ = \ \hat{U} \cdot \hat{B} \cdot \hat{U}^{\dagger}\) then the controlled operation \(C\hat{A}\) can be expressed as:

\[C\hat{A} \ = \ \hat{U} \cdot C\hat{B} \cdot \hat{U}^{\dagger}\]

Specifically, the resources are one multi-controlled RZ-gate and a cascade of \(2 \times (n - 1)\) CNOT gates where \(n\) is the number of qubits the gate acts on. Additionally, for each X gate in the Pauli word we conjugate by a pair of Hadamard gates, and for each Y gate in the Pauli word we conjugate by a pair of Hadamard and a pair of S gates.

if the pauli_string is XX, YY or ZZ the cost is a multi-controlled version of the associated rotation gate (RX, RY, RZ respectively) and 2 CNOT gates.

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]