iqm-benchmarks 2.0__tar.gz → 2.1__tar.gz

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.

Files changed (86) hide show
  1. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/CHANGELOG.rst +4 -0
  2. {iqm_benchmarks-2.0/src/iqm_benchmarks.egg-info → iqm_benchmarks-2.1}/PKG-INFO +1 -1
  3. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm/benchmarks/randomized_benchmarking/randomized_benchmarking_common.py +43 -24
  4. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1/src/iqm_benchmarks.egg-info}/PKG-INFO +1 -1
  5. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/.github/workflows/main.yml +0 -0
  6. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/.github/workflows/publish.yml +0 -0
  7. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/.github/workflows/tag_and_release.yml +0 -0
  8. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/.gitignore +0 -0
  9. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/LICENSE +0 -0
  10. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/README.md +0 -0
  11. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/benchmark_runner.py +0 -0
  12. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/docs/API.rst +0 -0
  13. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/docs/Makefile +0 -0
  14. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/docs/_static/images/favicon.ico +0 -0
  15. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/docs/_templates/autosummary-class-template.rst +0 -0
  16. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/docs/_templates/autosummary-module-template.rst +0 -0
  17. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/docs/changelog.rst +0 -0
  18. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/docs/conf.py +0 -0
  19. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/docs/index.rst +0 -0
  20. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/docs/license.rst +0 -0
  21. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/docs/readme.md +0 -0
  22. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/examples/example_clifford_rb.ipynb +0 -0
  23. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/examples/example_clops.ipynb +0 -0
  24. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/examples/example_experiment_all.ipynb +0 -0
  25. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/examples/example_ghz.ipynb +0 -0
  26. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/examples/example_gst.ipynb +0 -0
  27. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/examples/example_interleaved_rb.ipynb +0 -0
  28. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/examples/example_mirror_rb.ipynb +0 -0
  29. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/examples/example_qscore.ipynb +0 -0
  30. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/examples/example_quantum_volume.ipynb +0 -0
  31. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/examples/generate_2qubit_cliffords.ipynb +0 -0
  32. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/examples/how_to_make_your_own_benchmark.ipynb +0 -0
  33. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/pyproject.toml +0 -0
  34. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/scheduled_experiments/adonis/__init__.py +0 -0
  35. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/scheduled_experiments/adonis/weekly.py +0 -0
  36. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/setup.cfg +0 -0
  37. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm/benchmarks/__init__.py +0 -0
  38. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm/benchmarks/benchmark.py +0 -0
  39. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm/benchmarks/benchmark_definition.py +0 -0
  40. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm/benchmarks/benchmark_experiment.py +0 -0
  41. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm/benchmarks/circuit_containers.py +0 -0
  42. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm/benchmarks/compressive_gst/__init__.py +0 -0
  43. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm/benchmarks/compressive_gst/compressive_gst.py +0 -0
  44. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm/benchmarks/compressive_gst/gst_analysis.py +0 -0
  45. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm/benchmarks/entanglement/__init__.py +0 -0
  46. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm/benchmarks/entanglement/ghz.py +0 -0
  47. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm/benchmarks/logging_config.py +0 -0
  48. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm/benchmarks/optimization/__init__.py +0 -0
  49. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm/benchmarks/optimization/qscore.py +0 -0
  50. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm/benchmarks/quantum_volume/__init__.py +0 -0
  51. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm/benchmarks/quantum_volume/clops.py +0 -0
  52. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm/benchmarks/quantum_volume/quantum_volume.py +0 -0
  53. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm/benchmarks/randomized_benchmarking/__init__.py +0 -0
  54. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm/benchmarks/randomized_benchmarking/clifford_1q.pkl +0 -0
  55. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm/benchmarks/randomized_benchmarking/clifford_2q.pkl +0 -0
  56. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm/benchmarks/randomized_benchmarking/clifford_rb/__init__.py +0 -0
  57. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm/benchmarks/randomized_benchmarking/clifford_rb/clifford_rb.py +0 -0
  58. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm/benchmarks/randomized_benchmarking/interleaved_rb/__init__.py +0 -0
  59. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm/benchmarks/randomized_benchmarking/interleaved_rb/interleaved_rb.py +0 -0
  60. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm/benchmarks/randomized_benchmarking/mirror_rb/__init__.py +0 -0
  61. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm/benchmarks/randomized_benchmarking/mirror_rb/mirror_rb.py +0 -0
  62. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm/benchmarks/randomized_benchmarking/multi_lmfit.py +0 -0
  63. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm/benchmarks/readout_mitigation.py +0 -0
  64. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm/benchmarks/utils.py +0 -0
  65. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm_benchmarks.egg-info/SOURCES.txt +0 -0
  66. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm_benchmarks.egg-info/dependency_links.txt +0 -0
  67. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm_benchmarks.egg-info/requires.txt +0 -0
  68. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/iqm_benchmarks.egg-info/top_level.txt +0 -0
  69. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/mGST/LICENSE +0 -0
  70. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/mGST/README.md +0 -0
  71. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/mGST/additional_fns.py +0 -0
  72. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/mGST/algorithm.py +0 -0
  73. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/mGST/compatibility.py +0 -0
  74. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/mGST/low_level_jit.py +0 -0
  75. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/mGST/optimization.py +0 -0
  76. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/mGST/qiskit_interface.py +0 -0
  77. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/mGST/reporting/figure_gen.py +0 -0
  78. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/src/mGST/reporting/reporting.py +0 -0
  79. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/tag-from-pipeline.sh +0 -0
  80. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/tests/test_ghz.py +0 -0
  81. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/tests/test_gst.py +0 -0
  82. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/tests/test_qscore.py +0 -0
  83. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/tests/test_qv.py +0 -0
  84. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/tests/test_rb.py +0 -0
  85. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/tests/unit/test_benchmark_circuit.py +0 -0
  86. {iqm_benchmarks-2.0 → iqm_benchmarks-2.1}/tox.ini +0 -0
