iqm-pulse 9.3__tar.gz → 9.5__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.
Files changed (81) hide show
  1. {iqm_pulse-9.3 → iqm_pulse-9.5}/CHANGELOG.rst +17 -0
  2. {iqm_pulse-9.3/src/iqm_pulse.egg-info → iqm_pulse-9.5}/PKG-INFO +1 -1
  3. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/gates/__init__.py +2 -0
  4. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/gates/default_gates.py +2 -1
  5. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/gates/rz.py +21 -1
  6. {iqm_pulse-9.3 → iqm_pulse-9.5/src/iqm_pulse.egg-info}/PKG-INFO +1 -1
  7. iqm_pulse-9.5/version.txt +1 -0
  8. iqm_pulse-9.3/version.txt +0 -1
  9. {iqm_pulse-9.3 → iqm_pulse-9.5}/LICENSE.txt +0 -0
  10. {iqm_pulse-9.3 → iqm_pulse-9.5}/MANIFEST.in +0 -0
  11. {iqm_pulse-9.3 → iqm_pulse-9.5}/README.rst +0 -0
  12. {iqm_pulse-9.3 → iqm_pulse-9.5}/docs/API.rst +0 -0
  13. {iqm_pulse-9.3 → iqm_pulse-9.5}/docs/Makefile +0 -0
  14. {iqm_pulse-9.3 → iqm_pulse-9.5}/docs/_static/.gitignore +0 -0
  15. {iqm_pulse-9.3 → iqm_pulse-9.5}/docs/_static/css/custom.css +0 -0
  16. {iqm_pulse-9.3 → iqm_pulse-9.5}/docs/_static/images/favicon.ico +0 -0
  17. {iqm_pulse-9.3 → iqm_pulse-9.5}/docs/_static/images/feedback_timing.svg +0 -0
  18. {iqm_pulse-9.3 → iqm_pulse-9.5}/docs/_static/images/logo.png +0 -0
  19. {iqm_pulse-9.3 → iqm_pulse-9.5}/docs/_static/images/playlist_breakdown.svg +0 -0
  20. {iqm_pulse-9.3 → iqm_pulse-9.5}/docs/_static/images/pulse_timing.svg +0 -0
  21. {iqm_pulse-9.3 → iqm_pulse-9.5}/docs/_static/images/readout_timing.svg +0 -0
  22. {iqm_pulse-9.3 → iqm_pulse-9.5}/docs/_templates/autosummary-class-template.rst +0 -0
  23. {iqm_pulse-9.3 → iqm_pulse-9.5}/docs/_templates/autosummary-module-template.rst +0 -0
  24. {iqm_pulse-9.3 → iqm_pulse-9.5}/docs/changelog.rst +0 -0
  25. {iqm_pulse-9.3 → iqm_pulse-9.5}/docs/concepts.rst +0 -0
  26. {iqm_pulse-9.3 → iqm_pulse-9.5}/docs/conf.py +0 -0
  27. {iqm_pulse-9.3 → iqm_pulse-9.5}/docs/custom_gates.rst +0 -0
  28. {iqm_pulse-9.3 → iqm_pulse-9.5}/docs/index.rst +0 -0
  29. {iqm_pulse-9.3 → iqm_pulse-9.5}/docs/license.rst +0 -0
  30. {iqm_pulse-9.3 → iqm_pulse-9.5}/docs/pulse_timing.rst +0 -0
  31. {iqm_pulse-9.3 → iqm_pulse-9.5}/docs/references.bib +0 -0
  32. {iqm_pulse-9.3 → iqm_pulse-9.5}/docs/references.rst +0 -0
  33. {iqm_pulse-9.3 → iqm_pulse-9.5}/docs/using_builder.rst +0 -0
  34. {iqm_pulse-9.3 → iqm_pulse-9.5}/pyproject.toml +0 -0
  35. {iqm_pulse-9.3 → iqm_pulse-9.5}/requirements/base.in +0 -0
  36. {iqm_pulse-9.3 → iqm_pulse-9.5}/requirements/base.txt +0 -0
  37. {iqm_pulse-9.3 → iqm_pulse-9.5}/setup.cfg +0 -0
  38. {iqm_pulse-9.3 → iqm_pulse-9.5}/setup.py +0 -0
  39. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/__init__.py +0 -0
  40. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/base_utils.py +0 -0
  41. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/builder.py +0 -0
  42. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/circuit_operations.py +0 -0
  43. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/gate_implementation.py +0 -0
  44. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/gates/barrier.py +0 -0
  45. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/gates/conditional.py +0 -0
  46. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/gates/cz.py +0 -0
  47. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/gates/delay.py +0 -0
  48. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/gates/enums.py +0 -0
  49. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/gates/flux_multiplexer.py +0 -0
  50. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/gates/measure.py +0 -0
  51. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/gates/move.py +0 -0
  52. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/gates/prx.py +0 -0
  53. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/gates/reset.py +0 -0
  54. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/gates/sx.py +0 -0
  55. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/gates/u.py +0 -0
  56. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/playlist/__init__.py +0 -0
  57. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/playlist/channel.py +0 -0
  58. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/playlist/fast_drag.py +0 -0
  59. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/playlist/hd_drag.py +0 -0
  60. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/playlist/instructions.py +0 -0
  61. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/playlist/playlist.py +0 -0
  62. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/playlist/schedule.py +0 -0
  63. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/playlist/visualisation/__init__.py +0 -0
  64. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/playlist/visualisation/base.py +0 -0
  65. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/playlist/visualisation/templates/playlist_inspection.jinja2 +0 -0
  66. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/playlist/visualisation/templates/static/logo.png +0 -0
  67. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/playlist/visualisation/templates/static/moment.min.js +0 -0
  68. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/playlist/visualisation/templates/static/vis-timeline-graph2d.min.css +0 -0
  69. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/playlist/visualisation/templates/static/vis-timeline-graph2d.min.js +0 -0
  70. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/playlist/waveforms.py +0 -0
  71. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/quantum_ops.py +0 -0
  72. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/scheduler.py +0 -0
  73. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/timebox.py +0 -0
  74. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/utils.py +0 -0
  75. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm/pulse/validation.py +0 -0
  76. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm_pulse.egg-info/SOURCES.txt +0 -0
  77. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm_pulse.egg-info/dependency_links.txt +0 -0
  78. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm_pulse.egg-info/requires.txt +0 -0
  79. {iqm_pulse-9.3 → iqm_pulse-9.5}/src/iqm_pulse.egg-info/top_level.txt +0 -0
  80. {iqm_pulse-9.3 → iqm_pulse-9.5}/tests/.pylintrc +0 -0
  81. {iqm_pulse-9.3 → iqm_pulse-9.5}/tests/__init__.py +0 -0
