Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

qamomile.qiskit.emitter

Qiskit GateEmitter implementation.

This module provides QiskitGateEmitter, which implements the GateEmitter protocol for Qiskit engines.

Overview

ClassDescription
MeasurementModeHow an engine handles measurement operations.
QiskitGateEmitterGateEmitter implementation for Qiskit.

Classes

MeasurementMode [source]

class MeasurementMode(Enum)

How an engine handles measurement operations.

Attributes


QiskitGateEmitter [source]

class QiskitGateEmitter

GateEmitter implementation for Qiskit.

Emits individual quantum gates to Qiskit QuantumCircuit objects.

Attributes

Methods

append_gate
def append_gate(self, circuit: 'QuantumCircuit', gate: Any, qubits: list[int]) -> None

Append a gate to the circuit.

circuit_to_gate
def circuit_to_gate(self, circuit: 'QuantumCircuit', name: str = 'U') -> 'Gate | None'

Convert circuit to a reusable gate.

create_circuit
def create_circuit(self, num_qubits: int, num_clbits: int) -> 'QuantumCircuit'

Create a new Qiskit QuantumCircuit.

create_parameter
def create_parameter(self, name: str) -> Any

Create a Qiskit Parameter object.

emit_barrier
def emit_barrier(self, circuit: 'QuantumCircuit', qubits: list[int]) -> None
emit_ch
def emit_ch(self, circuit: 'QuantumCircuit', control: int, target: int) -> None
emit_cp
def emit_cp(
    self,
    circuit: 'QuantumCircuit',
    control: int,
    target: int,
    angle: float | Any,
) -> None
emit_crx
def emit_crx(
    self,
    circuit: 'QuantumCircuit',
    control: int,
    target: int,
    angle: float | Any,
) -> None
emit_cry
def emit_cry(
    self,
    circuit: 'QuantumCircuit',
    control: int,
    target: int,
    angle: float | Any,
) -> None
emit_crz
def emit_crz(
    self,
    circuit: 'QuantumCircuit',
    control: int,
    target: int,
    angle: float | Any,
) -> None
emit_cx
def emit_cx(self, circuit: 'QuantumCircuit', control: int, target: int) -> None
emit_cy
def emit_cy(self, circuit: 'QuantumCircuit', control: int, target: int) -> None
emit_cz
def emit_cz(self, circuit: 'QuantumCircuit', control: int, target: int) -> None
emit_else_start
def emit_else_start(self, circuit: 'QuantumCircuit', context: Any) -> None

Handled by context manager.

emit_for_loop_end
def emit_for_loop_end(self, circuit: 'QuantumCircuit', context: Any) -> None

End is handled by context manager exit.

emit_for_loop_start
def emit_for_loop_start(self, circuit: 'QuantumCircuit', indexset: range) -> Any

Start a native for loop using Qiskit’s for_loop context manager.

Note: The context manager must be used differently than a simple return. This method returns the indexset for use with _QiskitForLoopContext.

emit_global_phase
def emit_global_phase(self, circuit: 'QuantumCircuit', angle: float | Any) -> None

Accumulate an exact phase in Qiskit’s native circuit metadata.

Parameters:

NameTypeDescription
circuitQuantumCircuitCircuit whose phase is updated.
anglefloat | AnyConcrete or Qiskit-native symbolic angle.
emit_h
def emit_h(self, circuit: 'QuantumCircuit', qubit: int) -> None
emit_if_end
def emit_if_end(self, circuit: 'QuantumCircuit', context: Any) -> None

Handled by context manager.

emit_if_start
def emit_if_start(self, circuit: 'QuantumCircuit', clbit: int, value: int = 1) -> Any

Start a native if using Qiskit’s if_test context manager.

emit_measure
def emit_measure(self, circuit: 'QuantumCircuit', qubit: int, clbit: int) -> None
emit_p
def emit_p(self, circuit: 'QuantumCircuit', qubit: int, angle: float | Any) -> None
emit_reset
def emit_reset(self, circuit: 'QuantumCircuit', qubit: int) -> None

Emit reset to the |0> state.

emit_rx
def emit_rx(self, circuit: 'QuantumCircuit', qubit: int, angle: float | Any) -> None
emit_ry
def emit_ry(self, circuit: 'QuantumCircuit', qubit: int, angle: float | Any) -> None
emit_rz
def emit_rz(self, circuit: 'QuantumCircuit', qubit: int, angle: float | Any) -> None
emit_rzz
def emit_rzz(
    self,
    circuit: 'QuantumCircuit',
    qubit1: int,
    qubit2: int,
    angle: float | Any,
) -> None
emit_s
def emit_s(self, circuit: 'QuantumCircuit', qubit: int) -> None
emit_sdg
def emit_sdg(self, circuit: 'QuantumCircuit', qubit: int) -> None
emit_swap
def emit_swap(self, circuit: 'QuantumCircuit', qubit1: int, qubit2: int) -> None
emit_t
def emit_t(self, circuit: 'QuantumCircuit', qubit: int) -> None
emit_tdg
def emit_tdg(self, circuit: 'QuantumCircuit', qubit: int) -> None
emit_toffoli
def emit_toffoli(
    self,
    circuit: 'QuantumCircuit',
    control1: int,
    control2: int,
    target: int,
) -> None
emit_while_end
def emit_while_end(self, circuit: 'QuantumCircuit', context: Any) -> None

Handled by context manager.

emit_while_start
def emit_while_start(self, circuit: 'QuantumCircuit', clbit: int, value: int = 1) -> Any

Start a native while loop.

emit_x
def emit_x(self, circuit: 'QuantumCircuit', qubit: int) -> None
emit_y
def emit_y(self, circuit: 'QuantumCircuit', qubit: int) -> None
emit_z
def emit_z(self, circuit: 'QuantumCircuit', qubit: int) -> None
gate_controlled
def gate_controlled(self, gate: Any, num_controls: int) -> Any

Create controlled version of a gate.

gate_inverse
def gate_inverse(self, gate: Any) -> Any

Create inverse version of a reusable Qiskit gate.

Parameters:

NameTypeDescription
gateAnyQiskit gate to invert.

Returns:

Any — Inverse Qiskit gate, or None when inversion fails.

gate_power
def gate_power(self, gate: Any, power: int) -> Any

Create gate raised to a power.

supports_for_loop
def supports_for_loop(self) -> bool

Qiskit supports native for loops.

supports_gate_inverse
def supports_gate_inverse(self) -> bool

Return whether Qiskit reusable gates can be inverted natively.

Returns:

bool — Always True for Qiskit’s Gate.inverse path.

supports_if_else
def supports_if_else(self) -> bool

Qiskit supports native if/else.

supports_reusable_gates
def supports_reusable_gates(self) -> bool

Return whether Qiskit can convert circuits to reusable gates.

Returns:

bool — Always True for Qiskit’s QuantumCircuit.to_gate path.

supports_while_loop
def supports_while_loop(self) -> bool

Qiskit supports native while loops.