qdk_chemistry.algorithms.circuit_mapper package

QDK/Chemistry circuit mapper module.

class qdk_chemistry.algorithms.circuit_mapper.CircuitMapperFactory

Bases: AlgorithmFactory

Factory class for creating CircuitMapper instances.

algorithm_type_name()

Return circuit_mapper as the algorithm type name.

Return type:

str

default_algorithm_name()

Return pauli_sequence as the default algorithm name.

Return type:

str

class qdk_chemistry.algorithms.circuit_mapper.PauliSequenceMapper

Bases: CircuitMapper

Circuit mapper using Pauli product formula term sequences.

Given a unitary expressed as a Pauli product formula \(U \approx \left[ \prod_j e^{-i\theta_j P_j} \right]^{r}\), this mapper constructs a circuit for \(U\) 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 \(R_z\) rotation implements

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

  4. The basis rotations and entangling operations are uncomputed.

Notes

  • Requires a PauliProductFormulaContainer for the unitary representation.

__init__()

Initialize the PauliSequenceMapper.

name()

Return the algorithm name.

Return type:

str

type_name()

Return circuit_mapper as the algorithm type name.

Return type:

str

class qdk_chemistry.algorithms.circuit_mapper.PauliSequenceMapperSettings

Bases: Settings

Settings for PauliSequenceMapper.

__init__()

Initialize PauliSequenceMapperSettings with default values.

Submodules