@@ -2,6 +2,23 @@
2
2
  Changelog
3
3
  =========
4
4
 
5
+ Version 9.5 (2025-04-25)
6
+ ========================
7
+
8
+ Features
9
+ --------
10
+
11
+ - Add the CompositeGate :class:`RZ_PRX_Composite`, which is a physical Z rotation gate implemented as a sequence of
12
+ PRX gates: RZ(theta) = RY(pi/2) - RX(theta) - RY(-pi/2).
13
+
14
+ Version 9.4 (2025-04-22)
15
+ ========================
16
+
17
+ Features
18
+ --------
19
+
20
+ - Update dependency on exa-common
21
+
5
22
  Version 9.3 (2025-04-17)
6
23
  ========================
7
24
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: iqm-pulse
3
- Version: 9.3
3
+ Version: 9.5
4
4
  Summary: A Python-based project for providing interface and implementations for control pulses.
5
5
  Author-email: IQM Finland Oy <info@meetiqm.com>
6
6
  License: Apache License
@@ -66,6 +66,7 @@ from iqm.pulse.gates.reset import Reset_Conditional, Reset_Wait
66
66
  from iqm.pulse.gates.rz import (
67
67
  RZ_ACStarkShift_CosineRiseFall,
68
68
  RZ_ACStarkShift_smoothConstant,
69
+ RZ_PRX_Composite,
69
70
  RZ_Virtual,
70
71
  get_unitary_rz,
71
72
  )
