iqm-benchmarks 2.25__tar.gz → 2.27__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 (106) hide show
  1. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/CHANGELOG.rst +8 -0
  2. {iqm_benchmarks-2.25/src/iqm_benchmarks.egg-info → iqm_benchmarks-2.27}/PKG-INFO +7 -5
  3. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/docs/development/generate_2qubit_cliffords.ipynb +115 -65
  4. iqm_benchmarks-2.27/docs/devices/star.ipynb +651 -0
  5. iqm_benchmarks-2.27/docs/examples/example_experiment_all.ipynb +3208 -0
  6. iqm_benchmarks-2.27/docs/examples/example_ghz.ipynb +250 -0
  7. iqm_benchmarks-2.27/docs/examples/example_ghz_deneb.ipynb +322 -0
  8. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/pyproject.toml +4 -3
  9. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/requirements.txt +21 -21
  10. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/iqm/benchmarks/compressive_gst/compressive_gst.py +24 -21
  11. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/iqm/benchmarks/compressive_gst/gst_analysis.py +31 -22
  12. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/iqm/benchmarks/entanglement/ghz.py +10 -10
  13. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/iqm/benchmarks/optimization/qscore.py +7 -6
  14. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/iqm/benchmarks/quantum_volume/clops.py +1 -1
  15. iqm_benchmarks-2.27/src/iqm/benchmarks/randomized_benchmarking/clifford_1q.pkl +0 -0
  16. iqm_benchmarks-2.27/src/iqm/benchmarks/randomized_benchmarking/clifford_2q.pkl +0 -0
  17. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/iqm/benchmarks/randomized_benchmarking/clifford_rb/clifford_rb.py +9 -4
  18. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/iqm/benchmarks/randomized_benchmarking/interleaved_rb/interleaved_rb.py +6 -6
  19. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/iqm/benchmarks/randomized_benchmarking/mirror_rb/mirror_rb.py +4 -4
  20. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/iqm/benchmarks/randomized_benchmarking/randomized_benchmarking_common.py +12 -12
  21. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/iqm/benchmarks/utils.py +56 -61
  22. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27/src/iqm_benchmarks.egg-info}/PKG-INFO +7 -5
  23. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/iqm_benchmarks.egg-info/SOURCES.txt +1 -0
  24. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/iqm_benchmarks.egg-info/requires.txt +4 -3
  25. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/mGST/algorithm.py +1 -1
  26. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/tests/test_ghz.py +1 -1
  27. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/tests/test_gst.py +2 -1
  28. iqm_benchmarks-2.27/tests/unit/test_backend_transpilation.py +171 -0
  29. iqm_benchmarks-2.25/docs/devices/star.ipynb +0 -543
  30. iqm_benchmarks-2.25/docs/examples/example_experiment_all.ipynb +0 -2361
  31. iqm_benchmarks-2.25/docs/examples/example_ghz.ipynb +0 -250
  32. iqm_benchmarks-2.25/docs/examples/example_ghz_deneb.ipynb +0 -306
  33. iqm_benchmarks-2.25/src/iqm/benchmarks/randomized_benchmarking/clifford_1q.pkl +0 -0
  34. iqm_benchmarks-2.25/src/iqm/benchmarks/randomized_benchmarking/clifford_2q.pkl +0 -0
  35. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/.github/workflows/main.yml +0 -0
  36. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/.github/workflows/publish.yml +0 -0
  37. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/.github/workflows/tag_and_release.yml +0 -0
  38. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/.gitignore +0 -0
  39. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/LICENSE +0 -0
  40. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/MANIFEST.in +0 -0
  41. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/README.md +0 -0
  42. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/benchmark_runner.py +0 -0
  43. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/docbuild +0 -0
  44. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/docs/API.rst +0 -0
  45. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/docs/Makefile +0 -0
  46. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/docs/_static/images/favicon.ico +0 -0
  47. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/docs/_static/images/logo.png +0 -0
  48. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/docs/_templates/autosummary-class-template.rst +0 -0
  49. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/docs/_templates/autosummary-module-template.rst +0 -0
  50. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/docs/changelog.rst +0 -0
  51. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/docs/conf.py +0 -0
  52. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/docs/development/development.rst +0 -0
  53. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/docs/development/how_to_make_your_own_benchmark.ipynb +0 -0
  54. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/docs/devices/devices.rst +0 -0
  55. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/docs/devices/spark.ipynb +0 -0
  56. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/docs/examples/example_clifford_rb.ipynb +0 -0
  57. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/docs/examples/example_clops.ipynb +0 -0
  58. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/docs/examples/example_gst.ipynb +0 -0
  59. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/docs/examples/example_interleaved_rb.ipynb +0 -0
  60. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/docs/examples/example_mirror_rb.ipynb +0 -0
  61. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/docs/examples/example_qscore.ipynb +0 -0
  62. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/docs/examples/example_quantum_volume.ipynb +0 -0
  63. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/docs/examples/example_quantum_volume_deneb.ipynb +0 -0
  64. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/docs/examples/examples.rst +0 -0
  65. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/docs/index.rst +0 -0
  66. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/docs/license.rst +0 -0
  67. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/docs/readme.md +0 -0
  68. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/format +0 -0
  69. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/scheduled_experiments/adonis/__init__.py +0 -0
  70. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/scheduled_experiments/adonis/weekly.py +0 -0
  71. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/setup.cfg +0 -0
  72. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/iqm/benchmarks/__init__.py +0 -0
  73. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/iqm/benchmarks/benchmark.py +0 -0
  74. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/iqm/benchmarks/benchmark_definition.py +0 -0
  75. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/iqm/benchmarks/circuit_containers.py +0 -0
  76. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/iqm/benchmarks/compressive_gst/__init__.py +0 -0
  77. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/iqm/benchmarks/entanglement/__init__.py +0 -0
  78. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/iqm/benchmarks/logging_config.py +0 -0
  79. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/iqm/benchmarks/optimization/__init__.py +0 -0
  80. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/iqm/benchmarks/quantum_volume/__init__.py +0 -0
  81. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/iqm/benchmarks/quantum_volume/quantum_volume.py +0 -0
  82. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/iqm/benchmarks/randomized_benchmarking/__init__.py +0 -0
  83. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/iqm/benchmarks/randomized_benchmarking/clifford_rb/__init__.py +0 -0
  84. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/iqm/benchmarks/randomized_benchmarking/interleaved_rb/__init__.py +0 -0
  85. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/iqm/benchmarks/randomized_benchmarking/mirror_rb/__init__.py +0 -0
  86. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/iqm/benchmarks/randomized_benchmarking/multi_lmfit.py +0 -0
  87. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/iqm/benchmarks/readout_mitigation.py +0 -0
  88. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/iqm_benchmarks.egg-info/dependency_links.txt +0 -0
  89. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/iqm_benchmarks.egg-info/top_level.txt +0 -0
  90. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/mGST/LICENSE +0 -0
  91. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/mGST/README.md +0 -0
  92. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/mGST/additional_fns.py +0 -0
  93. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/mGST/compatibility.py +0 -0
  94. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/mGST/low_level_jit.py +0 -0
  95. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/mGST/optimization.py +0 -0
  96. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/mGST/qiskit_interface.py +0 -0
  97. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/mGST/reporting/figure_gen.py +0 -0
  98. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/src/mGST/reporting/reporting.py +0 -0
  99. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/tag-from-pipeline.sh +0 -0
  100. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/test +0 -0
  101. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/tests/test_qscore.py +0 -0
  102. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/tests/test_qv.py +0 -0
  103. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/tests/test_rb.py +0 -0
  104. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/tests/unit/test_benchmark_circuit.py +0 -0
  105. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/tests/unit/test_submit_execute.py +0 -0
  106. {iqm_benchmarks-2.25 → iqm_benchmarks-2.27}/update-requirements.py +0 -0
