Sequential Quantum Gate Decomposer  v1.9.6
Powerful decomposition of general unitarias into one- and two-qubit gates gates
example_partition.py
Go to the documentation of this file.
1 from squander.partitioning.partition import PartitionCircuitQasm
2 from squander.partitioning.tools import get_qubits
3 
4 
6  """
7  Example usage of circuit partitioning and printing partition info
8  """
9  filename = "examples/partitioning/qasm_samples/heisenberg-16-20.qasm"
10 
11  max_partition_size = 4
12  partitioned_circuit, parameters = PartitionCircuitQasm(
13  filename, max_partition_size, "kahn"
14  )
15 
16  print(f"{filename} Partitions ({len(partitioned_circuit.get_Gates())}):")
17  total = 0
18 
19  for i, partition in enumerate(partitioned_circuit.get_Gates()):
20  num_gates = len(partition.get_Gates())
21  qubits = set.union(*(get_qubits(gate) for gate in partition.get_Gates()))
22  total += num_gates
23  print(f"#{i + 1}: {num_gates} {qubits}")
24 
25  print(f"{filename} Params {parameters}")
26 
27  print(f"Total gates: {total}\n")
28 
29 
30 if __name__ == "__main__":
def get_qubits
Definition: tools.py:13
def PartitionCircuitQasm
Definition: partition.py:95