@@ -88,6 +89,7 @@ _exposed_implementations: dict[str, type[GateImplementation]] = {
88
89
  PRX_HdDragSX,
89
90
  SXGate,
90
91
  UGate,
92
+ RZ_PRX_Composite,
91
93
  RZ_Virtual,
92
94
  CZ_CRF_ACStarkCRF,
93
95
  CZ_Slepian_ACStarkCRF,
@@ -47,6 +47,7 @@ from iqm.pulse.gates.prx import (
47
47
  from iqm.pulse.gates.reset import Reset_Conditional, Reset_Wait
48
48
  from iqm.pulse.gates.rz import (
49
49
  RZ_ACStarkShift_CosineRiseFall,
50
+ RZ_PRX_Composite,
50
51
  RZ_Virtual,
51
52
  get_unitary_rz,
52
53
  )
@@ -71,7 +72,7 @@ _default_implementations = {
71
72
  },
72
73
  "u": {"prx_u": UGate},
73
74
  "sx": {"prx_sx": SXGate},
74
- "rz": {"virtual": RZ_Virtual},
75
+ "rz": {"virtual": RZ_Virtual, "prx_composite": RZ_PRX_Composite},
75
76
  "rz_physical": {"ac_stark_crf": RZ_ACStarkShift_CosineRiseFall},
76
77
  "cz": {
77
78
  "tgss": CZ_TruncatedGaussianSmoothedSquare,
@@ -32,6 +32,7 @@ import numpy as np
32
32
  from exa.common.data.parameter import Parameter
33
33
  from iqm.pulse.gate_implementation import (
34
34
  SINGLE_COMPONENTS_WITH_DRIVE_LOCUS_MAPPING,
35
+ CompositeGate,
35
36
  GateImplementation,
36
37
  Locus,
37
38
  OILCalibrationData,
@@ -46,7 +47,7 @@ from iqm.pulse.utils import normalize_angle, phase_transformation
46
47
  if TYPE_CHECKING: # pragma: no cover
47
48
  from iqm.pulse.builder import ScheduleBuilder
48
49
  from iqm.pulse.quantum_ops import QuantumOp
49
- from iqm.pulse.timebox import TimeBox
50
+ from iqm.pulse.timebox import TimeBox
50
51
 
51
52
 
52
53
  @lru_cache
@@ -245,3 +246,22 @@ class RZ_ACStarkShift_smoothConstant(
245
246
 
246
247
  def __call__(self):
247
248
  return super().__call__(angle=np.pi)
249
+
250
+
251
+ class RZ_PRX_Composite(CompositeGate):
252
+ """RZ gate implemented as a sequence of PRX gates."""
253
+
254
+ registered_gates = ["prx"]
255
+
256
+ def __init__(self, parent, name, locus, calibration_data, builder):
257
+ super().__init__(parent, name, locus, calibration_data, builder)
258
+
259
+ def __call__(self, angle: float) -> TimeBox:
260
+ prx = self.build("prx", self.locus)
261
+ return TimeBox.composite(
262
+ [
263
+ prx.ry(np.pi / 2),
264
+ prx.rx(angle),
265
+ prx.ry(-np.pi / 2),
266
+ ]
267
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: iqm-pulse
3
- Version: 9.3
3
+ Version: 9.5
4
4
  Summary: A Python-based project for providing interface and implementations for control pulses.
5
5
  Author-email: IQM Finland Oy <info@meetiqm.com>
6
6
  License: Apache License
@@ -0,0 +1 @@
1
+ 9.5
iqm_pulse-9.3/version.txt DELETED
@@ -1 +0,0 @@
1
- 9.3
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes