iqm-benchmarks 2.23__py3-none-any.whl → 2.25__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.

@@ -51,6 +51,7 @@ class BenchmarkBase(ABC):
51
51
  self.shots = self.configuration.shots
52
52
  self.calset_id = self.configuration.calset_id
53
53
  self.max_gates_per_batch = self.configuration.max_gates_per_batch
54
+ self.max_circuits_per_batch = self.configuration.max_circuits_per_batch
54
55
 
55
56
  self.routing_method = self.configuration.routing_method
56
57
  self.physical_layout = self.configuration.physical_layout
@@ -92,6 +93,8 @@ class BenchmarkConfigurationBase(BaseModel):
92
93
  * Default for all benchmarks is 2**8.
93
94
  max_gates_per_batch (Optional[int]): the maximum number of gates per circuit batch.
94
95
  * Default for all benchmarks is None.
96
+ max_circuits_per_batch (Optional[int]): the maximum number of circuits per batch.
97
+ * Default for all benchmarks is None.
95
98
  calset_id (Optional[str]): the calibration ID to use in circuit execution.
96
99
  * Default for all benchmarks is None (uses last available calibration ID).
97
100
  routing_method (Literal["basic", "lookahead", "stochastic", "sabre", "none"]): the Qiskit routing method to use in transpilation.
@@ -100,13 +103,14 @@ class BenchmarkConfigurationBase(BaseModel):
100
103
  - "fixed": physical layout is constrained during transpilation to the selected initial physical qubits.
101
104
  - "batching": physical layout is allowed to use any other physical qubits, and circuits are batched according to final measured qubits.
102
105
  * Default for all benchmarks is "fixed".
103
- use_DD (bool): Boolean flag determining if dynamical decoupling is enabled during circuit execution
106
+ use_dd (bool): Boolean flag determining whether to enable dynamical decoupling during circuit execution.
104
107
  * Default: False
105
108
  """
106
109
 
107
110
  benchmark: Type[BenchmarkBase]
108
111
  shots: int = 2**8
109
112
  max_gates_per_batch: Optional[int] = None
113
+ max_circuits_per_batch: Optional[int] = None
110
114
  calset_id: Optional[str] = None
111
115
  routing_method: Literal["basic", "lookahead", "stochastic", "sabre", "none"] = "sabre"
112
116
  physical_layout: Literal["fixed", "batching"] = "fixed"
@@ -239,6 +239,7 @@ class CompressiveGST(Benchmark):
239
239
  self.configuration.shots,
240
240
  self.calset_id,
241
241
  max_gates_per_batch=self.configuration.max_gates_per_batch,
242
+ max_circuits_per_batch=self.configuration.max_circuits_per_batch,
242
243
  circuit_compilation_options=self.circuit_compilation_options,
243
244
  )
244
245
  # Retrieve
@@ -255,6 +256,7 @@ class CompressiveGST(Benchmark):
255
256
  self.configuration.shots,
256
257
  self.calset_id,
257
258
  max_gates_per_batch=self.configuration.max_gates_per_batch,
259
+ max_circuits_per_batch=self.configuration.max_circuits_per_batch,
258
260
  )
259
261
  # Retrieve all
260
262
  qcvv_logger.info(f"Now executing the corresponding circuit batch")
@@ -851,6 +851,7 @@ class GHZBenchmark(Benchmark):
851
851
  self.shots,
852
852
  self.calset_id,
853
853
  max_gates_per_batch=self.max_gates_per_batch,
854
+ max_circuits_per_batch=self.configuration.max_circuits_per_batch,
854
855
  circuit_compilation_options=self.circuit_compilation_options,
855
856
  )
856
857
 
@@ -881,6 +881,7 @@ class QScoreBenchmark(Benchmark):
881
881
  self.shots,
882
882
  self.calset_id,
883
883
  max_gates_per_batch=self.max_gates_per_batch,
884
+ max_circuits_per_batch=self.configuration.max_circuits_per_batch,
884
885
  circuit_compilation_options=self.circuit_compilation_options,
885
886
  )
886
887
  qc_transpiled_list.append(transpiled_qc)
@@ -565,6 +565,7 @@ class CLOPSBenchmark(Benchmark):
565
565
  self.num_shots,
566
566
  self.calset_id,
567
567
  max_gates_per_batch=self.max_gates_per_batch,
568
+ max_circuits_per_batch=self.configuration.max_circuits_per_batch,
568
569
  circuit_compilation_options=self.circuit_compilation_options,
569
570
  )
570
571
 
@@ -26,7 +26,7 @@ from mthree.classes import QuasiCollection
26
26
  from mthree.utils import expval
27
27
  import numpy as np
28
28
  from qiskit.circuit.library import QuantumVolume
29
- from qiskit_aer import Aer
29
+ from qiskit_aer import StatevectorSimulator
30
30
  import xarray as xr
31
31
 
32
32
  from iqm.benchmarks.benchmark import BenchmarkConfigurationBase
@@ -119,7 +119,7 @@ def get_ideal_heavy_outputs(
119
119
  """
120
120
  simulable_circuits = deepcopy(qc_list)
121
121
  ideal_heavy_outputs: List[Dict[str, float]] = []
122
- ideal_simulator = Aer.get_backend("statevector_simulator")
122
+ ideal_simulator = StatevectorSimulator()
123
123
 
124
124
  # Separate according to sorted indices
125
125
  circuit_batches = {
@@ -698,6 +698,7 @@ class QuantumVolumeBenchmark(Benchmark):
698
698
  self.shots,
699
699
  self.calset_id,
700
700
  max_gates_per_batch=self.max_gates_per_batch,
701
+ max_circuits_per_batch=self.configuration.max_circuits_per_batch,
701
702
  circuit_compilation_options=self.circuit_compilation_options,
702
703
  )
703
704
  # qcvv_logger.info(
@@ -294,6 +294,7 @@ class CliffordRandomizedBenchmarking(Benchmark):
294
294
  self.shots,
295
295
  self.calset_id,
296
296
  self.max_gates_per_batch,
297
+ self.configuration.max_circuits_per_batch,
297
298
  )
298
299
  )
299
300
  qcvv_logger.info(f"Job for sequence length {seq_length} submitted successfully!")
@@ -353,6 +354,7 @@ class CliffordRandomizedBenchmarking(Benchmark):
353
354
  self.backend,
354
355
  self.calset_id,
355
356
  max_gates_per_batch=self.max_gates_per_batch,
357
+ max_circuits_per_batch=self.configuration.max_circuits_per_batch,
356
358
  circuit_compilation_options=self.circuit_compilation_options,
357
359
  )
358
360
  )
@@ -407,6 +407,7 @@ class InterleavedRandomizedBenchmarking(Benchmark):
407
407
  self.shots,
408
408
  self.calset_id,
409
409
  self.max_gates_per_batch,
410
+ self.configuration.max_circuits_per_batch,
410
411
  )
411
412
  )
412
413
  all_rb_jobs["interleaved"].append(
@@ -418,6 +419,7 @@ class InterleavedRandomizedBenchmarking(Benchmark):
418
419
  self.shots,
419
420
  self.calset_id,
420
421
  self.max_gates_per_batch,
422
+ self.configuration.max_circuits_per_batch,
421
423
  )
422
424
  )
423
425
  qcvv_logger.info(f"Both jobs for sequence length {seq_length} submitted successfully!")
@@ -513,6 +515,7 @@ class InterleavedRandomizedBenchmarking(Benchmark):
513
515
  backend,
514
516
  self.calset_id,
515
517
  max_gates_per_batch=self.max_gates_per_batch,
518
+ max_circuits_per_batch=self.configuration.max_circuits_per_batch,
516
519
  circuit_compilation_options=self.circuit_compilation_options,
517
520
  )
518
521
  )
@@ -524,6 +527,7 @@ class InterleavedRandomizedBenchmarking(Benchmark):
524
527
  backend,
525
528
  self.calset_id,
526
529
  max_gates_per_batch=self.max_gates_per_batch,
530
+ max_circuits_per_batch=self.configuration.max_circuits_per_batch,
527
531
  circuit_compilation_options=self.circuit_compilation_options,
528
532
  )
529
533
  )
@@ -662,6 +662,7 @@ class MirrorRandomizedBenchmarking(Benchmark):
662
662
  self.shots,
663
663
  self.calset_id,
664
664
  max_gates_per_batch=self.max_gates_per_batch,
665
+ max_circuits_per_batch=self.configuration.max_circuits_per_batch,
665
666
  circuit_compilation_options=self.circuit_compilation_options,
666
667
  )
667
668
  mrb_submit_results = {
@@ -439,6 +439,7 @@ def submit_parallel_rb_job(
439
439
  shots: int,
440
440
  calset_id: Optional[str],
441
441
  max_gates_per_batch: Optional[str],
442
+ max_circuits_per_batch: Optional[int],
442
443
  ) -> Dict[str, Any]:
443
444
  """Submit fixed-depth parallel MRB jobs for execution in the specified IQMBackend
444
445
  Args:
@@ -449,6 +450,7 @@ def submit_parallel_rb_job(
449
450
  shots (int): the number of shots to submit the job
450
451
  calset_id (Optional[str]): the calibration identifier
451
452
  max_gates_per_batch (Optional[str]): the maximum number of gates per batch to submit the job
453
+ max_circuits_per_batch (Optional[int]): the maximum number of circuits per batch to submit the job.
452
454
  Returns:
453
455
  Dict with qubit layout, submitted job objects, type (vanilla/DD) and submission time
454
456
  """
@@ -456,7 +458,12 @@ def submit_parallel_rb_job(
456
458
  # Send to execute on backend
457
459
  # pylint: disable=unbalanced-tuple-unpacking
458
460
  execution_jobs, time_submit = submit_execute(
459
- sorted_transpiled_circuit_dicts, backend_arg, shots, calset_id, max_gates_per_batch=max_gates_per_batch
461
+ sorted_transpiled_circuit_dicts,
462
+ backend_arg,
463
+ shots,
464
+ calset_id,
465
+ max_gates_per_batch=max_gates_per_batch,
466
+ max_circuits_per_batch=max_circuits_per_batch,
460
467
  )
461
468
  rb_submit_results = {
462
469
  "qubits": qubits_array,
@@ -474,6 +481,7 @@ def submit_sequential_rb_jobs(
474
481
  backend_arg: str | IQMBackendBase,
475
482
  calset_id: Optional[str] = None,
476
483
  max_gates_per_batch: Optional[int] = None,
484
+ max_circuits_per_batch: Optional[int] = None,
477
485
  circuit_compilation_options: Optional[CircuitCompilationOptions] = None,
478
486
  ) -> List[Dict[str, Any]]:
479
487
  """Submit sequential RB jobs for execution in the specified IQMBackend
@@ -484,6 +492,7 @@ def submit_sequential_rb_jobs(
484
492
  backend_arg (IQMBackendBase): the IQM backend to submit the job
485
493
  calset_id (Optional[str]): the calibration identifier
486
494
  max_gates_per_batch (Optional[int]): the maximum number of gates per batch
495
+ max_circuits_per_batch (Optional[int]): the maximum number of circuits per batch
487
496
  circuit_compilation_options (Optional[CircuitCompilationOptions]): Compilation options passed to submit_execute
488
497
  Returns:
489
498
  Dict with qubit layout, submitted job objects, type (vanilla/DD) and submission time
@@ -504,6 +513,7 @@ def submit_sequential_rb_jobs(
504
513
  shots,
505
514
  calset_id,
506
515
  max_gates_per_batch,
516
+ max_circuits_per_batch=max_circuits_per_batch,
507
517
  circuit_compilation_options=circuit_compilation_options,
508
518
  )
509
519
  rb_submit_results[depth] = {
iqm/benchmarks/utils.py CHANGED
@@ -503,6 +503,7 @@ def submit_execute(
503
503
  shots: int,
504
504
  calset_id: Optional[str] = None,
505
505
  max_gates_per_batch: Optional[int] = None,
506
+ max_circuits_per_batch: Optional[int] = None,
506
507
  circuit_compilation_options: Optional[CircuitCompilationOptions] = None,
507
508
  ) -> List[IQMJob]:
508
509
  """Submit for execute a list of quantum circuits on the specified Backend.
@@ -511,10 +512,15 @@ def submit_execute(
511
512
  sorted_transpiled_qc_list (Dict[Tuple, List[QuantumCircuit]]): the list of quantum circuits to be executed.
512
513
  backend (IQMBackendBase): the backend to execute the circuits on.
513
514
  shots (int): the number of shots per circuit.
514
- calset_id (Optional[str]): the calibration set ID, uses the latest one if None.
515
- max_gates_per_batch (int): the maximum number of gates per batch sent to the backend, used to make manageable batches.
515
+ calset_id (Optional[str]): the calibration set ID.
516
+ * Default is None: uses the latest calibration ID.
517
+ max_gates_per_batch (Optional[int]): the maximum number of gates per batch sent to the backend, used to make manageable batches.
518
+ * Default is None.
519
+ max_circuits_per_batch (Optional[int]): the maximum number of circuits per batch sent to the backend, used to make manageable batches.
520
+ * Default is None.
516
521
  circuit_compilation_options (CircuitCompilationOptions): Ability to pass a compilation options object,
517
522
  enabling execution with dynamical decoupling, among other options - see qiskit-iqm documentation.
523
+ * Default is None.
518
524
  Returns:
519
525
  List[IQMJob]: the IQMJob objects of the executed circuits.
520
526
 
@@ -530,23 +536,41 @@ def submit_execute(
530
536
  f"Submitting batch with {len(sorted_transpiled_qc_list[k])} circuits corresponding to qubits {list(k)}"
531
537
  )
532
538
  # Divide into batches according to maximum gate count per batch
533
- if max_gates_per_batch is None:
539
+ if max_gates_per_batch is None and max_circuits_per_batch is None:
534
540
  jobs = backend.run(sorted_transpiled_qc_list[k], shots=shots, calibration_set_id=calset_id)
535
541
  final_jobs.append(jobs)
542
+
536
543
  else:
537
- # Calculate average gate count per quantum circuit
538
- avg_gates_per_qc = sum(sum(qc.count_ops().values()) for qc in sorted_transpiled_qc_list[k]) / len(
539
- sorted_transpiled_qc_list[k]
540
- )
541
- final_batch_jobs = []
542
- for index, qc_batch in enumerate(
543
- chunked(
544
- sorted_transpiled_qc_list[k],
545
- max(1, floor(max_gates_per_batch / avg_gates_per_qc)),
544
+ if max_gates_per_batch is None and max_circuits_per_batch is not None:
545
+ restriction = "max_circuits_per_batch"
546
+ batching_size = max_circuits_per_batch
547
+
548
+ elif max_circuits_per_batch is None and max_gates_per_batch is not None:
549
+ restriction = "max_gates_per_batch"
550
+ # Calculate average gate count per quantum circuit
551
+ avg_gates_per_qc = sum(sum(qc.count_ops().values()) for qc in sorted_transpiled_qc_list[k]) / len(
552
+ sorted_transpiled_qc_list[k]
553
+ )
554
+ batching_size = max(1, floor(max_gates_per_batch / avg_gates_per_qc))
555
+
556
+ else: # Both are not None - select the one rendering the smallest batches.
557
+ # Calculate average gate count per quantum circuit
558
+ avg_gates_per_qc = sum(sum(qc.count_ops().values()) for qc in sorted_transpiled_qc_list[k]) / len(
559
+ sorted_transpiled_qc_list[k]
560
+ )
561
+ qcvv_logger.warning(
562
+ "Both max_gates_per_batch and max_circuits_per_batch are not None. Selecting the one giving the smallest batches."
546
563
  )
547
- ):
564
+ batching_size = min(max_circuits_per_batch, max(1, floor(max_gates_per_batch / avg_gates_per_qc)))
565
+ if batching_size == max_circuits_per_batch:
566
+ restriction = "max_circuits_per_batch"
567
+ else:
568
+ restriction = "max_gates_per_batch"
569
+
570
+ final_batch_jobs = []
571
+ for index, qc_batch in enumerate(chunked(sorted_transpiled_qc_list[k], batching_size)):
548
572
  qcvv_logger.info(
549
- f"max_gates_per_batch restriction: submitting subbatch #{index+1} with {len(qc_batch)} circuits corresponding to qubits {list(k)}"
573
+ f"{restriction} restriction: submitting subbatch #{index + 1} with {len(qc_batch)} circuits corresponding to qubits {list(k)}"
550
574
  )
551
575
  batch_jobs = backend.run(
552
576
  qc_batch,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: iqm-benchmarks
3
- Version: 2.23
3
+ Version: 2.25
4
4
  Summary: A package for implementation of Quantum Characterization, Verification and Validation (QCVV) techniques on IQM's hardware at gate level abstraction
5
5
  Author-email: IQM Finland Oy <developers@meetiqm.com>, Adrian Auer <adrian.auer@meetiqm.com>, Raphael Brieger <raphael.brieger@meetiqm.com>, Alessio Calzona <alessio.calzona@meetiqm.com>, Pedro Figueroa Romero <pedro.romero@meetiqm.com>, Amin Hosseinkhani <amin.hosseinkhani@meetiqm.com>, Miikka Koistinen <miikka@meetiqm.com>, Nadia Milazzo <nadia.milazzo@meetiqm.com>, Vicente Pina Canelles <vicente.pina@meetiqm.com>, Aniket Rath <aniket.rath@meetiqm.com>, Jami Rönkkö <jami@meetiqm.com>, Stefan Seegerer <stefan.seegerer@meetiqm.com>
6
6
  Project-URL: Homepage, https://github.com/iqm-finland/iqm-benchmarks
@@ -16,6 +16,7 @@ Requires-Dist: matplotlib<4,>=3.6.3
16
16
  Requires-Dist: more-itertools<11.0.0,>=10.1.0
17
17
  Requires-Dist: mthree<2.7,>=2.6
18
18
  Requires-Dist: networkx<4.0,>=3.3
19
+ Requires-Dist: rustworkx>=0.15.1
19
20
  Requires-Dist: numpy<2.0,>=1.25.2
20
21
  Requires-Dist: qiskit<2.0,>=1.0
21
22
  Requires-Dist: qiskit-iqm<16.0,>=15.1
@@ -193,7 +194,7 @@ EXAMPLE_MRB = MirrorRBConfiguration(
193
194
  )
194
195
 
195
196
  EXAMPLE_QV = QuantumVolumeConfiguration(
196
- num_circuits=500,
197
+ num_circuits=800,
197
198
  shots=2**8,
198
199
  calset_id=None,
199
200
  num_sigmas=2,
@@ -203,7 +204,8 @@ EXAMPLE_QV = QuantumVolumeConfiguration(
203
204
  optimize_sqg=True,
204
205
  routing_method="sabre",
205
206
  physical_layout="fixed",
206
- max_gates_per_batch=60_000,
207
+ max_circuits_per_batch=500,
208
+ max_gates_per_batch=60_000, # Will be used if it renders a smaller max batch size than max_circuits_per_batch
207
209
  rem=True,
208
210
  mit_shots=1_000,
209
211
  )
@@ -1,31 +1,31 @@
1
1
  iqm/benchmarks/__init__.py,sha256=8SRHlADqZjlP8PtbKTMvu-ejpcEZkW8cPmgW8GVKJg8,2638
2
- iqm/benchmarks/benchmark.py,sha256=F0WdGFpYGVWMeyKmScfM7b7jvuS8P8UArB3_JwUKJrY,4694
2
+ iqm/benchmarks/benchmark.py,sha256=3E7g7RQjCIGIpSI1gOSrI3V9SAVs-XEOMrPgToK_7vw,4972
3
3
  iqm/benchmarks/benchmark_definition.py,sha256=e4xe0wlWKZqj48_6-zTglMaMeoiA9aGkHrrSgoCfPkM,11271
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=Q2SOGWTNgmklOYkNxepAaSaXlxSj0QQyymYY1bOkT8A,11756
7
- iqm/benchmarks/utils.py,sha256=ZwAGYIhPe4Ij2Ds8drd_0eHwpdBj1L7rm1d33oqN4L8,31928
7
+ iqm/benchmarks/utils.py,sha256=3k3YkLfqHByedVlnSRCeKnt65J60msylGR18mz8sYAA,33435
8
8
  iqm/benchmarks/compressive_gst/__init__.py,sha256=LneifgYXtcwo2jcXo7GdUEHL6_peipukShhkrdaTRCA,929
9
- iqm/benchmarks/compressive_gst/compressive_gst.py,sha256=D54hnaxxOIyD3ygUMKyxfRMwfUXfK4O5UdzdgscwkHA,25291
9
+ iqm/benchmarks/compressive_gst/compressive_gst.py,sha256=G9vw5esrSwTVFuFNzL-Oyb1vYuA-HKmdnmnfgV74L54,25459
10
10
  iqm/benchmarks/compressive_gst/gst_analysis.py,sha256=2qY46e-euAcdThcits_Wo7hGb0m69mDZY0d1Qv_wq4M,36104
11
11
  iqm/benchmarks/entanglement/__init__.py,sha256=9T7prOwqMmFWdb4t6ETAHZXKK5o6FvU2DvVb6WhNi-U,682
12
- iqm/benchmarks/entanglement/ghz.py,sha256=HqvdRaiwM879QUrFnULcprdZ-frr1-i4bQ1U8jKjIn0,40993
12
+ iqm/benchmarks/entanglement/ghz.py,sha256=jSPcdFf1Xsq09EJXKCVHzNXjQIdAoDg859279wKGjaQ,41075
13
13
  iqm/benchmarks/optimization/__init__.py,sha256=_ajW_OibYLCtzU5AUv5c2zuuVYn8ZNeZUcUUSIGt51M,747
14
- iqm/benchmarks/optimization/qscore.py,sha256=Ns3Sik90YQ_Cry1I5tY-QQWcLukpyipAfVb1Lmkkd7M,37957
14
+ iqm/benchmarks/optimization/qscore.py,sha256=59iGjk7foCHlYRs0j8ZVFvvxnEGhr4u2SSpOW3TLNU4,38047
15
15
  iqm/benchmarks/quantum_volume/__init__.py,sha256=i-Q4SpDWELBw7frXnxm1j4wJRcxbIyrS5uEK_v06YHo,951
16
- iqm/benchmarks/quantum_volume/clops.py,sha256=kMzofZEtB_SmbGWcB9LWGbG96I342Im3xIWDt9nTqUY,31393
17
- iqm/benchmarks/quantum_volume/quantum_volume.py,sha256=2nNlZeR2VhtKkc3gpCkaR24NE23T0aQXNrepTlUL-8I,36549
16
+ iqm/benchmarks/quantum_volume/clops.py,sha256=xlziaxjhJUNyHjBCMzMLeJ9PcFNBtDO7urKvCTBb4sI,31471
17
+ iqm/benchmarks/quantum_volume/quantum_volume.py,sha256=4ll3R8AX-BA599TEaMBzE2rJtAzHLtCkq8CaSkJfA0Y,36626
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
20
20
  iqm/benchmarks/randomized_benchmarking/clifford_2q.pkl,sha256=ZipqU3crPhz2T35qGFgB4GvMyoi_7pnu8NqW5ZP8NXg,90707258
21
21
  iqm/benchmarks/randomized_benchmarking/multi_lmfit.py,sha256=Se1ygR4mXn_2_P82Ch31KBnCmY-g_A9NKzE9Ir8nEvw,3247
22
- iqm/benchmarks/randomized_benchmarking/randomized_benchmarking_common.py,sha256=SKpNukg_vOEVKpd_MAGj4xTFK5FpFJEwx2Zr_2uSUAQ,41867
22
+ iqm/benchmarks/randomized_benchmarking/randomized_benchmarking_common.py,sha256=6sOGPoeJFVCrvTVhDjxbJPrD728pXTzbhuApEgQH1rc,42304
23
23
  iqm/benchmarks/randomized_benchmarking/clifford_rb/__init__.py,sha256=bTDA156LAl7OLGcMec--1nzDrV1XpPRVq3CquTmucgE,677
24
- iqm/benchmarks/randomized_benchmarking/clifford_rb/clifford_rb.py,sha256=H-nfuQaIUWcxYeW61iEc79eZwuAFbDvozTVT0xC0HRw,18403
24
+ iqm/benchmarks/randomized_benchmarking/clifford_rb/clifford_rb.py,sha256=ksa-R8CMDwXniVNvPky5pogCDmifOqjHd5KNEqGzujs,18560
25
25
  iqm/benchmarks/randomized_benchmarking/interleaved_rb/__init__.py,sha256=sq6MgN_hwlpkOj10vyCU4e6eKSX-oLcF2L9na6W2Gt4,681
26
- iqm/benchmarks/randomized_benchmarking/interleaved_rb/interleaved_rb.py,sha256=CsnajadrpxQOqEvX8PpMGB5_9_g6W1IT4aaQRYa1Z08,28128
26
+ iqm/benchmarks/randomized_benchmarking/interleaved_rb/interleaved_rb.py,sha256=lhv8703QJY5j-CUMgAyG9RxVhQKrGljejJaxL5GbILg,28442
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=KNIfu3ucb-oxAwOIl5zarRUeWM1SPmiVEQFo6970oUU,34904
28
+ iqm/benchmarks/randomized_benchmarking/mirror_rb/mirror_rb.py,sha256=X5rcmCePbVZ9tsMmh8xw3pTskdMKuHrqW_-pGkX0klg,34982
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=ajx6Zn5FnrX_T7tMP8xnBLyG4c2ddFRm0Fu2_3r1t30,10118
37
37
  mGST/reporting/figure_gen.py,sha256=6Xd8vwfy09hLY1YbJY6TRevuMsQSU4MsWqemly3ZO0I,12970
38
38
  mGST/reporting/reporting.py,sha256=B8NWfpZrrSmyH7lwZxd0EbZMYLsAGK1YsHRB4D5qXH4,26002
39
- iqm_benchmarks-2.23.dist-info/LICENSE,sha256=2Ncb40-hqkTil78RPv3-YiJfKaJ8te9USJgliKqIdSY,11558
40
- iqm_benchmarks-2.23.dist-info/METADATA,sha256=BvgUDcjk3LfQCM3ncFvwEILGrFt9oK471iLIM5P0KL8,10386
41
- iqm_benchmarks-2.23.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
42
- iqm_benchmarks-2.23.dist-info/top_level.txt,sha256=3G23Z-1LGf-IOzTCUl6QwWqiQ3USz25Zt90Ihq192to,9
43
- iqm_benchmarks-2.23.dist-info/RECORD,,
39
+ iqm_benchmarks-2.25.dist-info/LICENSE,sha256=2Ncb40-hqkTil78RPv3-YiJfKaJ8te9USJgliKqIdSY,11558
40
+ iqm_benchmarks-2.25.dist-info/METADATA,sha256=ietRHvwVJDYDtSCZjRtPSLjPjLvq0-4jU7TFZiC9Aa0,10533
41
+ iqm_benchmarks-2.25.dist-info/WHEEL,sha256=beeZ86-EfXScwlR_HKu4SllMC9wUEj_8Z_4FJ3egI2w,91
42
+ iqm_benchmarks-2.25.dist-info/top_level.txt,sha256=3G23Z-1LGf-IOzTCUl6QwWqiQ3USz25Zt90Ihq192to,9
43
+ iqm_benchmarks-2.25.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.8.2)
2
+ Generator: setuptools (76.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5