iqm-benchmarks 2.11__py3-none-any.whl → 2.13__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of iqm-benchmarks might be problematic. Click here for more details.

@@ -137,7 +137,11 @@ class CompressiveGST(Benchmark):
137
137
  raw_qc_list = qiskit_interface.get_qiskit_circuits(
138
138
  gate_circuits, self.gate_set, self.num_qubits, unmapped_qubits
139
139
  )
140
-
140
+ if "move" in self.backend.operation_names:
141
+ qcvv_logger.warning(
142
+ f"Transpilation on star-architectures currently allows move gates to transit barriers, "
143
+ f"leading to context-dependent gates which GST can not accurately resolve."
144
+ )
141
145
  for qubits in self.qubit_layouts:
142
146
  coupling_map = set_coupling_map(qubits, self.backend, physical_layout="fixed")
143
147
 
@@ -28,7 +28,7 @@ import networkx
28
28
  from networkx import Graph, all_pairs_shortest_path, is_connected, minimum_spanning_tree
29
29
  import numpy as np
30
30
  import pycurl
31
- from qiskit import QuantumRegister, transpile
31
+ from qiskit import QuantumRegister
32
32
  from qiskit.quantum_info import random_clifford
33
33
  from qiskit.transpiler import CouplingMap
34
34
  from qiskit_aer import Aer
@@ -60,47 +60,6 @@ from iqm.qiskit_iqm import IQMCircuit as QuantumCircuit
60
60
  from iqm.qiskit_iqm.iqm_backend import IQMBackendBase
61
61
 
62
62
 
63
- @timeit
64
- def append_rms(
65
- circuit: QuantumCircuit,
66
- num_rms: int,
67
- backend: IQMBackendBase,
68
- # optimize_sqg: bool = False,
69
- ) -> List[QuantumCircuit]:
70
- """
71
- Appends 1Q Clifford gates sampled uniformly at random to all qubits in the given circuit.
72
- Args:
73
- circuit (QuantumCircuit):
74
- num_rms (int):
75
- backend (Optional[IQMBackendBase]): whether Cliffords are decomposed for the given backend
76
- Returns:
77
- List[QuantumCircuit] of the original circuit with 1Q Clifford gates appended to it
78
- """
79
- rm_circuits: list[QuantumCircuit] = []
80
- for _ in range(num_rms):
81
- rm_circ = circuit.copy()
82
- # It shouldn't matter if measurement bits get scrambled
83
- rm_circ.remove_final_measurements()
84
-
85
- active_qubits = set()
86
- data = rm_circ.data
87
- for instruction in data:
88
- for qubit in instruction[1]:
89
- active_qubits.add(rm_circ.find_bit(qubit)[0])
90
-
91
- for q in active_qubits:
92
- if backend is not None:
93
- rand_clifford = random_clifford(1).to_circuit()
94
- else:
95
- rand_clifford = random_clifford(1).to_instruction()
96
- rm_circ.compose(rand_clifford, qubits=[q], inplace=True)
97
-
98
- rm_circ.measure_active()
99
- rm_circuits.append(transpile(rm_circ, basis_gates=backend.operation_names))
100
-
101
- return rm_circuits
102
-
103
-
104
63
  def fidelity_ghz_randomized_measurements(
105
64
  dataset: xr.Dataset, qubit_layout, ideal_probabilities: List[Dict[str, int]], num_qubits: int, circuits: Circuits
106
65
  ) -> tuple[dict[str, Any], dict[str, Any]]:
@@ -257,7 +216,7 @@ def fidelity_analysis(run: BenchmarkRunResult) -> BenchmarkAnalysisResult:
257
216
  ideal_simulator = Aer.get_backend("statevector_simulator")
258
217
  ideal_probabilities = []
259
218
  idx = BenchmarkObservationIdentifier(qubit_layout).string_identifier
260
- all_circuits = run.circuits["transpiled_circuits"][f"{idx}_native_ghz"].circuits
219
+ all_circuits = run.circuits["untranspiled_circuits"][f"{idx}_rm_circuits"].circuits
261
220
  for qc in all_circuits:
262
221
  qc_copy = qc.copy()
263
222
  qc_copy.remove_final_measurements()
