Overview¶
| Function | Description |
|---|---|
hamiltonian_to_sparse_pauli_op | Convert qamomile.observable.Hamiltonian to Qiskit SparsePauliOp. |
| Class | Description |
|---|---|
QiskitExecutor | Qiskit quantum executor using AerSimulator or other backends. |
QiskitTranspiler | Qiskit backend transpiler. |
Functions¶
hamiltonian_to_sparse_pauli_op [source]¶
def hamiltonian_to_sparse_pauli_op(hamiltonian: qm_o.Hamiltonian) -> 'SparsePauliOp'Convert qamomile.observable.Hamiltonian to Qiskit SparsePauliOp.
Parameters:
| Name | Type | Description |
|---|---|---|
hamiltonian | qm_o.Hamiltonian | The qamomile.observable.Hamiltonian to convert |
Returns:
'SparsePauliOp' — Qiskit SparsePauliOp representation
Example:
import qamomile.observable as qm_o
from qamomile.qiskit.observable import hamiltonian_to_sparse_pauli_op
# Build Hamiltonian
H = qm_o.Z(0) * qm_o.Z(1) + 0.5 * (qm_o.X(0) + qm_o.X(1))
# Convert to Qiskit
sparse_pauli_op = hamiltonian_to_sparse_pauli_op(H)Classes¶
QiskitExecutor [source]¶
class QiskitExecutor(QuantumExecutor['QuantumCircuit'])Qiskit quantum executor using AerSimulator or other backends.
Example:
executor = QiskitExecutor() # Uses AerSimulator by default
counts = executor.execute(circuit, shots=1000)
# counts: {"00": 512, "11": 512}
# With expectation value estimation
from qamomile.qiskit.observable import QiskitExpectationEstimator
executor = QiskitExecutor(estimator=QiskitExpectationEstimator())
exp_val = executor.estimate(circuit, observable)Constructor¶
def __init__(self, backend = None, estimator = None)Initialize executor with backend and optional estimator.
Parameters:
| Name | Type | Description |
|---|---|---|
backend | `` | Qiskit backend (defaults to AerSimulator if available) |
estimator | `` | Optional QiskitExpectationEstimator for expectation values |
Attributes¶
backend
Methods¶
bind_parameters¶
def bind_parameters(
self,
circuit: 'QuantumCircuit',
bindings: dict[str, Any],
parameter_metadata: ParameterMetadata,
) -> 'QuantumCircuit'Bind parameter values to the Qiskit circuit.
Parameters:
| Name | Type | Description |
|---|---|---|
circuit | 'QuantumCircuit' | The parameterized circuit |
bindings | dict[str, Any] | Dict mapping parameter names (indexed format) to values |
parameter_metadata | ParameterMetadata | Metadata about circuit parameters |
Returns:
'QuantumCircuit' — New circuit with parameters bound
estimate¶
def estimate(
self,
circuit: 'QuantumCircuit',
hamiltonian: 'qm_o.Hamiltonian',
params: Sequence[float] | None = None,
) -> floatEstimate the expectation value of a Hamiltonian.
Parameters:
| Name | Type | Description |
|---|---|---|
circuit | 'QuantumCircuit' | Qiskit QuantumCircuit (state preparation ansatz) |
hamiltonian | 'qm_o.Hamiltonian' | The qamomile.observable.Hamiltonian to measure |
params | Sequence[float] | None | Optional parameter values for parametric circuits |
Returns:
float — The estimated expectation value
Raises:
RuntimeError— If no estimator is configured
execute¶
def execute(self, circuit: 'QuantumCircuit', shots: int) -> dict[str, int]Execute circuit and return bitstring counts.
Parameters:
| Name | Type | Description |
|---|---|---|
circuit | 'QuantumCircuit' | The quantum circuit to execute |
shots | int | Number of measurement shots |
Returns:
dict[str, int] — Dictionary mapping bitstrings to counts (e.g., {“00”: 512, “11”: 512})
QiskitTranspiler [source]¶
class QiskitTranspiler(Transpiler['QuantumCircuit'])Qiskit backend transpiler.
Converts Qamomile QKernels into Qiskit QuantumCircuits.
Parameters:
| Name | Type | Description |
|---|---|---|
use_native_composite | bool | If True (default), use native Qiskit library implementations for QFT/IQFT. If False, use manual decomposition for all composite gates. |
Example:
from qamomile.qiskit import QiskitTranspiler
import qamomile as qm
@qm.qkernel
def bell_state(q0: qm.Qubit, q1: qm.Qubit) -> tuple[qm.Bit, qm.Bit]:
q0 = qm.h(q0)
q0, q1 = qm.cx(q0, q1)
return qm.measure(q0), qm.measure(q1)
transpiler = QiskitTranspiler()
circuit = transpiler.to_circuit(bell_state)
print(circuit.draw())Constructor¶
def __init__(self, use_native_composite: bool = True)Initialize the Qiskit transpiler.
Parameters:
| Name | Type | Description |
|---|---|---|
use_native_composite | bool | If True, use native Qiskit implementations for QFT/IQFT. If False, use manual decomposition. |
Methods¶
executor¶
def executor(self, backend = None) -> QiskitExecutorCreate a Qiskit executor.
Parameters:
| Name | Type | Description |
|---|---|---|
backend | `` | Qiskit backend (defaults to AerSimulator) |
Returns:
QiskitExecutor — QiskitExecutor configured with the backend