@@ -2,6 +2,10 @@
2
2
  Changelog
3
3
  =========
4
4
 
5
+ Version 2.1
6
+ ===========
7
+ * Fixed bug in RB plots for individual decays.
8
+
5
9
  Version 2.0
6
10
  ===========
7
11
  * Adds `Circuits`, `BenchmarkCircuit` and `CircuitGroup` as a way to easily store and interact with multiple quantum circuits.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: iqm-benchmarks
3
- Version: 2.0
3
+ Version: 2.1
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>, 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>
6
6
  Project-URL: Homepage, https://github.com/iqm-finland/iqm-benchmarks
@@ -565,6 +565,11 @@ def plot_rb_decay(
565
565
  num_circuit_samples = dataset.attrs["num_circuit_samples"]
566
566
  timestamp = dataset.attrs["execution_timestamp"]
567
567
  backend_name = dataset.attrs["backend_name"]
568
+ # If only one layout is passed, the index to retrieve results must be shifted!
569
+ qubits_index = 0
570
+ if len(qubits_array) == 1:
571
+ config_qubits_array = dataset.attrs["qubits_array"]
572
+ qubits_index = config_qubits_array.index(qubits_array[0])
568
573
 
569
574
  # Fetch the relevant observations indexed by qubit layouts
570
575
  depths = {}
@@ -583,79 +588,93 @@ def plot_rb_decay(
583
588
  colors = [cmap(i) for i in np.linspace(start=1, stop=0, num=len(qubits_array)).tolist()]
584
589
  if identifier == "mrb":
585
590
  depths[identifier] = {
586
- str(q): list(dataset.attrs[q_idx]["polarizations"].keys()) for q_idx, q in enumerate(qubits_array)
591
+ str(q): list(dataset.attrs[q_idx]["polarizations"].keys())
592
+ for q_idx, q in enumerate(qubits_array, qubits_index)
587
593
  }
588
594
  polarizations[identifier] = {
589
- str(q): dataset.attrs[q_idx]["polarizations"] for q_idx, q in enumerate(qubits_array)
595
+ str(q): dataset.attrs[q_idx]["polarizations"] for q_idx, q in enumerate(qubits_array, qubits_index)
590
596
  }
591
597
  average_polarizations[identifier] = {
592
- str(q): dataset.attrs[q_idx]["avg_polarization_nominal_values"] for q_idx, q in enumerate(qubits_array)
598
+ str(q): dataset.attrs[q_idx]["avg_polarization_nominal_values"]
599
+ for q_idx, q in enumerate(qubits_array, qubits_index)
593
600
  }
594
601
  stddevs_from_mean[identifier] = {
595
- str(q): dataset.attrs[q_idx]["avg_polatization_stderr"] for q_idx, q in enumerate(qubits_array)
602
+ str(q): dataset.attrs[q_idx]["avg_polatization_stderr"]
603
+ for q_idx, q in enumerate(qubits_array, qubits_index)
596
604
  }
597
- else:
605
+ else: # identifier == "clifford"
598
606
  depths[identifier] = {
599
- str(q): list(dataset.attrs[q_idx]["fidelities"].keys()) for q_idx, q in enumerate(qubits_array)
607
+ str(q): list(dataset.attrs[q_idx]["fidelities"].keys())
608
+ for q_idx, q in enumerate(qubits_array, qubits_index)
600
609
  }
601
610
  polarizations[identifier] = {
602
- str(q): dataset.attrs[q_idx]["fidelities"] for q_idx, q in enumerate(qubits_array)
611
+ str(q): dataset.attrs[q_idx]["fidelities"] for q_idx, q in enumerate(qubits_array, qubits_index)
603
612
  }
604
613
  average_polarizations[identifier] = {
605
- str(q): dataset.attrs[q_idx]["avg_fidelities_nominal_values"] for q_idx, q in enumerate(qubits_array)
614
+ str(q): dataset.attrs[q_idx]["avg_fidelities_nominal_values"]
615
+ for q_idx, q in enumerate(qubits_array, qubits_index)
606
616
  }
607
617
  stddevs_from_mean[identifier] = {
608
- str(q): dataset.attrs[q_idx]["avg_fidelities_stderr"] for q_idx, q in enumerate(qubits_array)
618
+ str(q): dataset.attrs[q_idx]["avg_fidelities_stderr"]
619
+ for q_idx, q in enumerate(qubits_array, qubits_index)
609
620
  }
610
621
  # These are common to both MRB and standard Clifford
611
622
  fidelity_value[identifier] = {
612
- str(q): observations[q_idx]["avg_gate_fidelity"]["value"] for q_idx, q in enumerate(qubits_array)
623
+ str(q): observations[q_idx]["avg_gate_fidelity"]["value"]
624
+ for q_idx, q in enumerate(qubits_array, qubits_index)
613
625
  }
614
626
  fidelity_stderr[identifier] = {
615
- str(q): observations[q_idx]["avg_gate_fidelity"]["uncertainty"] for q_idx, q in enumerate(qubits_array)
627
+ str(q): observations[q_idx]["avg_gate_fidelity"]["uncertainty"]
628
+ for q_idx, q in enumerate(qubits_array, qubits_index)
616
629
  }
617
630
  decay_rate[identifier] = {
618
- str(q): dataset.attrs[q_idx]["decay_rate"]["value"] for q_idx, q in enumerate(qubits_array)
631
+ str(q): dataset.attrs[q_idx]["decay_rate"]["value"] for q_idx, q in enumerate(qubits_array, qubits_index)
619
632
  }
620
633
  offset[identifier] = {
621
- str(q): dataset.attrs[q_idx]["fit_offset"]["value"] for q_idx, q in enumerate(qubits_array)
634
+ str(q): dataset.attrs[q_idx]["fit_offset"]["value"] for q_idx, q in enumerate(qubits_array, qubits_index)
622
635
  }
623
636
  amplitude[identifier] = {
624
- str(q): dataset.attrs[q_idx]["fit_amplitude"]["value"] for q_idx, q in enumerate(qubits_array)
637
+ str(q): dataset.attrs[q_idx]["fit_amplitude"]["value"] for q_idx, q in enumerate(qubits_array, qubits_index)
625
638
  }
626
- else:
639
+ else: # id MRB
627
640
  rb_type_keys = list(observations[0].keys())
628
641
  colors = [cmap(i) for i in np.linspace(start=1, stop=0, num=len(rb_type_keys)).tolist()]
629
642
  for rb_type in rb_type_keys:
630
643
  depths[rb_type] = {
631
- str(q): list(dataset.attrs[q_idx][rb_type]["fidelities"].keys()) for q_idx, q in enumerate(qubits_array)
644
+ str(q): list(dataset.attrs[q_idx][rb_type]["fidelities"].keys())
645
+ for q_idx, q in enumerate(qubits_array, qubits_index)
632
646
  }
633
647
  polarizations[rb_type] = {
634
- str(q): dataset.attrs[q_idx][rb_type]["fidelities"] for q_idx, q in enumerate(qubits_array)
648
+ str(q): dataset.attrs[q_idx][rb_type]["fidelities"]
649
+ for q_idx, q in enumerate(qubits_array, qubits_index)
635
650
  }
636
651
  average_polarizations[rb_type] = {
637
652
  str(q): dataset.attrs[q_idx][rb_type]["avg_fidelities_nominal_values"]
638
- for q_idx, q in enumerate(qubits_array)
653
+ for q_idx, q in enumerate(qubits_array, qubits_index)
639
654
  }
640
655
  stddevs_from_mean[rb_type] = {
641
- str(q): dataset.attrs[q_idx][rb_type]["avg_fidelities_stderr"] for q_idx, q in enumerate(qubits_array)
656
+ str(q): dataset.attrs[q_idx][rb_type]["avg_fidelities_stderr"]
657
+ for q_idx, q in enumerate(qubits_array, qubits_index)
642
658
  }
643
659
  fidelity_value[rb_type] = {
644
660
  str(q): observations[q_idx][rb_type]["avg_gate_fidelity"]["value"]
645
- for q_idx, q in enumerate(qubits_array)
661
+ for q_idx, q in enumerate(qubits_array, qubits_index)
646
662
  }
647
663
  fidelity_stderr[rb_type] = {
648
664
  str(q): observations[q_idx][rb_type]["avg_gate_fidelity"]["uncertainty"]
649
- for q_idx, q in enumerate(qubits_array)
665
+ for q_idx, q in enumerate(qubits_array, qubits_index)
650
666
  }
651
667
  decay_rate[rb_type] = {
652
- str(q): dataset.attrs[q_idx][rb_type]["decay_rate"]["value"] for q_idx, q in enumerate(qubits_array)
668
+ str(q): dataset.attrs[q_idx][rb_type]["decay_rate"]["value"]
669
+ for q_idx, q in enumerate(qubits_array, qubits_index)
653
670
  }
654
671
  offset[rb_type] = {
655
- str(q): dataset.attrs[q_idx][rb_type]["fit_offset"]["value"] for q_idx, q in enumerate(qubits_array)
672
+ str(q): dataset.attrs[q_idx][rb_type]["fit_offset"]["value"]
673
+ for q_idx, q in enumerate(qubits_array, qubits_index)
656
674
  }
657
675
  amplitude[rb_type] = {
658
- str(q): dataset.attrs[q_idx][rb_type]["fit_amplitude"]["value"] for q_idx, q in enumerate(qubits_array)
676
+ str(q): dataset.attrs[q_idx][rb_type]["fit_amplitude"]["value"]
677
+ for q_idx, q in enumerate(qubits_array, qubits_index)
659
678
  }
660
679
 
661
680
  for index_irb, key in enumerate(rb_type_keys):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: iqm-benchmarks
3
- Version: 2.0
3
+ Version: 2.1
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>, 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>
6
6
  Project-URL: Homepage, https://github.com/iqm-finland/iqm-benchmarks
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes