iqm-benchmarks 2.11__tar.gz → 2.13__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 (102) hide show
  1. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/.gitignore +1 -0
  2. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/CHANGELOG.rst +8 -0
  3. {iqm_benchmarks-2.11/src/iqm_benchmarks.egg-info → iqm_benchmarks-2.13}/PKG-INFO +2 -2
  4. iqm_benchmarks-2.13/docs/development/development.rst +9 -0
  5. {iqm_benchmarks-2.11/examples → iqm_benchmarks-2.13/docs/development}/generate_2qubit_cliffords.ipynb +157 -34
  6. {iqm_benchmarks-2.11/docs → iqm_benchmarks-2.13/docs/examples}/example_clifford_rb.ipynb +1 -1
  7. iqm_benchmarks-2.13/docs/examples/example_clops.ipynb +383 -0
  8. iqm_benchmarks-2.13/docs/examples/example_experiment_all.ipynb +2361 -0
  9. iqm_benchmarks-2.13/docs/examples/example_ghz.ipynb +234 -0
  10. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13/docs}/examples/example_gst.ipynb +6 -6
  11. iqm_benchmarks-2.13/docs/examples/example_interleaved_rb.ipynb +697 -0
  12. iqm_benchmarks-2.13/docs/examples/example_mirror_rb.ipynb +548 -0
  13. iqm_benchmarks-2.13/docs/examples/example_qscore.ipynb +285 -0
  14. iqm_benchmarks-2.13/docs/examples/example_quantum_volume.ipynb +996 -0
  15. iqm_benchmarks-2.13/docs/examples/example_quantum_volume_deneb.ipynb +704 -0
  16. iqm_benchmarks-2.13/docs/examples/examples.rst +17 -0
  17. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/docs/index.rst +2 -1
  18. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/pyproject.toml +1 -0
  19. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm/benchmarks/compressive_gst/compressive_gst.py +5 -1
  20. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm/benchmarks/entanglement/ghz.py +65 -51
  21. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm/benchmarks/optimization/qscore.py +11 -4
  22. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm/benchmarks/quantum_volume/clops.py +2 -2
  23. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm/benchmarks/randomized_benchmarking/mirror_rb/mirror_rb.py +12 -5
  24. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm/benchmarks/utils.py +20 -4
  25. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13/src/iqm_benchmarks.egg-info}/PKG-INFO +2 -2
  26. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm_benchmarks.egg-info/SOURCES.txt +14 -12
  27. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/tests/test_ghz.py +10 -4
  28. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/tests/test_gst.py +3 -1
  29. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/tests/test_qscore.py +2 -0
  30. iqm_benchmarks-2.11/docs/examples.rst +0 -7
  31. iqm_benchmarks-2.11/examples/example_clops.ipynb +0 -231
  32. iqm_benchmarks-2.11/examples/example_experiment_all.ipynb +0 -787
  33. iqm_benchmarks-2.11/examples/example_ghz.ipynb +0 -234
  34. iqm_benchmarks-2.11/examples/example_interleaved_rb.ipynb +0 -329
  35. iqm_benchmarks-2.11/examples/example_mirror_rb.ipynb +0 -252
  36. iqm_benchmarks-2.11/examples/example_qscore.ipynb +0 -267
  37. iqm_benchmarks-2.11/examples/example_quantum_volume.ipynb +0 -996
  38. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/.github/workflows/main.yml +0 -0
  39. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/.github/workflows/publish.yml +0 -0
  40. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/.github/workflows/tag_and_release.yml +0 -0
  41. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/LICENSE +0 -0
  42. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/MANIFEST.in +0 -0
  43. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/README.md +0 -0
  44. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/benchmark_runner.py +0 -0
  45. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/docbuild +0 -0
  46. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/docs/API.rst +0 -0
  47. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/docs/Makefile +0 -0
  48. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/docs/_static/images/favicon.ico +0 -0
  49. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/docs/_static/images/logo.png +0 -0
  50. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/docs/_templates/autosummary-class-template.rst +0 -0
  51. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/docs/_templates/autosummary-module-template.rst +0 -0
  52. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/docs/changelog.rst +0 -0
  53. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/docs/conf.py +0 -0
  54. {iqm_benchmarks-2.11/examples → iqm_benchmarks-2.13/docs/development}/how_to_make_your_own_benchmark.ipynb +0 -0
  55. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/docs/license.rst +0 -0
  56. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/docs/readme.md +0 -0
  57. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/format +0 -0
  58. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/requirements.txt +0 -0
  59. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/scheduled_experiments/adonis/__init__.py +0 -0
  60. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/scheduled_experiments/adonis/weekly.py +0 -0
  61. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/setup.cfg +0 -0
  62. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm/benchmarks/__init__.py +0 -0
  63. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm/benchmarks/benchmark.py +0 -0
  64. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm/benchmarks/benchmark_definition.py +0 -0
  65. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm/benchmarks/circuit_containers.py +0 -0
  66. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm/benchmarks/compressive_gst/__init__.py +0 -0
  67. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm/benchmarks/compressive_gst/gst_analysis.py +0 -0
  68. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm/benchmarks/entanglement/__init__.py +0 -0
  69. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm/benchmarks/logging_config.py +0 -0
  70. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm/benchmarks/optimization/__init__.py +0 -0
  71. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm/benchmarks/quantum_volume/__init__.py +0 -0
  72. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm/benchmarks/quantum_volume/quantum_volume.py +0 -0
  73. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm/benchmarks/randomized_benchmarking/__init__.py +0 -0
  74. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm/benchmarks/randomized_benchmarking/clifford_1q.pkl +0 -0
  75. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm/benchmarks/randomized_benchmarking/clifford_2q.pkl +0 -0
  76. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm/benchmarks/randomized_benchmarking/clifford_rb/__init__.py +0 -0
  77. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm/benchmarks/randomized_benchmarking/clifford_rb/clifford_rb.py +0 -0
  78. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm/benchmarks/randomized_benchmarking/interleaved_rb/__init__.py +0 -0
  79. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm/benchmarks/randomized_benchmarking/interleaved_rb/interleaved_rb.py +0 -0
  80. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm/benchmarks/randomized_benchmarking/mirror_rb/__init__.py +0 -0
  81. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm/benchmarks/randomized_benchmarking/multi_lmfit.py +0 -0
  82. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm/benchmarks/randomized_benchmarking/randomized_benchmarking_common.py +0 -0
  83. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm/benchmarks/readout_mitigation.py +0 -0
  84. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm_benchmarks.egg-info/dependency_links.txt +0 -0
  85. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm_benchmarks.egg-info/requires.txt +0 -0
  86. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/iqm_benchmarks.egg-info/top_level.txt +0 -0
  87. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/mGST/LICENSE +0 -0
  88. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/mGST/README.md +0 -0
  89. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/mGST/additional_fns.py +0 -0
  90. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/mGST/algorithm.py +0 -0
  91. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/mGST/compatibility.py +0 -0
  92. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/mGST/low_level_jit.py +0 -0
  93. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/mGST/optimization.py +0 -0
  94. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/mGST/qiskit_interface.py +0 -0
  95. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/mGST/reporting/figure_gen.py +0 -0
  96. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/src/mGST/reporting/reporting.py +0 -0
  97. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/tag-from-pipeline.sh +0 -0
  98. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/test +0 -0
  99. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/tests/test_qv.py +0 -0
  100. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/tests/test_rb.py +0 -0
  101. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/tests/unit/test_benchmark_circuit.py +0 -0
  102. {iqm_benchmarks-2.11 → iqm_benchmarks-2.13}/update-requirements.py +0 -0
@@ -7,6 +7,7 @@ __pycache__/
7
7
  *.png
8
8
  *.jpg
9
9
  *.jpeg
10
+ *.pkl
10
11
 
11
12
  # Package files
12
13
  *.eggs/
@@ -2,6 +2,14 @@
2
2
  Changelog
3
3
  =========
4
4
 
5
+ Version 2.13
6
+ ============
7
+ * Move all example notebooks to docs. `#30 <https://github.com/iqm-finland/iqm-benchmarks/pull/30>`_
8
+
9
+ Version 2.12
10
+ ============
11
+ * Added compatibility with IQM-Deneb by adapting the transpilation behavior in several benchmarks.
12
+
5
13
  Version 2.11
6
14
  ============
7
15
  * Report average native single-qubit gate fidelity estimates in observations of 1Q Clifford RB and 1Q IRB, and display in plots of 1Q Clifford RB.
@@ -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
@@ -0,0 +1,9 @@
1
+ Development
2
+ ###########
3
+ This section provides examples and guidance on how to create benchmarks based on the IQM Benchmarks package.
4
+
5
+ .. toctree::
6
+ :maxdepth: 1
7
+
8
+ how_to_make_your_own_benchmark
9
+ generate_2qubit_cliffords
@@ -5,6 +5,8 @@
5
5
  "id": "400d93d2-3526-4683-9fef-b831176675e3",
