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>