@@ -474,9 +433,8 @@ def get_edges(
474
433
  graph: networkx.Graph
475
434
  The final weighted graph for the given calibration or coupling map
476
435
  """
477
- edges_coupling = list(coupling_map.get_edges())[::2]
478
436
  edges_patch = []
479
- for idx, edge in enumerate(edges_coupling):
437
+ for idx, edge in enumerate(coupling_map):
480
438
  if edge[0] in qubit_layout and edge[1] in qubit_layout:
481
439
  edges_patch.append([edge[0], edge[1]])
482
440
 
@@ -681,11 +639,16 @@ class GHZBenchmark(Benchmark):
681
639
  )
682
640
  final_ghz = ghz_native_transpiled
683
641
  elif routine == "tree":
642
+ # For star architectures, create an effective coupling map that represents all-to-all connectivity
643
+ if "move" in self.backend.operation_names:
644
+ effective_coupling_map = [[x, y] for x in qubit_layout for y in qubit_layout if x != y]
645
+ else:
646
+ effective_coupling_map = self.backend.coupling_map
684
647
  if self.cal_url:
685
648
  edges_cal, fidelities_cal = extract_fidelities(self.cal_url, qubit_layout)
686
- graph = get_edges(self.backend.coupling_map, qubit_layout, edges_cal, fidelities_cal)
649
+ graph = get_edges(effective_coupling_map, qubit_layout, edges_cal, fidelities_cal)
687
650
  else:
688
- graph = get_edges(self.backend.coupling_map, qubit_layout)
651
+ graph = get_edges(effective_coupling_map, qubit_layout)
689
652
  ghz, _ = generate_ghz_spanning_tree(graph, qubit_layout, qubit_count)
690
653
  circuit_group.add_circuit(ghz)
691
654
  ghz_native_transpiled, _ = perform_backend_transpilation(
@@ -764,6 +727,60 @@ class GHZBenchmark(Benchmark):
764
727
  self.circuits["untranspiled_circuits"].circuit_groups.append(circuit_group)
765
728
  return qc_list_transpiled
766
729
 
730
+ @timeit
731
+ def append_rms(
732
+ self,
733
+ num_rms: int,
734
+ qubit_layout: List[int],
735
+ ) -> List[QuantumCircuit]:
736
+ """
737
+ Appends 1Q Clifford gates sampled uniformly at random to all qubits in the given circuit.
738
+ Args:
739
+ num_rms (int):
740
+ How many randomized measurement circuits are generated
741
+ qubit_layout List[int]:
742
+ The subset of system-qubits used in the protocol, indexed from 0
743
+ Returns:
744
+ List[QuantumCircuit] of the original circuit with 1Q Clifford gates appended to it
745
+ """
746
+ idx = BenchmarkObservationIdentifier(qubit_layout).string_identifier
747
+ fixed_coupling_map = set_coupling_map(qubit_layout, self.backend, "fixed")
748
+ circuit = self.circuits["untranspiled_circuits"][f"{qubit_layout}_native_ghz"].circuits[0]
749
+ rm_circuits: list[QuantumCircuit] = []
750
+ for _ in range(num_rms):
751
+ rm_circ = circuit.copy()
752
+ # It shouldn't matter if measurement bits get scrambled
753
+ rm_circ.remove_final_measurements()
754
+ rm_circ.barrier()
755
+
756
+ active_qubits = set()
757
+ data = rm_circ.data
758
+ for instruction in data:
759
+ for qubit in instruction[1]:
760
+ active_qubits.add(rm_circ.find_bit(qubit)[0])
761
+ for q in active_qubits:
762
+ if self.backend is not None:
763
+ rand_clifford = random_clifford(1).to_circuit()
764
+ else:
765
+ rand_clifford = random_clifford(1).to_instruction()
766
+ rm_circ.compose(rand_clifford, qubits=[q], inplace=True)
767
+
768
+ rm_circ.measure_active()
769
+ rm_circuits.append(rm_circ)
770
+
771
+ rm_circuits_transpiled, _ = perform_backend_transpilation(
772
+ rm_circuits,
773
+ self.backend,
774
+ qubit_layout,
775
+ fixed_coupling_map,
776
+ qiskit_optim_level=self.qiskit_optim_level,
777
+ optimize_sqg=self.optimize_sqg,
778
+ )
779
+ untranspiled_rm_group = CircuitGroup(circuits=rm_circuits, name=f"{idx}_rm_circuits")
780
+ self.circuits["untranspiled_circuits"].circuit_groups.append(untranspiled_rm_group)
781
+
782
+ return rm_circuits_transpiled
783
+
767
784
  def generate_readout_circuit(self, qubit_layout: List[int], qubit_count: int) -> CircuitGroup:
768
785
  """
769
786
  A wrapper for the creation of different circuits to estimate the fidelity
@@ -788,9 +805,7 @@ class GHZBenchmark(Benchmark):
788
805
 
789
806
  match self.fidelity_routine:
790
807
  case "randomized_measurements":
791
- all_circuits_list, _ = append_rms(
792
- transpiled_ghz_group.circuits[0], cast(int, self.num_RMs), self.backend
793
- )
808
+ all_circuits_list, _ = self.append_rms(cast(int, self.num_RMs), qubit_layout)
794
809
  transpiled_ghz_group.circuits = all_circuits_list
795
810
  case "coherences":
796
811
  all_circuits_list = self.generate_coherence_meas_circuits(qubit_layout, qubit_count)
@@ -847,7 +862,6 @@ class GHZBenchmark(Benchmark):
847
862
  )
