QXel.transpiler.passes.partitioner module¶
- class QXel.transpiler.passes.partitioner.Partitioner(qubit_count, qubit_count_local)¶
Bases:
BasePassSplit a circuit into permutation-compatible local subcircuits.
- __init__(qubit_count, qubit_count_local)¶
Store the global and local qubit counts for partitioning.
- Parameters:
qubit_count (int) – Total logical qubit count of the circuit.
qubit_count_local (int) – Number of qubits that may remain local in one partition before communication is required.
- perm_to_swap_ops(perm_dst, perm_src, qubit_count, qubit_count_local)¶
Build swap layers that transform one qubit permutation into another.
The returned swap lists are split into operations that should be appended to the previous partition and prepended to the next partition.
- Parameters:
perm_dst (list[int]) – Target permutation required by the next partition.
perm_src (list[int]) – Current permutation at the end of the previous partition.
qubit_count (int) – Total logical qubit count.
qubit_count_local (int) – Number of qubits that must stay local.
- Returns:
(pre_swap, post_swap)lists used around the partition boundary.- Return type:
tuple[list[Swap], list[Swap]]
- static is_local(qubit, qubit_count_local)¶
Return whether local.
- optimize(circuit)¶
Partition a circuit into locality-preserving subcircuits.
- Parameters:
circuit (QuantumCircuit) – Circuit to partition.
- Returns:
Partitioned circuits annotated with qubit permutations and partition metadata.
- Return type:
list[QuantumCircuit]