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.emitters

Qiskit-specific CompositeGate emitters.

This package contains emitters for native Qiskit implementations of composite gates like QFT and IQFT.

Note: QPE (PhaseEstimation) is NOT included here because it’s deprecated in Qiskit 2.1 and will be removed in 3.0. QPE uses manual decomposition.

Overview

ClassDescription
QiskitQFTEmitterEmitter for QFT and IQFT using Qiskit’s native library.

Classes

QiskitQFTEmitter [source]

class QiskitQFTEmitter

Emitter for QFT and IQFT using Qiskit’s native library.

Uses qiskit.circuit.library.QFTGate which is the recommended API since Qiskit 2.1. This provides optimized implementations that benefit from Qiskit’s circuit optimization passes.

Supports:

Methods

can_emit
def can_emit(self, gate_type: CompositeGateType) -> bool

Check if this emitter can handle the given gate type.

Parameters:

NameTypeDescription
gate_typeCompositeGateTypeThe CompositeGateType to check

Returns:

bool — True for QFT and IQFT, False otherwise

emit
def emit(
    self,
    circuit: 'QuantumCircuit',
    op: CompositeGateOperation,
    qubit_indices: list[int],
    bindings: dict[str, Any],
) -> bool

Emit QFT or IQFT to the circuit using Qiskit’s native library.

Parameters:

NameTypeDescription
circuit'QuantumCircuit'The Qiskit QuantumCircuit to emit to
opCompositeGateOperationThe CompositeGateOperation (QFT or IQFT)
qubit_indiceslist[int]Physical qubit indices for the operation
bindingsdict[str, Any]Parameter bindings (unused for QFT/IQFT)

Returns:

bool — True if emission succeeded, False to fall back to manual

emit_raw_iqft
def emit_raw_iqft(self, circuit: 'QuantumCircuit', qubit_indices: list[int]) -> bool

Emit IQFT directly without CompositeGateOperation.

Used for recursive native emit within other composite gates (e.g., QPE).

Parameters:

NameTypeDescription
circuit'QuantumCircuit'The Qiskit QuantumCircuit to emit to
qubit_indiceslist[int]Physical qubit indices for the IQFT

Returns:

bool — True if emission succeeded, False to fall back to manual

emit_raw_qft
def emit_raw_qft(self, circuit: 'QuantumCircuit', qubit_indices: list[int]) -> bool

Emit QFT directly without CompositeGateOperation.

Used for recursive native emit within other composite gates.

Parameters:

NameTypeDescription
circuit'QuantumCircuit'The Qiskit QuantumCircuit to emit to
qubit_indiceslist[int]Physical qubit indices for the QFT

Returns:

bool — True if emission succeeded, False to fall back to manual


qamomile.qiskit.emitters.qft

Qiskit QFT/IQFT emitter using native qiskit.circuit.library.QFTGate.

Overview

ClassDescription
CompositeGateOperationRepresents a composite gate (QPE, QFT, etc.) as a single operation.
CompositeGateTypeRegistry of known composite gate types.
QiskitQFTEmitterEmitter for QFT and IQFT using Qiskit’s native library.

Classes

CompositeGateOperation [source]

class CompositeGateOperation(Operation)

Represents a composite gate (QPE, QFT, etc.) as a single operation.

CompositeGate allows representing complex multi-gate operations as a single atomic operation in the IR. This enables:

The operands structure depends on has_implementation:

The results structure:

Constructor
def __init__(
    self,
    operands: list[Value] = list(),
    results: list[Value] = list(),
    gate_type: CompositeGateType = CompositeGateType.CUSTOM,
    num_control_qubits: int = 0,
    num_target_qubits: int = 0,
    custom_name: str = '',
    resource_metadata: ResourceMetadata | None = None,
    has_implementation: bool = True,
    composite_gate_instance: Any = None,
    strategy_name: str | None = None,
) -> None
Attributes

CompositeGateType [source]

class CompositeGateType(enum.Enum)

Registry of known composite gate types.

Attributes

QiskitQFTEmitter [source]

class QiskitQFTEmitter

Emitter for QFT and IQFT using Qiskit’s native library.

Uses qiskit.circuit.library.QFTGate which is the recommended API since Qiskit 2.1. This provides optimized implementations that benefit from Qiskit’s circuit optimization passes.

Supports:

Methods
can_emit
def can_emit(self, gate_type: CompositeGateType) -> bool

Check if this emitter can handle the given gate type.

Parameters:

NameTypeDescription
gate_typeCompositeGateTypeThe CompositeGateType to check

Returns:

bool — True for QFT and IQFT, False otherwise

emit
def emit(
    self,
    circuit: 'QuantumCircuit',
    op: CompositeGateOperation,
    qubit_indices: list[int],
    bindings: dict[str, Any],
) -> bool

Emit QFT or IQFT to the circuit using Qiskit’s native library.

Parameters:

NameTypeDescription
circuit'QuantumCircuit'The Qiskit QuantumCircuit to emit to
opCompositeGateOperationThe CompositeGateOperation (QFT or IQFT)
qubit_indiceslist[int]Physical qubit indices for the operation
bindingsdict[str, Any]Parameter bindings (unused for QFT/IQFT)

Returns:

bool — True if emission succeeded, False to fall back to manual

emit_raw_iqft
def emit_raw_iqft(self, circuit: 'QuantumCircuit', qubit_indices: list[int]) -> bool

Emit IQFT directly without CompositeGateOperation.

Used for recursive native emit within other composite gates (e.g., QPE).

Parameters:

NameTypeDescription
circuit'QuantumCircuit'The Qiskit QuantumCircuit to emit to
qubit_indiceslist[int]Physical qubit indices for the IQFT

Returns:

bool — True if emission succeeded, False to fall back to manual

emit_raw_qft
def emit_raw_qft(self, circuit: 'QuantumCircuit', qubit_indices: list[int]) -> bool

Emit QFT directly without CompositeGateOperation.

Used for recursive native emit within other composite gates.

Parameters:

NameTypeDescription
circuit'QuantumCircuit'The Qiskit QuantumCircuit to emit to
qubit_indiceslist[int]Physical qubit indices for the QFT

Returns:

bool — True if emission succeeded, False to fall back to manual