6
6
  "metadata": {},
7
7
  "source": [
8
+ "# 2-Qubit Clifford Group Decomposition\n",
9
+ "\n",
8
10
  "Generate the decomposition of the 2-qubit Clifford group according to: https://arxiv.org/abs/1402.4848\n",
9
11
  "\n",
10
12
  "```\n",
@@ -26,7 +28,7 @@
26
28
  },
27
29
  {
28
30
  "cell_type": "code",
29
- "execution_count": null,
31
+ "execution_count": 1,
30
32
  "id": "2ae19541-f7d4-4072-a796-fbfc765b0ecc",
31
33
  "metadata": {},
32
34
  "outputs": [],
@@ -44,12 +46,12 @@
44
46
  "id": "e800a91a-6c50-43f8-8a7d-f595ab70c73f",
45
47
  "metadata": {},
46
48
  "source": [
47
- "# Generate the 1Q Clifford group"
49
+ "## Generate the 1Q Clifford group"
48
50
  ]
49
51
  },
50
52
  {
51
53
  "cell_type": "code",
52
- "execution_count": null,
54
+ "execution_count": 2,
53
55
  "id": "8df925c9-d88a-47e2-b615-92cbf37fc347",
54
56
  "metadata": {},
55
57
  "outputs": [],
@@ -169,10 +171,19 @@
169
171
  },
