Swap Scheduler¶
-
class
SwapScheduler
¶ Public Functions
-
std::vector<id_num_t>
ScheduleSwap
()¶ Choose which qubits have to be local during next stage. Uses backtracking with limited number of branches _num_splits.
- Return
Qubits IDs that should be local
-
SwapScheduler
(const std::vector<std::vector<id_num_t>> &gate, const std::vector<std::vector<id_num_t>> &gate_ctrl, std::vector<bool> gate_diag, int num_splits, int num_locals, bool fuse)¶ Constructor.
- Parameters
gate
: For each gate (from the analyzed quantum circuit) a list of qubits on which it actsgate_ctrl
: For each gate a list of control qubits on which it actsgate_diag
: For each gate false (if non-diagonal gate) or true (if diagonal gate)num_splits
: Number of branch splitsnum_locals
: Number of local qubitsfuse
: If True then of single-qubit gates will be fused
-
~SwapScheduler
()¶ Destructor.
-
std::vector<id_num_t>