Cluster Scheduler¶
-
class
ClusterScheduler¶ Public Functions
-
std::vector<int>
ScheduleCluster()¶ Find the largest subset of gates than can be fused into one cluster. Use backtracking on qubits IDs. Print logs.
- Return
Indices of gates (from list gate) from one cluster
-
ClusterScheduler(const std::vector<std::vector<id_num_t>> &gate, const std::vector<std::vector<id_num_t>> &gate_ctrl, std::vector<bool> gate_diag, const std::vector<id_num_t> &locals, const std::vector<id_num_t> &globals, int cluster_size)¶ 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 (non-diagonal gate) or true (diagonal gate)locals: IDs of local qubitsglobals: IDs of global qubitscluster_size: Maximum number of qubits in fused multi-qubit gate
-
~ClusterScheduler()¶ Destructor.
-
std::vector<int>