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 acts

  • gate_ctrl: For each gate a list of control qubits on which it acts

  • gate_diag: For each gate false (if non-diagonal gate) or true (if diagonal gate)

  • num_splits: Number of branch splits

  • num_locals: Number of local qubits

  • fuse: If True then of single-qubit gates will be fused

~SwapScheduler()

Destructor.