uniqc.circuit_adapter module#
Circuit adapter layer for converting UnifiedQuantum circuits to provider-native formats.
This module provides adapter classes for converting UnifiedQuantum Circuit objects to native circuit formats used by different quantum computing platforms: - OriginQ (pyqpanda) - Quafu (pyquafu) - IBM (qiskit)
Usage:
from uniqc.circuit_adapter import OriginQCircuitAdapter, QuafuCircuitAdapter, IBMCircuitAdapter
from uniqc.circuit_builder import Circuit
# Create a UnifiedQuantum circuit
circuit = Circuit()
circuit.h(0)
circuit.cnot(0, 1)
circuit.measure(0, 1)
# Convert to provider-native circuits
originq_adapter = OriginQCircuitAdapter()
pyqpanda_circuit = originq_adapter.adapt(circuit)
quafu_adapter = QuafuCircuitAdapter()
quafu_circuit = quafu_adapter.adapt(circuit)
ibm_adapter = IBMCircuitAdapter()
qiskit_circuit = ibm_adapter.adapt(circuit)
- class uniqc.circuit_adapter.CircuitAdapter[source]#
-
Abstract base class for circuit adapters.
Provides a unified interface for converting UnifiedQuantum Circuit objects to provider-native circuit formats.
- abstractmethod adapt(circuit)[source]#
Convert a UnifiedQuantum Circuit to the provider’s native circuit format.
- Parameters:
circuit (Circuit) – UnifiedQuantum Circuit object.
- Returns:
Provider-native circuit object.
- Return type:
T
- class uniqc.circuit_adapter.IBMCircuitAdapter[source]#
Bases:
CircuitAdapter[Any]Adapter for converting UnifiedQuantum Circuit to qiskit (IBM) format.
Converts Circuit -> OriginIR -> QASM -> Qiskit QuantumCircuit.
- SUPPORTED_GATES = ['H', 'X', 'Y', 'Z', 'S', 'T', 'SX', 'RX', 'RY', 'RZ', 'U1', 'U2', 'U3', 'CNOT', 'CX', 'CZ', 'SWAP', 'ISWAP', 'TOFFOLI', 'CCX', 'CSWAP', 'Fredkin', 'MEASURE', 'BARRIER', 'I', 'ID']#
- adapt(circuit)[source]#
Convert UnifiedQuantum Circuit to qiskit QuantumCircuit.
The conversion path is: UnifiedQuantum Circuit -> OriginIR -> QASM -> Qiskit QuantumCircuit
- Parameters:
circuit (Circuit) – UnifiedQuantum Circuit object.
- Returns:
qiskit.QuantumCircuit object.
- Return type:
Any
- class uniqc.circuit_adapter.OriginQCircuitAdapter[source]#
Bases:
CircuitAdapter[Any]Adapter for converting UnifiedQuantum Circuit to pyqpanda (OriginQ) format.
Uses pyqpanda3’s intermediate compiler to convert OriginIR to QProg.
- SUPPORTED_GATES = ['H', 'X', 'Y', 'Z', 'S', 'T', 'SX', 'RX', 'RY', 'RZ', 'RPhi', 'RPhi90', 'RPhi180', 'U1', 'U2', 'U3', 'U4', 'CNOT', 'CZ', 'SWAP', 'ISWAP', 'TOFFOLI', 'CSWAP', 'XX', 'YY', 'ZZ', 'XY', 'PHASE2Q', 'UU15', 'I', 'BARRIER', 'MEASURE']#
- class uniqc.circuit_adapter.QuafuCircuitAdapter[source]#
Bases:
CircuitAdapter[Any]Adapter for converting UnifiedQuantum Circuit to pyquafu (Quafu) format.
Translates OriginIR gate by gate to quafu.QuantumCircuit.
- SUPPORTED_GATES = ['H', 'X', 'Y', 'Z', 'RX', 'RY', 'RZ', 'CNOT', 'CZ', 'MEASURE']#