848
863
 
849
864
  # Retrieve all
850
- qcvv_logger.info(f"Retrieving counts and adding counts to dataset...")
851
865
  for qubit_layout in aux_custom_qubits_array:
852
866
  # for qubit_count in self.qubit_counts[idx]:
853
867
  Id = BenchmarkObservationIdentifier(qubit_layout)
@@ -833,14 +833,21 @@ class QScoreBenchmark(Benchmark):
833
833
  qc_list.append([])
834
834
  qcvv_logger.debug(f"This graph instance has no edges.")
835
835
  else:
836
- # execute for a given num_node and a given instance
837
- coupling_map = self.backend.coupling_map.reduce(qubit_set)
838
836
  qcvv_logger.setLevel(logging.WARNING)
837
+ # Account for all-to-all connected backends like Deneb
838
+ if "move" in self.backend.operation_names:
839
+ # If the circuit is defined on a subset of qubit_set, choose the first qubtis in the set
840
+ active_qubit_set = qubit_set[: len(qc.qubits)]
841
+ # All-to-all coupling map on the active qubits
842
+ effective_coupling_map = [[x, y] for x in active_qubit_set for y in active_qubit_set if x != y]
843
+ else:
844
+ active_qubit_set = qubit_set
845
+ effective_coupling_map = self.backend.coupling_map.reduce(active_qubit_set)
839
846
  transpiled_qc, _ = perform_backend_transpilation(
840
847
  [qc],
841
848
  backend=self.backend,
842
- qubits=qubit_set,
843
- coupling_map=coupling_map,
849
+ qubits=active_qubit_set,
850
+ coupling_map=effective_coupling_map,
844
851
  qiskit_optim_level=self.qiskit_optim_level,
845
852
  optimize_sqg=self.optimize_sqg,
846
853
  routing_method=self.routing_method,
@@ -502,8 +502,8 @@ class CLOPSBenchmark(Benchmark):
502
502
  # Update parameters
503
503
  parameters = self.generate_random_parameters()
504
504
 
505
- # NDonis can't use optimize_sqg as is, yet -> complains about MOVE gate not being IQM native!
506
- if optimize_sqg and self.backend.name != "IQMNdonisBackend":
505
+ # Star can't use optimize_sqg as is, yet -> complains about MOVE gate not being IQM native!
506
+ if optimize_sqg and "move" not in self.backend.operation_names:
507
507
  sorted_dict_parametrized[k].append(
508
508
  optimize_single_qubit_gates( # Optimize SQG seems worth it AFTER assignment
509
509
  qc.assign_parameters(
@@ -29,6 +29,7 @@ from iqm.benchmarks.randomized_benchmarking.randomized_benchmarking_common impor
29
29
  )
30
30
  from iqm.benchmarks.utils import (
31
31
  get_iqm_backend,
32
+ perform_backend_transpilation,
32
33
  retrieve_all_counts,
33
34
  retrieve_all_job_metadata,
34
35
  submit_execute,
@@ -326,16 +327,22 @@ def generate_pauli_dressed_mrb_circuits(
326
327
 
327
328
  # Add measurements to transpiled - before!
328
329
  circ.measure_all()
329
- circ_transpiled = transpile(
330
- circ,
330
+ if "move" in retrieved_backend.operation_names:
331
+ # All-to-all coupling map on the active qubits
332
+ effective_coupling_map = [[x, y] for x in qubits for y in qubits if x != y]
333
+ else:
334
+ effective_coupling_map = retrieved_backend.coupling_map
335
+ circ_transpiled, _ = perform_backend_transpilation(
336
+ [circ],
331
337
  backend=retrieved_backend,
332
- initial_layout=qubits,
333
- optimization_level=qiskit_optim_level,
338
+ qubits=qubits,
339
+ coupling_map=effective_coupling_map,
340
+ qiskit_optim_level=qiskit_optim_level,
334
341
  routing_method=routing_method,
335
342
  )
336
343
 
337
344
  pauli_dressed_circuits_untranspiled.append(circ_untranspiled)
338
- pauli_dressed_circuits_transpiled.append(circ_transpiled)
345
+ pauli_dressed_circuits_transpiled.append(circ_transpiled[0])
339
346
 
340
347
  # Store the circuit
341
348
  all_circuits.update(
iqm/benchmarks/utils.py CHANGED
@@ -230,6 +230,9 @@ def perform_backend_transpilation(
230
230
 
231
231
  Returns:
232
232
  List[QuantumCircuit]: A list of transpiled quantum circuits.
233
+
234
+ Raises:
235
+ ValueError: if Star topology and label 0 is in qubit layout.
233
236
  """
234
237
 
235
238
  # Helper function considering whether optimize_sqg is done,
@@ -245,13 +248,18 @@ def perform_backend_transpilation(
245
248
  )
246
249
  if optimize_sqg:
247
250
  transpiled = optimize_single_qubit_gates(transpiled, drop_final_rz=drop_final_rz)
248
- if backend.name == "IQMNdonisBackend":
251
+ if "move" in backend.operation_names:
249
252
  transpiled = transpile_to_IQM(
250
253
  transpiled, backend=backend, optimize_single_qubits=optimize_sqg, remove_final_rzs=drop_final_rz
251
254
  )
252
255
  if aux_qc is not None:
253
- if backend.name == "IQMNdonisBackend":
254
- transpiled = reduce_to_active_qubits(transpiled, backend.name)
256
+ if "move" in backend.operation_names:
257
+ if 0 in qubits:
258
+ raise ValueError(
259
+ "Label 0 is reserved for Resonator - Please specify computational qubit labels (1,2,...)"
260
+ )
261
+ backend_name = "IQMNdonisBackend"
262
+ transpiled = reduce_to_active_qubits(transpiled, backend_name)
255
263
  transpiled = aux_qc.compose(transpiled, qubits=[0] + qubits, clbits=list(range(qc.num_clbits)))
256
264
  else:
257
265
  transpiled = aux_qc.compose(transpiled, qubits=qubits, clbits=list(range(qc.num_clbits)))
@@ -384,9 +392,17 @@ def set_coupling_map(
384
392
  * Default is "fixed".
385
393
  Returns:
386
394
  A coupling map according to the specified physical layout.
395
+
396
+ Raises:
397
+ ValueError: if Star topology and label 0 is in qubit layout.
398
+ ValueError: if the physical layout is not "fixed" or "batching".
387
399
  """
388
400
  if physical_layout == "fixed":
389
- if backend.name == "IQMNdonisBackend":
401
+ if "move" in backend.operation_names:
402
+ if 0 in qubits:
403
+ raise ValueError(
404
+ "Label 0 is reserved for Resonator - Please specify computational qubit labels (1,2,...)"
405
+ )
390
406
  return backend.coupling_map.reduce(mapping=[0] + list(qubits))
391
407
  return backend.coupling_map.reduce(mapping=qubits)
392
408
  if physical_layout == "batching":
@@ -1,8 +1,8 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: iqm-benchmarks
3
- Version: 2.11
3
+ Version: 2.13
4
4
  Summary: A package for implementation of Quantum Characterization, Verification and Validation (QCVV) techniques on IQM's hardware at gate level abstraction
5
- Author-email: IQM Finland Oy <developers@meetiqm.com>, Aniket Rath <aniket.rath@meetiqm.com>, Jami Rönkkö <jami@meetiqm.com>, Pedro Figueroa Romero <pedro.romero@meetiqm.com>, Vicente Pina Canelles <vicente.pina@meetiqm.com>, Raphael Brieger <raphael.brieger@meetiqm.com>, Stefan Seegerer <stefan.seegerer@meetiqm.com>, Miikka Koistinen <miikka@meetiqm.com>
5
+ Author-email: IQM Finland Oy <developers@meetiqm.com>, Aniket Rath <aniket.rath@meetiqm.com>, Jami Rönkkö <jami@meetiqm.com>, Pedro Figueroa Romero <pedro.romero@meetiqm.com>, Vicente Pina Canelles <vicente.pina@meetiqm.com>, Raphael Brieger <raphael.brieger@meetiqm.com>, Stefan Seegerer <stefan.seegerer@meetiqm.com>, Miikka Koistinen <miikka@meetiqm.com>, Adrian Auer <adrian.auer@meetiqm.com>
6
6
  Project-URL: Homepage, https://github.com/iqm-finland/iqm-benchmarks
7
7
  Classifier: Development Status :: 4 - Beta
8
8
  Classifier: Programming Language :: Python :: 3 :: Only
@@ -4,16 +4,16 @@ iqm/benchmarks/benchmark_definition.py,sha256=AZkvANrf0_0glbq_P_uo_YqbBU9IZa2gJl
4
4
  iqm/benchmarks/circuit_containers.py,sha256=anEtZEsodYqOX-34oZRmuKGeEpp_VfgG5045Mz4-4hI,7562
5
5
  iqm/benchmarks/logging_config.py,sha256=U7olP5Kr75AcLJqNODf9VBhJLVqIvA4AYR6J39D5rww,1052
6
6
  iqm/benchmarks/readout_mitigation.py,sha256=7FlbSH-RJTtQuRYLChwkQV_vBv0ZfMQTH519cAbyxQ4,12252
7
- iqm/benchmarks/utils.py,sha256=MrGWVB4X037u0XZY68PtIEG8Xud3T0ZKldv2JpeLYD0,20500
7
+ iqm/benchmarks/utils.py,sha256=q4U3nuIOyLHhft8ixDXtV48KGm0uiV4tdtlWpGM1O1M,21180
8
8
  iqm/benchmarks/compressive_gst/__init__.py,sha256=LneifgYXtcwo2jcXo7GdUEHL6_peipukShhkrdaTRCA,929
9
- iqm/benchmarks/compressive_gst/compressive_gst.py,sha256=bG-NdSbiYTqfTGpBZtHqsjepNwUU04VB0wrqg9KH8OA,22104
9
+ iqm/benchmarks/compressive_gst/compressive_gst.py,sha256=spq6jP0NLbjaJDzESpbfRPs0N_YheFWl2Wa6USHS5sI,22398
10
10
  iqm/benchmarks/compressive_gst/gst_analysis.py,sha256=PxCThBfh2zdQpipI-6gAvLKdmkbYv_KSEpejltVkk7o,35330
11
11
  iqm/benchmarks/entanglement/__init__.py,sha256=9T7prOwqMmFWdb4t6ETAHZXKK5o6FvU2DvVb6WhNi-U,682
12
- iqm/benchmarks/entanglement/ghz.py,sha256=e97DMjH-uAuoO7cqoDS_6k7yDr-DjU9soWL2GyTgp8U,40257
12
+ iqm/benchmarks/entanglement/ghz.py,sha256=oNf4TE7zEh0fgmz6RaJG0luZZNc6h2Dgohf9KLGKryc,41251
13
13
  iqm/benchmarks/optimization/__init__.py,sha256=_ajW_OibYLCtzU5AUv5c2zuuVYn8ZNeZUcUUSIGt51M,747
14
- iqm/benchmarks/optimization/qscore.py,sha256=nkvt6zJTQclknBmUaliKP0f6Vtgvx4BvNtgVwT7W-1k,34606
14
+ iqm/benchmarks/optimization/qscore.py,sha256=8y3MTCGXkVIMqSs9fGRwBENOvISSFBKLBoATc893yVk,35164
15
15
  iqm/benchmarks/quantum_volume/__init__.py,sha256=i-Q4SpDWELBw7frXnxm1j4wJRcxbIyrS5uEK_v06YHo,951
16
- iqm/benchmarks/quantum_volume/clops.py,sha256=j6BPEj1rKBAHigox7nrvaTLyb4iCrHadBl2d1yiETDA,30956
16
+ iqm/benchmarks/quantum_volume/clops.py,sha256=aLxq2sC6cvRmtbmgr7TvluE2edkARH_ZzpTD1LEQEjw,30957
17
17
  iqm/benchmarks/quantum_volume/quantum_volume.py,sha256=njX5lBty9jcWMuJnl7uNqRfwE9akMe5gcX-f1_uYDXk,36791
18
18
  iqm/benchmarks/randomized_benchmarking/__init__.py,sha256=IkKo-7zUChxZZd3my_csQCJfJfZNsV3-JTvdG8uqys4,734
19
19
  iqm/benchmarks/randomized_benchmarking/clifford_1q.pkl,sha256=vvSd0pRWxtzyirohO9yf_58mjevkc2-pbuWIEb-4gaw,46928
@@ -25,7 +25,7 @@ iqm/benchmarks/randomized_benchmarking/clifford_rb/clifford_rb.py,sha256=v8GDsEC
25
25
  iqm/benchmarks/randomized_benchmarking/interleaved_rb/__init__.py,sha256=sq6MgN_hwlpkOj10vyCU4e6eKSX-oLcF2L9na6W2Gt4,681
26
26
  iqm/benchmarks/randomized_benchmarking/interleaved_rb/interleaved_rb.py,sha256=4hBjIXxqy18WKC8hgpCU6T6Vv2cvJu4AImj7QQDqI1k,27956
27
27
  iqm/benchmarks/randomized_benchmarking/mirror_rb/__init__.py,sha256=ZekEqI_89nXzGO1vjM-b5Uwwicy59M4fYHXfA-f0MIg,674
28
- iqm/benchmarks/randomized_benchmarking/mirror_rb/mirror_rb.py,sha256=pOEnEtuJ0rMnTq5nZ1obsQ6LOIVlgFcgNGc8CULWz6E,33987
28
+ iqm/benchmarks/randomized_benchmarking/mirror_rb/mirror_rb.py,sha256=hAAvuQPmIBELeqLu-d33gIEAKTk57M8EB8vMUQkXXfI,34376
29
29
  mGST/LICENSE,sha256=TtHNq55cUcbglb7uhVudeBLUh_qPdUoAEvU0BBwFz-k,1098
30
30
  mGST/README.md,sha256=v_5kw253csHF4-RfE-44KqFmBXIsSMRmOtN0AUPrRxE,5050
31
31
  mGST/additional_fns.py,sha256=_SEJ10FRNM7_CroysT8hCLZTfpm6ZhEIDCY5zPTnhjo,31390
@@ -36,8 +36,8 @@ mGST/optimization.py,sha256=YHwkzIkYvsZOPjclR-BCQWh24jeqjuXp0BB0WX5Lwow,10559
36
36
  mGST/qiskit_interface.py,sha256=L4H-4SdhP_bjSFFvpQoF1E7EyGbIJ_CI_y4a7_YEwmU,10102
37
37
  mGST/reporting/figure_gen.py,sha256=6Xd8vwfy09hLY1YbJY6TRevuMsQSU4MsWqemly3ZO0I,12970
38
38
  mGST/reporting/reporting.py,sha256=We1cccz9BKbITYcSlZHdmBGdjMWAa1xNZe5tKP-yh_E,26004
39
- iqm_benchmarks-2.11.dist-info/LICENSE,sha256=2Ncb40-hqkTil78RPv3-YiJfKaJ8te9USJgliKqIdSY,11558
40
- iqm_benchmarks-2.11.dist-info/METADATA,sha256=vijW3YgqFM3XIVA7uHSImcjeRR5Sr2b9a75a_zetmrQ,10171
41
- iqm_benchmarks-2.11.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
42
- iqm_benchmarks-2.11.dist-info/top_level.txt,sha256=3G23Z-1LGf-IOzTCUl6QwWqiQ3USz25Zt90Ihq192to,9
43
- iqm_benchmarks-2.11.dist-info/RECORD,,
39
+ iqm_benchmarks-2.13.dist-info/LICENSE,sha256=2Ncb40-hqkTil78RPv3-YiJfKaJ8te9USJgliKqIdSY,11558
40
+ iqm_benchmarks-2.13.dist-info/METADATA,sha256=6OZpiq6F8axol_N3-DEikXdkW7FiehRAfmpcGrJ9hTw,10210
41
+ iqm_benchmarks-2.13.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
42
+ iqm_benchmarks-2.13.dist-info/top_level.txt,sha256=3G23Z-1LGf-IOzTCUl6QwWqiQ3USz25Zt90Ihq192to,9
43
+ iqm_benchmarks-2.13.dist-info/RECORD,,