qdk_chemistry.algorithms.time_evolution.controlled_circuit_mapper.pauli_sequence_mapper module

QDK/Chemistry sequence structure controlled evolution circuit mapper.

class qdk_chemistry.algorithms.time_evolution.controlled_circuit_mapper.pauli_sequence_mapper.PauliSequenceMapper(power=1)[source]

Bases: ControlledEvolutionCircuitMapper

Controlled evolution circuit mapper using Pauli product formula term sequences.

Given a time-evolution operator expressed as a Pauli product formula \(U(t) \approx \left[ U_{\mathrm{step}}(t / r) \right]^{r}\), this mapper constructs a controlled version of \(U(t)\) using the following pattern:

  1. Each Pauli operator \(P_j\) is basis-rotated into the \(Z\) basis.

  2. Qubits involved in \(P_j\) are entangled into a sequence using CNOT gates.

  3. A controlled \(R_z\) rotation implements

    \(e^{-i\,\theta_j\,P_j} \;\rightarrow\; \text{CRZ}(2 \theta_j)\).

  4. The basis rotations and entangling operations are uncomputed.

The process repeats for all terms in \(U_{\mathrm{step}}\), for \(r\) step repetitions, and for the specified power.

Notes

  • Currently supports only single-control-qubit scenarios.

  • Requires a PauliProductFormulaContainer for the time evolution unitary.

Parameters:

power (int)

__init__(power=1)[source]

Initialize the PauliSequenceMapper.

Parameters:

power (int) – The power of the controlled unitary to be constructed. It controls how many times the controlled evolution operator \(U\) is repeated.

name()[source]

Return the algorithm name.

Return type:

str

type_name()[source]

Return controlled_evolution_circuit_mapper as the algorithm type name.

Return type:

str

class qdk_chemistry.algorithms.time_evolution.controlled_circuit_mapper.pauli_sequence_mapper.PauliSequenceMapperSettings[source]

Bases: Settings

Settings for PauliSequenceMapper.

__init__()[source]

Initialize PauliSequenceMapperSettings with default values.

power

The power of the controlled unitary to be constructed. It controls how many times the controlled evolution operator \(U\) is repeated.