170
172
  {
171
173
  "cell_type": "code",
172
- "execution_count": null,
174
+ "execution_count": 3,
173
175
  "id": "803560e9-cc5c-4d65-a623-03f596e27383",
174
176
  "metadata": {},
175
- "outputs": [],
177
+ "outputs": [
178
+ {
179
+ "name": "stdout",
180
+ "output_type": "stream",
181
+ "text": [
182
+ " ... 0 terms left \n",
183
+ "Sum: 2.0\n"
184
+ ]
185
+ }
186
+ ],
176
187
  "source": [
177
188
  "# Check that the generated set for 2Q Cliffords satisfies 2-design condition\n",
178
189
  "count = []\n",
@@ -201,12 +212,12 @@
201
212
  "id": "31f039ea-13ce-4d1f-859c-eef8cb79d853",
202
213
  "metadata": {},
203
214
  "source": [
204
- "# Generate the 2Q Clifford group"
215
+ "## Generate the 2Q Clifford group"
205
216
  ]
206
217
  },
207
218
  {
208
219
  "cell_type": "code",
209
- "execution_count": null,
220
+ "execution_count": 4,
210
221
  "id": "e1198a76-0c0b-441c-bee2-6a85f50f506a",
211
222
  "metadata": {},
212
223
  "outputs": [],
@@ -216,10 +227,19 @@
216
227
  },
217
228
  {
218
229
  "cell_type": "code",
219
- "execution_count": null,
230
+ "execution_count": 5,
220
231
  "id": "347a9a5e-ba45-4d0b-968b-30a571e2e7bb",
221
232
  "metadata": {},
222
- "outputs": [],
233
+ "outputs": [
234
+ {
235
+ "name": "stdout",
236
+ "output_type": "stream",
237
+ "text": [
238
+ "True\n",
239
+ "True\n"
240
+ ]
241
+ }
242
+ ],
223
243
  "source": [
224
244
  "# Class 1: products of Cliffords\n",
225
245
  "c2q_0 = QuantumCircuit(2)\n",
@@ -240,10 +260,19 @@
240
260
  },
241
261
  {
242
262
  "cell_type": "code",
243
- "execution_count": null,
263
+ "execution_count": 6,
244
264
  "id": "c8310054-3ca2-4cf0-906a-2fc0eb07282a",
245
265
  "metadata": {},
246
- "outputs": [],
266
+ "outputs": [
267
+ {
268
+ "name": "stdout",
269
+ "output_type": "stream",
270
+ "text": [
271
+ "True\n",
272
+ "True\n"
273
+ ]
274
+ }
275
+ ],
247
276
  "source": [
248
277
  "# Class 2: CNOT-like\n",
249
278
  "c2q_0 = QuantumCircuit(2)\n",
@@ -269,10 +298,19 @@
269
298
  },
270
299
  {
271
300
  "cell_type": "code",
272
- "execution_count": null,
301
+ "execution_count": 7,
273
302
  "id": "6d483cbf-bc01-45b3-94df-b042c540f67d",
274
303
  "metadata": {},
275
- "outputs": [],
304
+ "outputs": [
305
+ {
306
+ "name": "stdout",
307
+ "output_type": "stream",
308
+ "text": [
309
+ "True\n",
310
+ "True\n"
311
+ ]
312
+ }
313
+ ],
276
314
  "source": [
277
315
  "# Class 3: iSWAP-like\n",
278
316
  "c2q_0 = QuantumCircuit(2)\n",
@@ -301,10 +339,19 @@
301
339
  },
302
340
  {
303
341
  "cell_type": "code",
304
- "execution_count": null,
342
+ "execution_count": 8,
305
343
  "id": "5db95a04-c3ea-4791-a2d3-586c15838837",
306
344
  "metadata": {},
307
- "outputs": [],
345
+ "outputs": [
346
+ {
347
+ "name": "stdout",
348
+ "output_type": "stream",
349
+ "text": [
350
+ "True\n",
351
+ "True\n"
352
+ ]
353
+ }
354
+ ],
308
355
  "source": [
309
356
  "# Class 4: SWAP-like\n",
310
357
  "c2q_0 = QuantumCircuit(2)\n",
@@ -336,12 +383,12 @@
336
383
  "id": "bf436f32-63ac-45b6-8192-7ef1e0e6257d",
337
384
  "metadata": {},
338
385
  "source": [
339
- "# Dump on a pickle file"
386
+ "## Dump on a pickle file"
340
387
  ]
341
388
  },
342
389
  {
343
390
  "cell_type": "code",
344
- "execution_count": null,
391
+ "execution_count": 9,
345
392
  "id": "250e91547db494cc",
346
393
  "metadata": {},
347
394
  "outputs": [],
@@ -353,7 +400,7 @@
353
400
  },
354
401
  {
355
402
  "cell_type": "code",
356
- "execution_count": null,
403
+ "execution_count": 10,
357
404
  "id": "7d8fcd1e-4a39-4a20-a539-3a2a74b17dc0",
358
405
  "metadata": {},
359
406
  "outputs": [],
@@ -367,12 +414,12 @@
367
414
  "id": "7c9b4518-36a9-403d-b70a-5424afb7c8ff",
368
415
  "metadata": {},
369
416
  "source": [
370
- "# Load"
417
+ "## Load"
371
418
  ]
372
419
  },
373
420
  {
374
421
  "cell_type": "code",
375
- "execution_count": null,
422
+ "execution_count": 11,
376
423
  "id": "b841cf44-34c5-426a-bfda-0c47dd02ebc4",
377
424
  "metadata": {},
378
425
  "outputs": [],
@@ -386,12 +433,12 @@
386
433
  "id": "5123fd51-b8f4-461b-b19b-8672f9677488",
387
434
  "metadata": {},
388
435
  "source": [
389
- "# Count elements"
436
+ "## Count elements"
390
437
  ]
391
438
  },
392
439
  {
393
440
  "cell_type": "code",
394
- "execution_count": null,
441
+ "execution_count": 12,
395
442
  "id": "103f8938-f530-4a63-a82e-3bfc54eb91a2",
396
443
  "metadata": {},
397
444
  "outputs": [],
@@ -422,10 +469,18 @@
422
469
  },
423
470
  {
424
471
  "cell_type": "code",
425
- "execution_count": null,
472
+ "execution_count": 13,
426
473
  "id": "1020eeb4-9148-45e5-83ea-bb67e3d1efa5",
427
474
  "metadata": {},
428
- "outputs": [],
475
+ "outputs": [
476
+ {
477
+ "name": "stdout",
478
+ "output_type": "stream",
479
+ "text": [
480
+ "cz: 1.5, r: 8.2\n"
481
+ ]
482
+ }
483
+ ],
429
484
  "source": [
430
485
  "num_2qcz, num_2qr = count_rcz(list(loaded_dict.values()))\n",
431
486
  "print(f\"cz: {np.mean(num_2qcz)}, r: {np.mean(num_2qr)}\")"
@@ -441,10 +496,18 @@
441
496
  },
442
497
  {
443
498
  "cell_type": "code",
444
- "execution_count": null,
499
+ "execution_count": 14,
445
500
  "id": "1c81dfc7-e731-4ff1-9ef8-65147cca11df",
446
501
  "metadata": {},
447
- "outputs": [],
502
+ "outputs": [
503
+ {
504
+ "name": "stdout",
505
+ "output_type": "stream",
506
+ "text": [
507
+ "cz: 0.0, r: 1.875\n"
508
+ ]
509
+ }
510
+ ],
448
511
  "source": [
449
512
  "num_1qcz, num_1qr = count_rcz(list(clifford_sqg.values()))\n",
450
513
  "print(f\"cz: {np.mean(num_1qcz)}, r: {np.mean(num_1qr)}\")"
@@ -455,15 +518,62 @@
455
518
  "id": "abf1d643-60da-48f3-ac68-f0ce3ec2b7db",
456
519
  "metadata": {},
457
520
  "source": [
458
- "# A way to work out the inverse of sequences"
521
+ "## A way to work out the inverse of sequences"
459
522
  ]
460
523
  },
461
524
  {
462
525
  "cell_type": "code",
463
- "execution_count": null,
526
+ "execution_count": 15,
464
527
  "id": "38cec233-7d90-45bd-baeb-19d9171bbf6a",
465
528
  "metadata": {},
466
- "outputs": [],
529
+ "outputs": [
530
+ {
531
+ "name": "stdout",
532
+ "output_type": "stream",
533
+ "text": [
534
+ "\n",
535
+ "Inverse:\n"
536
+ ]
537
+ },
538
+ {
539
+ "data": {
540
+ "image/png": "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Vl/bN3st6kornf5ZetpY8YSakGdikEsqOCmmcyENSY3Dlf/foo6YOQGnn9/Z7b1JP1qA6LlTcOihDWitb+p33rUlFfAbORymQebOre8ho0KN52Wogb3T3Fo7W+tGjvPB/F+6/bP0tLHi7prIsl7QES+OlpB/WLBxy6668irjcfC4aFT/+zJC70zAVxdK0FLX0Pne8U/ej9hF03Do4V8bh966unvb04jK6Pmbxw2VNajKu4j4JdONx+KkltqyKo86fNZbDfrqV1/T3Fq7vupG7ueoz1KlseLsmsiwXtAVg1xC4vBZ10NmTTW1GLvyu4jOSMflD78+dOYfHoz09Y9hcFAA5mStx4LDL2HegY2dr4emxaG2tNLq/+N45nYkrpiNRce2IeXpRTj2k1chQw366ldf03StXX91I/dz1Gep0lhxdk1kWC/oymQR9yslj2LvTxgu/GgLDi5ZZ2w598cnJAgzXl3TeQbqQC0v3OkRP2Nqb79sqZ2rauAM6fvaf+ZabMGf8oAT8Z3xc523+1m6cqzYOjYcXRdn10S25UA1DHIPJONvEXtKkLuTDCswHYLcE7k7yF1JhuVANTy0TkREJDEGORERkcQY5ERERBLjd+QeSHwkLfWNkImXnw9MDvw5LdZAj+/IZfycXTE2ZK6LDMuBanhDGA8kFgLdTxZhDfTAz9k61oVswUPrREREEmOQExERSYxBTkREJDEGORERkcQY5ERERBJjkBMREUmMQU5ERCQxBjkREZHEGOREREQSY5ATERFJjEFOREQkMQY5ERGRxBjkREREEmOQExERSYxBTkREJDEGORERkcQY5ERERBLzcncDdGaxWNBS3wiVefn5wGQyaVEbe/tKaowBnca6K2oja1283LAeYJC7kRikb8c/ApUtL9wJb39fLWpjb19JjTGg01h3RW1krctyN6wHeGidiIhIYgxyIiIiiTHIiYiIJMYgJyIikhiDnIiISGIMciIiIokxyImIiCTGICciIpIYbwijuLCpSZizd0O355pr61FTVIbCrH/i/BsfwNLaBlXp3n/iGNC9/zrUgEGuiaK92bh6JBcwmeA3YhhGL52B9A2PYWjCKJxYux2q073/xDGge/9VrgGDXBOVeRdRtCe783H+joNYlL0Vid//NnJf3IXGyhqoTPf+E8eA7v1XuQb8jlxT4j7G13IvwGQ2Iyh6JHSje/+JY0D3/qtUAwa5xgJj2gdu4/Wb0JHu/SeOAd37r0oNtAjyiooKZGZmYvTo0fD19cUdd9yBNWvWoLa2Fo8//rjxk3OvvPIKVOblNxg+wYHwCQnCsLFRmPLCEwhJiTO2RsUJH6rTvf/EMaB7/1WugfLfkZ85cwYZGRkoLy9HQEAAxo8fj9LSUmzbtg2FhYWoqqoy3jdhwgSo7M7MZcZ/XRUfOIlPfvE6dKBz/xtagA9LgPcuAx3n5Yq/f7oALIwCgn2gBZ3HgKB7/1WugZfqe+Lz5883QvyZZ57BunXrEBgYaLy2efNm/PznP4eXl5exR56amgqV5b91CMXvn4DZ2wvDx0Yh+ccPICA8BK2NTdCBrv0/Wgb8+gxwo7nna6+eB7b/G3giEXg80TiRV2m6joEOuvdf5RoofWh99erVuHr1KlatWoWXX365M8QFcag9LS0NLS0tiImJQVBQEFRWU1SOsuw8lBz5FJ///j38feWLCJ0Qj6mbnoQOdOz/wRIgM8d6iHdosQCv5QPbzkF5Oo6BrnTvv8o1UDbIz58/j927dyM0NBQbN260+p6JEycaf0Wgd+gI/vT0dPj4+Bh76yq6djrfuBFC7APTMGLSGOhG9f5frQXWfwpYbvP9bxW2773rRPUx0B/d+69SDZQN8l27dqGtrQ3Lly/HkCFDrL7Hz8+vR5B/8cUX2LNnD8LCwjB58mSo7F9bstDW0oo71z4MHanc/z3FQLONN6raVQTtqDwGbofu/VelBsoG+ZEjR4y/9957b6/vEXvftwb59OnTUVZWhn379mHWrFlQ2Y3iclx872NETE/FN6aMg25U7X9jK7Dvsu3T5VYChXLeD8Nuqo6B26V7/1WpgbInu126dMn4Gx0dbfV18d34xx9/3CPIzWbHb9tMmjTJOOHuVt4WM9YhHe702dY9xmElsTV68MH1Dp9/YkIimk2238PYVbVxZP/t7aujDQobjRG/+siuab/7gzVo+GQPPIFsY8DTx7q71gH21saVdfnMA9YD4ijw6dOn7fp/Khvk4hpxob6+3urr4vtzcVa7OAEuNjbWqW0RIV5SUtLj+cGmQYCTbyZUfuIsdoQ/2OvrX10owf9GOu+QUmlZKZosrTZP56jauLL/9vbV0fx9R2KEndN+VdeECitj1R1kGwPuHuueug6wtzaOrEu54usBZYNcbN1UV1cjNzcXU6dO7faaOHS+du1a49/isjNnn9Am2tLbFmfnhb2KigiPsHsvRbba2NtXRxsU2H7uh8VisXlsD/Uxw2fUKHgC2caATmPdFbWRtS4Rdo6D3nJC6yAX32+LM9c3bdqE2bNnIzEx0Xg+JycHK1asMPbGXXUjmN4OlzTXNeDt+EegsoILBfD297V5OhlrY29fHa3NAjx4BLhca1uIe5mAU7tfRbDPq/AEso0Bnca6K2oja10K3LAeUPZkN3GdeEhICK5cuYKkpCSkpKQgISHBuKwsLi4O9913X4/vx4lUYDYBD8bYPt2sCH3u8kakEmWDPDIyEtnZ2Zg3b55xf/Xi4mIEBwdj+/btOHDgAAoKCoz3MchJRfOjgJE27BQMNgOPjHZmi4jIWZQ9tC6MGzcO+/fv7/H8zZs3jWAXZ6gnJye7pW1EzhToDWy9C3jqOFDd1P8h9f/5JjB2qKtaR0SOpHSQ9+bs2bPGiUDie3N/f/8er2dlZRl/z5071+2xuJWruJSMSAajg4A/3QNszgOOf2n9PWOGAj9NAiaFurp1ROQoWgZ5Xl5en4fVly5davXxypUrsWPHDhe0kMgxIgOAbXe137JV/PpZSV37yXAhPkBGJJA0TP0fSyFSHYPcCrG3TqRaoP9YzptWEVE/GOSKip53FyJnfRM+w4ZgaEIkWhua0FDxFU48+0fjloSePv+Bti38nhTkrNuBGa/91K72BcaG4Z6tT8MnOBDNN+pwbM0ruF7Qfktf8nwcA3qvA5zVZk8dE1oGecd92FUWNXcKivcdR1tzi/GTfcLYH8zBtN8+hQ+XrPP4+Q+0bYXvtt+iNP+tw3a171ubn0TBzsP44s8fGQv/3VtXYX/Gs05vOzkGx4De6wBntdlTx4SWQS67wUH+WHh0Cwb5DkZdaQXMPt4IjBqJwqx/4PjPXoPJaxBGTh5jbC1aWr6+VeC13AtIfmqB2+c/UH21T2xZd21bx8JqS/t8Q4IQkhaPQ8ueNx5fOnASd73wOAJjwjx2T0M3uo8B3dcB7mizrwePCQa5hJpq6lD0l2w01zbgsy1ZiJiZhtTVi43BKoRPS8aXOfndBqsw/om5uHwwx+3zH6i+2hcxI81q22xpX8CoUNT/pxqW1q9vs3izpMJ43t0LLLXTfQzovg5wR5sDPHhMMMg90Nz3f4OguHCrr+2bvRZ1pZUITo7F+dc/MJ4LSY1H1ecXO98TNWcyLv3tVLfpUlYvNrYcjz+04bba4Oz5D1Rv7bPWNne0j5xP5THAdYBn1sRTMcg90Afzf9nve4KTYjoHaUhqHK502aKMmDkBp5/f2fk46UcLED13Cg49tAGt9f3cHcRF8x+o3tp3a9vsaV9tSQX8Rg6HaZC5c+t7yKhQ43nyHCqPAa4DPK8mtR68XlD2Fq0q8w8LFtfIoa68yngcPC4a1f++bPw79M4E4yf5WuoajMfjn7wfsYum4dDDvzYOPXV197anEZWR7rT5O0tv7bu1bfb2v6GyBlV5FxG/ZLrxWJzUUltW5fbDZ/Q13ceA7usAd9SkwYPHBINcQuLwUddDRk01tRi78rvGv6Mz0nH5w/bDR/7hwUhf/xgGBwVgTtZ6LDj8EuYd2Ng5XWhaHGpLK502f2fprX1d2zaQ/gvHM7cjccVsLDq2DSlPL8Kxn3jGL4JRO93HgO7rAHfUxJPHhMnCu5+4jTN+pm/hR1twcMk6Y+uxLz4hQZjx6prOMzAdPf8Oywt3uuynHW1pm739d0ZfSY0x4MqxLtM6wN7aOLIuC51cE3evBxjkbiTr7+3KuHJzBQa5Y8k2BnQa67Zyd5Crvh7goXUiIiKJMciJiIgkxiAnIiKSGL8jdyNR+pb6RqjMy88HJjt+J1PG2tjbV1JjDOg01l1RG1nr4uWG9QCDnIiISGI8tE5ERCQxBjkREZHEGOREREQSY5ATERFJjEFOREQkMQY5ERGRxBjkREREEmOQExERSYxBTkREJDEGORERkcQY5ERERBJjkBMREUmMQU5ERCQxBjkREZHEGOREREQSY5ATERFJjEFOREQkMQY5ERGRxBjkREREEmOQExERSYxBTkREJDEGORERkcQY5ERERBJjkBMREUmMQU5ERAR5/R8te8P3hKpfjgAAAABJRU5ErkJggg==",
541
+ "text/plain": [
542
+ "<Figure size 621.739x200.667 with 1 Axes>"
543
+ ]
544
+ },
545
+ "metadata": {},
546
+ "output_type": "display_data"
547
+ },
548
+ {
549
+ "name": "stdout",
550
+ "output_type": "stream",
551
+ "text": [
552
+ "\n",
553
+ "Composition of the two is identity modulo phase: True\n"
554
+ ]
555
+ },
556
+ {
557
+ "data": {
558
+ "text/latex": [
559
+ "$$\n",
560
+ "\n",
561
+ "\\begin{bmatrix}\n",
562
+ "1 & 0 & 0 & 0 \\\\\n",
563
+ " 0 & 1 & 0 & 0 \\\\\n",
564
+ " 0 & 0 & 1 & 0 \\\\\n",
565
+ " 0 & 0 & 0 & 1 \\\\\n",
566
+ " \\end{bmatrix}\n",
567
+ "$$"
568
+ ],
569
+ "text/plain": [
570
+ "<IPython.core.display.Latex object>"
571
+ ]
572
+ },
573
+ "metadata": {},
574
+ "output_type": "display_data"
575
+ }
576
+ ],
467
577
  "source": [
468
578
  "length = 200\n",
469
579
  "g = []\n",
@@ -495,7 +605,7 @@
495
605
  "id": "fd0d7897-3905-4f44-9f3a-46b449fc5285",
496
606
  "metadata": {},
497
607
  "source": [
498
- "# 2-design condition\n",
608
+ "## 2-design condition\n",
499
609
  "Verify the condition $\\displaystyle{\\sum_{k,\\,k^\\prime=1}^K}\\left|\\mathrm{tr}\\left(U_{k^\\prime}^{\\dagger}U_k\\right)\\right|^4/K^2 = 2$ (Eq. S2)\n",
500
610
  "\n",
501
611
  "**WARNING**: in total there are $n=11,520^2 = 132,710,400$ values in the sum !\n",
@@ -505,10 +615,23 @@
505
615
  },
506
616
  {
507
617
  "cell_type": "code",
508
- "execution_count": null,
618
+ "execution_count": 16,
509
619
  "id": "0bacef12-79f5-4efa-9973-fee6a69d24c6",
510
620
  "metadata": {},
511
- "outputs": [],
621
+ "outputs": [
622
+ {
623
+ "name": "stdout",
624
+ "output_type": "stream",
625
+ "text": [
626
+ "Converting Cliffords to Operators ...\n",
627
+ "Computing the sum ...\n",
628
+ " ... 0 terms left \n",
629
+ "Done.\n",
630
+ "\n",
631
+ "Sum: 2.0\n"
632
+ ]
633
+ }
634
+ ],
512
635
  "source": [
513
636
  "# Check that the generated set for 2Q Cliffords satisfies 2-design condition\n",
514
637
  "count = []\n",
@@ -551,9 +674,9 @@
551
674
  ],
552
675
  "metadata": {
553
676
  "kernelspec": {
554
- "display_name": "qcvv-suite",
677
+ "display_name": "env-iqm-benchmarks",
555
678
  "language": "python",
556
- "name": "qcvv-suite"
679
+ "name": "python3"
557
680
  },
558
681
  "language_info": {
559
682
  "codemirror_mode": {
@@ -5,7 +5,7 @@
5
5
  "id": "e65a9545",
6
6
  "metadata": {},
7
7
  "source": [
8
- "# Clifford Randomized Benchmarking (RB) Example"
8
+ "# Clifford Randomized Benchmarking (RB)"
9
9
  ]
10
10
  },
11
11
  {