@@ -2,6 +2,14 @@
2
2
  Changelog
3
3
  =========
4
4
 
5
+ Version 2.27
6
+ ============
7
+ * Qiskit on IQM dependency updated to > 17.0.
8
+
9
+ Version 2.26
10
+ ============
11
+ * Changed benchmark observation names and identifiers to be more consistent with guidelines.
12
+
5
13
  Version 2.25
6
14
  ============
7
15
  * Added optional configuration parameter (`max_circuits_per_batch`) to specify the maximum amount of circuits per batch.
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: iqm-benchmarks
3
- Version: 2.25
3
+ Version: 2.27
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,10 +16,11 @@ 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
+ Requires-Dist: rustworkx>=0.16.0
20
20
  Requires-Dist: numpy<2.0,>=1.25.2
21
- Requires-Dist: qiskit<2.0,>=1.0
22
- Requires-Dist: qiskit-iqm<16.0,>=15.1
21
+ Requires-Dist: qiskit<2.0,>=1.2.4
22
+ Requires-Dist: qiskit-iqm<18.0,>=17.8
23
+ Requires-Dist: iqm-client>=22.7
23
24
  Requires-Dist: scikit-optimize<0.11.0,>=0.10.2
24
25
  Requires-Dist: tabulate<1.0.0,>=0.9.0
25
26
  Requires-Dist: uncertainties<3.3.0,>=3.2.2
@@ -50,6 +51,7 @@ Provides-Extra: docs
50
51
  Requires-Dist: sphinx==7.2.6; extra == "docs"
51
52
  Requires-Dist: sphinx-book-theme==1.1.2; extra == "docs"
52
53
  Requires-Dist: myst-parser<5,>=4.0.0; extra == "docs"
54
+ Dynamic: license-file
53
55
 
54
56
  # IQM Benchmarks
55
57
 
@@ -28,10 +28,13 @@
28
28
  },
29
29
  {
30
30
  "cell_type": "code",
31
- "execution_count": 1,
32
31
  "id": "2ae19541-f7d4-4072-a796-fbfc765b0ecc",
33
- "metadata": {},
34
- "outputs": [],
32
+ "metadata": {
33
+ "ExecuteTime": {
34
+ "end_time": "2025-03-24T13:51:15.614464Z",
35
+ "start_time": "2025-03-24T13:51:14.998435Z"
36
+ }
37
+ },
35
38
  "source": [
36
39
  "import pickle\n",
37
40
  "from qiskit.quantum_info import Clifford\n",
@@ -39,7 +42,9 @@
39
42
  "from qiskit.circuit.library import CZGate\n",
40
43
  "from qiskit import QuantumCircuit\n",
41
44
  "import numpy as np"
42
- ]
45
+ ],
46
+ "outputs": [],
47
+ "execution_count": 1
43
48
  },
44
49
  {
45
50
  "cell_type": "markdown",
@@ -51,10 +56,13 @@
51
56
  },
52
57
  {
53
58
  "cell_type": "code",
54
- "execution_count": 2,
55
59
  "id": "8df925c9-d88a-47e2-b615-92cbf37fc347",
56
- "metadata": {},
57
- "outputs": [],
60
+ "metadata": {
61
+ "ExecuteTime": {
62
+ "end_time": "2025-03-24T13:51:18.575819Z",
63
+ "start_time": "2025-03-24T13:51:18.551256Z"
64
+ }
65
+ },
58
66
  "source": [
59
67
  "c0 = QuantumCircuit(1)\n",
60
68
  "c = [c0.copy() for _ in range(24)]\n",
@@ -159,7 +167,9 @@
159
167
  "S1 = [clifford_sqg[k] for k in [\"I\", \"Y/2, X/2\", \"-X/2, -Y/2\"]]\n",
160
168
  "S1X2 = [clifford_sqg[k] for k in [\"X/2\", \"X/2, Y/2, X/2\", \"-Y/2\"]]\n",
161
169
  "S1Y2 = [clifford_sqg[k] for k in [\"Y/2\", \"Y, X/2\", \"-X/2, -Y/2, X/2\"]]"
162
- ]
170
+ ],
171
+ "outputs": [],
172
+ "execution_count": 2
163
173
  },
164
174
  {
165
175
  "cell_type": "markdown",
@@ -171,19 +181,13 @@
171
181
  },
