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>