172
182
  {
173
183
  "cell_type": "code",
174
- "execution_count": 3,
175
184
  "id": "803560e9-cc5c-4d65-a623-03f596e27383",
176
- "metadata": {},
177
- "outputs": [
178
- {
179
- "name": "stdout",
180
- "output_type": "stream",
181
- "text": [
182
- " ... 0 terms left \n",
183
- "Sum: 2.0\n"
184
- ]
185
+ "metadata": {
186
+ "ExecuteTime": {
187
+ "end_time": "2025-03-24T13:51:19.761704Z",
188
+ "start_time": "2025-03-24T13:51:19.668704Z"
185
189
  }
186
- ],
190
+ },
187
191
  "source": [
188
192
  "# Check that the generated set for 2Q Cliffords satisfies 2-design condition\n",
189
193
  "count = []\n",
@@ -205,7 +209,18 @@
205
209
  "count.append((2**4) * K)\n",
206
210
  "\n",
207
211
  "print(f\"\\nSum: {sum(count)/K**2}\")"
208
- ]
212
+ ],
213
+ "outputs": [
214
+ {
215
+ "name": "stdout",
216
+ "output_type": "stream",
217
+ "text": [
218
+ " ... 0 terms left \n",
219
+ "Sum: 2.0\n"
220
+ ]
221
+ }
222
+ ],
223
+ "execution_count": 3
209
224
  },
210
225
  {
211
226
  "cell_type": "markdown",
@@ -217,29 +232,28 @@
217
232
  },
218
233
  {
219
234
  "cell_type": "code",
220
- "execution_count": 4,
221
235
  "id": "e1198a76-0c0b-441c-bee2-6a85f50f506a",
222
- "metadata": {},
223
- "outputs": [],
236
+ "metadata": {
237
+ "ExecuteTime": {
238
+ "end_time": "2025-03-24T13:51:20.804832Z",
239
+ "start_time": "2025-03-24T13:51:20.799079Z"
240
+ }
241
+ },
224
242
  "source": [
225
243
  "clifford_2qg = {}"
226
- ]
244
+ ],
245
+ "outputs": [],
246
+ "execution_count": 4
227
247
  },
228
248
  {
229
249
  "cell_type": "code",
230
- "execution_count": 5,
231
250
  "id": "347a9a5e-ba45-4d0b-968b-30a571e2e7bb",
232
- "metadata": {},
233
- "outputs": [
234
- {
235
- "name": "stdout",
236
- "output_type": "stream",
237
- "text": [
238
- "True\n",
239
- "True\n"
240
- ]
251
+ "metadata": {
252
+ "ExecuteTime": {
253
+ "end_time": "2025-03-24T13:51:21.767273Z",
254
+ "start_time": "2025-03-24T13:51:21.413675Z"
241
255
  }
242
- ],
256
+ },
243
257
  "source": [
244
258
  "# Class 1: products of Cliffords\n",
245
259
  "c2q_0 = QuantumCircuit(2)\n",
@@ -256,13 +270,7 @@
256
270
  "\n",
257
271
  "print(counter == 24**2)\n",
258
272
  "print(len(clifford_2qg.values()) == 24**2)"
259
- ]
260
- },
261
- {
262
- "cell_type": "code",
263
- "execution_count": 6,
264
- "id": "c8310054-3ca2-4cf0-906a-2fc0eb07282a",
265
- "metadata": {},
273
+ ],
266
274
  "outputs": [
267
275
  {
268
276
  "name": "stdout",
@@ -273,6 +281,17 @@
273
281
  ]
274
282
  }
275
283
  ],
284
+ "execution_count": 5
285
+ },
286
+ {
287
+ "cell_type": "code",
288
+ "id": "c8310054-3ca2-4cf0-906a-2fc0eb07282a",
289
+ "metadata": {
290
+ "ExecuteTime": {
291
+ "end_time": "2025-03-24T13:51:27.301113Z",
292
+ "start_time": "2025-03-24T13:51:21.978380Z"
293
+ }
294
+ },
276
295
  "source": [
277
296
  "# Class 2: CNOT-like\n",
278
297
  "c2q_0 = QuantumCircuit(2)\n",
@@ -294,13 +313,7 @@
294
313
  "\n",
295
314
  "print(counter == (24**2) * (3**2))\n",
296
315
  "print(len(clifford_2qg.values()) == (24**2) * (3**2) + 24**2)"
297
- ]
298
- },
299
- {
300
- "cell_type": "code",
301
- "execution_count": 7,
302
- "id": "6d483cbf-bc01-45b3-94df-b042c540f67d",
303
- "metadata": {},
316
+ ],
304
317
  "outputs": [
305
318
  {
306
319
  "name": "stdout",
@@ -311,6 +324,17 @@
311
324
  ]
312
325
  }
313
326
  ],
327
+ "execution_count": 6
328
+ },
329
+ {
330
+ "cell_type": "code",
331
+ "id": "6d483cbf-bc01-45b3-94df-b042c540f67d",
332
+ "metadata": {
333
+ "ExecuteTime": {
334
+ "end_time": "2025-03-24T13:51:33.723952Z",
335
+ "start_time": "2025-03-24T13:51:27.308805Z"
336
+ }
337
+ },
314
338
  "source": [
315
339
  "# Class 3: iSWAP-like\n",
316
340
  "c2q_0 = QuantumCircuit(2)\n",
@@ -335,13 +359,7 @@
335
359
  "\n",
336
360
  "print(counter == (24**2) * (3**2))\n",
337
361
  "print(len(clifford_2qg.values()) == 2 * (24**2) * (3**2) + 24**2)"
338
- ]
339
- },
340
- {
341
- "cell_type": "code",
342
- "execution_count": 8,
343
- "id": "5db95a04-c3ea-4791-a2d3-586c15838837",
344
- "metadata": {},
362
+ ],
345
363
  "outputs": [
346
364
  {
347
365
  "name": "stdout",
@@ -352,6 +370,17 @@
352
370
  ]
353
371
  }
354
372
  ],
373
+ "execution_count": 7
374
+ },
375
+ {
376
+ "cell_type": "code",
377
+ "id": "5db95a04-c3ea-4791-a2d3-586c15838837",
378
+ "metadata": {
379
+ "ExecuteTime": {
380
+ "end_time": "2025-03-24T13:51:34.503102Z",
381
+ "start_time": "2025-03-24T13:51:33.757250Z"
382
+ }
383
+ },
355
384
  "source": [
356
385
  "# Class 4: SWAP-like\n",
357
386
  "c2q_0 = QuantumCircuit(2)\n",
@@ -376,7 +405,18 @@
376
405
  "\n",
377
406
  "print(counter == 24**2)\n",
378
407
  "print(len(clifford_2qg.values()) == 2 * ((24**2) * (3**2) + 24**2))"
379
- ]
408
+ ],
409
+ "outputs": [
410
+ {
411
+ "name": "stdout",
412
+ "output_type": "stream",
413
+ "text": [
414
+ "True\n",
415
+ "True\n"
416
+ ]
417
+ }
418
+ ],
419
+ "execution_count": 8
380
420
  },
381
421
  {
382
422
  "cell_type": "markdown",
@@ -388,26 +428,36 @@
388
428
  },
389
429
  {
390
430
  "cell_type": "code",
391
- "execution_count": 9,
392
431
  "id": "250e91547db494cc",
393
- "metadata": {},
394
- "outputs": [],
432
+ "metadata": {
433
+ "ExecuteTime": {
434
+ "end_time": "2025-03-24T13:51:34.559019Z",
435
+ "start_time": "2025-03-24T13:51:34.539697Z"
436
+ }
437
+ },
395
438
  "source": [
396
439
  "clifford_1qg = {str(Clifford(c[i]).to_labels(mode=\"B\")): c[i] for i in range(24)}\n",
397
440
  "with open('clifford_1q.pkl', 'wb') as f:\n",
398
441
  " pickle.dump(clifford_1qg, f)"
399
- ]
442
+ ],
443
+ "outputs": [],
444
+ "execution_count": 9
400
445
  },
401
446
  {
402
447
  "cell_type": "code",
403
- "execution_count": 10,
404
448
  "id": "7d8fcd1e-4a39-4a20-a539-3a2a74b17dc0",
405
- "metadata": {},
406
- "outputs": [],
449
+ "metadata": {
450
+ "ExecuteTime": {
451
+ "end_time": "2025-03-24T13:51:35.732511Z",
452
+ "start_time": "2025-03-24T13:51:34.602303Z"
453
+ }
454
+ },
407
455
  "source": [
408
456
  "with open('clifford_2q.pkl', 'wb') as f:\n",
409
457
  " pickle.dump(clifford_2qg, f)"
410
- ]
458
+ ],
459
+ "outputs": [],
460
+ "execution_count": 10
411
461
  },
412
462
  {
413
463
  "cell_type": "markdown",