qiskit 1.2.2__cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl → 1.2.4__cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.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.
qiskit/VERSION.txt CHANGED
@@ -1 +1 @@
1
- 1.2.2
1
+ 1.2.4
Binary file
@@ -455,7 +455,7 @@ attempt to "close over" outer circuit registers, or use hidden parameters inside
455
455
  :class:`Instruction`\ s can be related to other circuits to provide a decompositions by using
456
456
  their :attr:`Instruction.definition` attribute, which provides a local, one-off decomposition. This
457
457
  can be in whatever basis set of operations is most convenient to you, as long as the definitions of
458
- all contained gates have some topological order; that is, you cannot use a gate in a definition it
458
+ all contained gates have some topological order; that is, you cannot use a gate in a definition if
459
459
  its own definition depends on the parent. If the :class:`Instruction` should be considered entirely
460
460
  opaque to optimizers, its :attr:`~Instruction.definition` can be ``None``. See
461
461
  :ref:`circuit-custom-gates` for more detail.
@@ -94,6 +94,12 @@ class BlueprintCircuit(QuantumCircuit, ABC):
94
94
 
95
95
  @property
96
96
  def data(self):
97
+ """The circuit data (instructions and context).
98
+
99
+ Returns:
100
+ QuantumCircuitData: a list-like object containing the :class:`.CircuitInstruction`\\ s
101
+ for each instruction.
102
+ """
97
103
  if not self._is_built:
98
104
  self._build()
99
105
  return super().data
@@ -110,12 +116,70 @@ class BlueprintCircuit(QuantumCircuit, ABC):
110
116
 
111
117
  @property
112
118
  def num_parameters(self) -> int:
119
+ """The number of parameter objects in the circuit."""
113
120
  if not self._is_built:
114
121
  self._build()
115
122
  return super().num_parameters
116
123
 
117
124
  @property
118
125
  def parameters(self) -> ParameterView:
126
+ """The parameters defined in the circuit.
127
+
128
+ This attribute returns the :class:`.Parameter` objects in the circuit sorted
129
+ alphabetically. Note that parameters instantiated with a :class:`.ParameterVector`
130
+ are still sorted numerically.
131
+
132
+ Examples:
133
+
134
+ The snippet below shows that insertion order of parameters does not matter.
135
+
136
+ .. code-block:: python
137
+
138
+ >>> from qiskit.circuit import QuantumCircuit, Parameter
139
+ >>> a, b, elephant = Parameter("a"), Parameter("b"), Parameter("elephant")
140
+ >>> circuit = QuantumCircuit(1)
141
+ >>> circuit.rx(b, 0)
142
+ >>> circuit.rz(elephant, 0)
143
+ >>> circuit.ry(a, 0)
144
+ >>> circuit.parameters # sorted alphabetically!
145
+ ParameterView([Parameter(a), Parameter(b), Parameter(elephant)])
146
+
147
+ Bear in mind that alphabetical sorting might be unintuitive when it comes to numbers.
148
+ The literal "10" comes before "2" in strict alphabetical sorting.
149
+
150
+ .. code-block:: python
151
+
152
+ >>> from qiskit.circuit import QuantumCircuit, Parameter
153
+ >>> angles = [Parameter("angle_1"), Parameter("angle_2"), Parameter("angle_10")]
154
+ >>> circuit = QuantumCircuit(1)
155
+ >>> circuit.u(*angles, 0)
156
+ >>> circuit.draw()
157
+ ┌─────────────────────────────┐
158
+ q: ┤ U(angle_1,angle_2,angle_10) ├
159
+ └─────────────────────────────┘
160
+ >>> circuit.parameters
161
+ ParameterView([Parameter(angle_1), Parameter(angle_10), Parameter(angle_2)])
162
+
163
+ To respect numerical sorting, a :class:`.ParameterVector` can be used.
164
+
165
+ .. code-block:: python
166
+
167
+ >>> from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector
168
+ >>> x = ParameterVector("x", 12)
169
+ >>> circuit = QuantumCircuit(1)
170
+ >>> for x_i in x:
171
+ ... circuit.rx(x_i, 0)
172
+ >>> circuit.parameters
173
+ ParameterView([
174
+ ParameterVectorElement(x[0]), ParameterVectorElement(x[1]),
175
+ ParameterVectorElement(x[2]), ParameterVectorElement(x[3]),
176
+ ..., ParameterVectorElement(x[11])
177
+ ])
178
+
179
+
180
+ Returns:
181
+ The sorted :class:`.Parameter` objects in the circuit.
182
+ """
119
183
  if not self._is_built:
120
184
  self._build()
121
185
  return super().parameters
@@ -57,11 +57,11 @@ class PauliFeatureMap(NLocal):
57
57
 
58
58
  .. parsed-literal::
59
59
 
60
- ┌───┐┌──────────────┐┌──────────┐ ┌───────────┐
61
- ┤ H ├┤ U1(2.0*x[0]) ├┤ RX(pi/2) ├──■───────────────────────────────────────■──┤ RX(-pi/2) ├
62
- ├───┤├──────────────┤├──────────┤┌─┴─┐┌─────────────────────────────────┐┌─┴─┐├───────────┤
63
- ┤ H ├┤ U1(2.0*x[1]) ├┤ RX(pi/2) ├┤ X ├┤ U1(2.0*(pi - x[0])*(pi - x[1])) ├┤ X ├┤ RX(-pi/2) ├
64
- └───┘└──────────────┘└──────────┘└───┘└─────────────────────────────────┘└───┘└───────────┘
60
+ ┌───┐┌─────────────┐┌──────────┐ ┌───────────┐
61
+ ┤ H ├┤ P(2.0*x[0]) ├┤ RX(pi/2) ├──■──────────────────────────────────────■──┤ RX(-pi/2) ├
62
+ ├───┤├─────────────┤├──────────┤┌─┴─┐┌────────────────────────────────┐┌─┴─┐├───────────┤
63
+ ┤ H ├┤ P(2.0*x[1]) ├┤ RX(pi/2) ├┤ X ├┤ P(2.0*(pi - x[0])*(pi - x[1])) ├┤ X ├┤ RX(-pi/2) ├
64
+ └───┘└─────────────┘└──────────┘└───┘└────────────────────────────────┘└───┘└───────────┘
65
65
 
66
66
  The circuit contains ``reps`` repetitions of this transformation.
67
67
 
@@ -71,37 +71,37 @@ class PauliFeatureMap(NLocal):
71
71
  Examples:
72
72
 
73
73
  >>> prep = PauliFeatureMap(2, reps=1, paulis=['ZZ'])
74
- >>> print(prep)
74
+ >>> print(prep.decompose())
75
75
  ┌───┐
76
- q_0: ┤ H ├──■───────────────────────────────────────■──
77
- ├───┤┌─┴─┐┌─────────────────────────────────┐┌─┴─┐
78
- q_1: ┤ H ├┤ X ├┤ U1(2.0*(pi - x[0])*(pi - x[1])) ├┤ X ├
79
- └───┘└───┘└─────────────────────────────────┘└───┘
76
+ q_0: ┤ H ├──■──────────────────────────────────────■──
77
+ ├───┤┌─┴─┐┌────────────────────────────────┐┌─┴─┐
78
+ q_1: ┤ H ├┤ X ├┤ P(2.0*(pi - x[0])*(pi - x[1])) ├┤ X ├
79
+ └───┘└───┘└────────────────────────────────┘└───┘
80
80
 
81
81
  >>> prep = PauliFeatureMap(2, reps=1, paulis=['Z', 'XX'])
82
- >>> print(prep)
83
- ┌───┐┌──────────────┐┌───┐ ┌───┐
84
- q_0: ┤ H ├┤ U1(2.0*x[0]) ├┤ H ├──■───────────────────────────────────────■──┤ H ├
85
- ├───┤├──────────────┤├───┤┌─┴─┐┌─────────────────────────────────┐┌─┴─┐├───┤
86
- q_1: ┤ H ├┤ U1(2.0*x[1]) ├┤ H ├┤ X ├┤ U1(2.0*(pi - x[0])*(pi - x[1])) ├┤ X ├┤ H ├
87
- └───┘└──────────────┘└───┘└───┘└─────────────────────────────────┘└───┘└───┘
82
+ >>> print(prep.decompose())
83
+ ┌───┐┌─────────────┐┌───┐ ┌───┐
84
+ q_0: ┤ H ├┤ P(2.0*x[0]) ├┤ H ├──■──────────────────────────────────────■──┤ H ├
85
+ ├───┤├─────────────┤├───┤┌─┴─┐┌────────────────────────────────┐┌─┴─┐├───┤
86
+ q_1: ┤ H ├┤ P(2.0*x[1]) ├┤ H ├┤ X ├┤ P(2.0*(pi - x[0])*(pi - x[1])) ├┤ X ├┤ H ├
87
+ └───┘└─────────────┘└───┘└───┘└────────────────────────────────┘└───┘└───┘
88
88
 
89
89
  >>> prep = PauliFeatureMap(2, reps=1, paulis=['ZY'])
90
- >>> print(prep)
91
- ┌───┐┌──────────┐ ┌───────────┐
92
- q_0: ┤ H ├┤ RX(pi/2) ├──■───────────────────────────────────────■──┤ RX(-pi/2) ├
93
- ├───┤└──────────┘┌─┴─┐┌─────────────────────────────────┐┌─┴─┐└───────────┘
94
- q_1: ┤ H ├────────────┤ X ├┤ U1(2.0*(pi - x[0])*(pi - x[1])) ├┤ X ├─────────────
95
- └───┘ └───┘└─────────────────────────────────┘└───┘
90
+ >>> print(prep.decompose())
91
+ ┌───┐┌──────────┐ ┌───────────┐
92
+ q_0: ┤ H ├┤ RX(pi/2) ├──■──────────────────────────────────────■──┤ RX(-pi/2) ├
93
+ ├───┤└──────────┘┌─┴─┐┌────────────────────────────────┐┌─┴─┐└───────────┘
94
+ q_1: ┤ H ├────────────┤ X ├┤ P(2.0*(pi - x[0])*(pi - x[1])) ├┤ X ├─────────────
95
+ └───┘ └───┘└────────────────────────────────┘└───┘
96
96
 
97
97
  >>> from qiskit.circuit.library import EfficientSU2
98
98
  >>> prep = PauliFeatureMap(3, reps=3, paulis=['Z', 'YY', 'ZXZ'])
99
99
  >>> wavefunction = EfficientSU2(3)
100
- >>> classifier = prep.compose(wavefunction)
100
+ >>> classifier = prep.compose(wavefunction).decompose()
101
101
  >>> classifier.num_parameters
102
102
  27
103
103
  >>> classifier.count_ops()
104
- OrderedDict([('cx', 39), ('rx', 36), ('u1', 21), ('h', 15), ('ry', 12), ('rz', 12)])
104
+ OrderedDict([('cx', 39), ('rx', 36), ('p', 21), ('h', 15), ('ry', 12), ('rz', 12)])
105
105
 
106
106
  References:
107
107
 
@@ -209,6 +209,11 @@ class PauliFeatureMap(NLocal):
209
209
 
210
210
  @property
211
211
  def entanglement_blocks(self):
212
+ """The blocks in the entanglement layers.
213
+
214
+ Returns:
215
+ The blocks in the entanglement layers.
216
+ """
212
217
  return [self.pauli_block(pauli) for pauli in self._paulis]
213
218
 
214
219
  @entanglement_blocks.setter
@@ -25,13 +25,13 @@ class ZFeatureMap(PauliFeatureMap):
25
25
 
26
26
  .. parsed-literal::
27
27
 
28
- ┌───┐┌──────────────┐┌───┐┌──────────────┐
29
- ┤ H ├┤ U1(2.0*x[0]) ├┤ H ├┤ U1(2.0*x[0]) ├
30
- ├───┤├──────────────┤├───┤├──────────────┤
31
- ┤ H ├┤ U1(2.0*x[1]) ├┤ H ├┤ U1(2.0*x[1]) ├
32
- ├───┤├──────────────┤├───┤├──────────────┤
33
- ┤ H ├┤ U1(2.0*x[2]) ├┤ H ├┤ U1(2.0*x[2]) ├
34
- └───┘└──────────────┘└───┘└──────────────┘
28
+ ┌───┐┌─────────────┐┌───┐┌─────────────┐
29
+ ┤ H ├┤ P(2.0*x[0]) ├┤ H ├┤ P(2.0*x[0]) ├
30
+ ├───┤├─────────────┤├───┤├─────────────┤
31
+ ┤ H ├┤ P(2.0*x[1]) ├┤ H ├┤ P(2.0*x[1]) ├
32
+ ├───┤├─────────────┤├───┤├─────────────┤
33
+ ┤ H ├┤ P(2.0*x[2]) ├┤ H ├┤ P(2.0*x[2]) ├
34
+ └───┘└─────────────┘└───┘└─────────────┘
35
35
 
36
36
  This is a sub-class of :class:`~qiskit.circuit.library.PauliFeatureMap` where the Pauli
37
37
  strings are fixed as `['Z']`. As a result the first order expansion will be a circuit without
@@ -39,36 +39,38 @@ class ZFeatureMap(PauliFeatureMap):
39
39
 
40
40
  Examples:
41
41
 
42
+ >>> from qiskit.circuit.library import ZFeatureMap
42
43
  >>> prep = ZFeatureMap(3, reps=3, insert_barriers=True)
43
- >>> print(prep)
44
- ┌───┐ ░ ┌──────────────┐ ░ ┌───┐ ░ ┌──────────────┐ ░ ┌───┐ ░ ┌──────────────┐
45
- q_0: ┤ H ├─░─┤ U1(2.0*x[0]) ├─░─┤ H ├─░─┤ U1(2.0*x[0]) ├─░─┤ H ├─░─┤ U1(2.0*x[0]) ├
46
- ├───┤ ░ ├──────────────┤ ░ ├───┤ ░ ├──────────────┤ ░ ├───┤ ░ ├──────────────┤
47
- q_1: ┤ H ├─░─┤ U1(2.0*x[1]) ├─░─┤ H ├─░─┤ U1(2.0*x[1]) ├─░─┤ H ├─░─┤ U1(2.0*x[1]) ├
48
- ├───┤ ░ ├──────────────┤ ░ ├───┤ ░ ├──────────────┤ ░ ├───┤ ░ ├──────────────┤
49
- q_2: ┤ H ├─░─┤ U1(2.0*x[2]) ├─░─┤ H ├─░─┤ U1(2.0*x[2]) ├─░─┤ H ├─░─┤ U1(2.0*x[2]) ├
50
- └───┘ ░ └──────────────┘ ░ └───┘ ░ └──────────────┘ ░ └───┘ ░ └──────────────┘
44
+ >>> print(prep.decompose())
45
+ ┌───┐ ░ ┌─────────────┐ ░ ┌───┐ ░ ┌─────────────┐ ░ ┌───┐ ░ ┌─────────────┐
46
+ q_0: ┤ H ├─░─┤ P(2.0*x[0]) ├─░─┤ H ├─░─┤ P(2.0*x[0]) ├─░─┤ H ├─░─┤ P(2.0*x[0]) ├
47
+ ├───┤ ░ ├─────────────┤ ░ ├───┤ ░ ├─────────────┤ ░ ├───┤ ░ ├─────────────┤
48
+ q_1: ┤ H ├─░─┤ P(2.0*x[1]) ├─░─┤ H ├─░─┤ P(2.0*x[1]) ├─░─┤ H ├─░─┤ P(2.0*x[1]) ├
49
+ ├───┤ ░ ├─────────────┤ ░ ├───┤ ░ ├─────────────┤ ░ ├───┤ ░ ├─────────────┤
50
+ q_2: ┤ H ├─░─┤ P(2.0*x[2]) ├─░─┤ H ├─░─┤ P(2.0*x[2]) ├─░─┤ H ├─░─┤ P(2.0*x[2]) ├
51
+ └───┘ ░ └─────────────┘ ░ └───┘ ░ └─────────────┘ ░ └───┘ ░ └─────────────┘
51
52
 
52
53
  >>> data_map = lambda x: x[0]*x[0] + 1 # note: input is an array
53
54
  >>> prep = ZFeatureMap(3, reps=1, data_map_func=data_map)
54
- >>> print(prep)
55
- ┌───┐┌───────────────────────┐
56
- q_0: ┤ H ├┤ U1(2.0*x[0]**2 + 2.0) ├
57
- ├───┤├───────────────────────┤
58
- q_1: ┤ H ├┤ U1(2.0*x[1]**2 + 2.0) ├
59
- ├───┤├───────────────────────┤
60
- q_2: ┤ H ├┤ U1(2.0*x[2]**2 + 2.0) ├
61
- └───┘└───────────────────────┘
62
-
63
- >>> classifier = ZFeatureMap(3, reps=1) + RY(3, reps=1)
64
- >>> print(classifier)
65
- ┌───┐┌──────────────┐┌──────────┐ ┌──────────┐
66
- q_0: ┤ H ├┤ U1(2.0*x[0]) ├┤ RY(θ[0]) ├─■──■─┤ RY(θ[3]) ├────────────
67
- ├───┤├──────────────┤├──────────┤ │ │ └──────────┘┌──────────┐
68
- q_1: H ├┤ U1(2.0*x[1]) ├┤ RY(θ[1]) ├─■──┼──────■──────┤ RY(θ[4]) ├
69
- ├───┤├──────────────┤├──────────┤ │ │ ├──────────┤
70
- q_2: ┤ H ├┤ U1(2.0*x[2]) ├┤ RY(θ[2]) ├────■──────■──────┤ RY(θ[5]) ├
71
- └───┘└──────────────┘└──────────┘ └──────────┘
55
+ >>> print(prep.decompose())
56
+ ┌───┐┌──────────────────────┐
57
+ q_0: ┤ H ├┤ P(2.0*x[0]**2 + 2.0) ├
58
+ ├───┤├──────────────────────┤
59
+ q_1: ┤ H ├┤ P(2.0*x[1]**2 + 2.0) ├
60
+ ├───┤├──────────────────────┤
61
+ q_2: ┤ H ├┤ P(2.0*x[2]**2 + 2.0) ├
62
+ └───┘└──────────────────────┘
63
+
64
+ >>> from qiskit.circuit.library import RealAmplitudes
65
+ >>> classifier = ZFeatureMap(3, reps=1).compose(RealAmplitudes(3, reps=1))
66
+ >>> print(classifier.decompose())
67
+ ┌───┐┌─────────────┐┌──────────┐ ┌──────────┐
68
+ q_0: H ├┤ P(2.0*x[0]) ├┤ RY(θ[0]) ├─■──■─┤ RY(θ[3]) ├────────────
69
+ ├───┤├─────────────┤├──────────┤ │ │ └──────────┘┌──────────┐
70
+ q_1: ┤ H ├┤ P(2.0*x[1]) ├┤ RY(θ[1]) ├─■──┼──────■──────┤ RY(θ[4]) ├
71
+ ├───┤├─────────────┤├──────────┤ │ │ ├──────────┤
72
+ q_2: ┤ H ├┤ P(2.0*x[2]) ├┤ RY(θ[2]) ├────■──────■──────┤ RY(θ[5]) ├
73
+ └───┘└─────────────┘└──────────┘ └──────────┘
72
74
 
73
75
  """
74
76
 
@@ -24,51 +24,73 @@ class ZZFeatureMap(PauliFeatureMap):
24
24
 
25
25
  .. parsed-literal::
26
26
 
27
- ┌───┐┌─────────────────┐
28
- ┤ H ├┤ U1(2.0*φ(x[0])) ├──■────────────────────────────■────────────────────────────────────
29
- ├───┤├─────────────────┤┌─┴─┐┌──────────────────────┐┌─┴─┐
30
- ┤ H ├┤ U1(2.0*φ(x[1])) ├┤ X ├┤ U1(2.0*φ(x[0],x[1])) ├┤ X ├──■────────────────────────────■──
31
- ├───┤├─────────────────┤└───┘└──────────────────────┘└───┘┌─┴─┐┌──────────────────────┐┌─┴─┐
32
- ┤ H ├┤ U1(2.0*φ(x[2])) ├──────────────────────────────────┤ X ├┤ U1(2.0*φ(x[1],x[2])) ├┤ X ├
33
- └───┘└─────────────────┘ └───┘└──────────────────────┘└───┘
27
+ ┌───┐┌────────────────┐
28
+ ┤ H ├┤ P(2.0*φ(x[0])) ├──■───────────────────────────■───────────────────────────────────
29
+ ├───┤├────────────────┤┌─┴─┐┌─────────────────────┐┌─┴─┐
30
+ ┤ H ├┤ P(2.0*φ(x[1])) ├┤ X ├┤ P(2.0*φ(x[0],x[1])) ├┤ X ├──■───────────────────────────■──
31
+ ├───┤├────────────────┤└───┘└─────────────────────┘└───┘┌─┴─┐┌─────────────────────┐┌─┴─┐
32
+ ┤ H ├┤ P(2.0*φ(x[2])) ├─────────────────────────────────┤ X ├┤ P(2.0*φ(x[1],x[2])) ├┤ X ├
33
+ └───┘└────────────────┘ └───┘└─────────────────────┘└───┘
34
34
 
35
35
  where :math:`\varphi` is a classical non-linear function, which defaults to :math:`\varphi(x) = x`
36
36
  if and :math:`\varphi(x,y) = (\pi - x)(\pi - y)`.
37
37
 
38
38
  Examples:
39
39
 
40
- >>> from qiskit.circuit.library import ZZFeatureMap
41
- >>> prep = ZZFeatureMap(2, reps=1)
42
- >>> print(prep)
43
- ┌───┐┌──────────────┐
44
- q_0: ┤ H ├┤ U1(2.0*x[0]) ├──■───────────────────────────────────────■──
45
- ├───┤├──────────────┤┌─┴─┐┌─────────────────────────────────┐┌─┴─┐
46
- q_1: ┤ H ├┤ U1(2.0*x[1]) ├┤ X ├┤ U1(2.0*(pi - x[0])*(pi - x[1])) ├┤ X ├
47
- └───┘└──────────────┘└───┘└─────────────────────────────────┘└───┘
48
-
49
- >>> from qiskit.circuit.library import EfficientSU2
50
- >>> classifier = ZZFeatureMap(3) + EfficientSU2(3)
51
- >>> classifier.num_parameters
52
- 15
53
- >>> classifier.parameters # 'x' for the data preparation, 'θ' for the SU2 parameters
54
- ParameterView([
55
- ParameterVectorElement(x[0]), ParameterVectorElement(x[1]),
56
- ParameterVectorElement(x[2]), ParameterVectorElement(θ[0]),
57
- ParameterVectorElement(θ[1]), ParameterVectorElement(θ[2]),
58
- ParameterVectorElement(θ[3]), ParameterVectorElement(θ[4]),
59
- ParameterVectorElement(θ[5]), ParameterVectorElement(θ[6]),
60
- ParameterVectorElement(θ[7]), ParameterVectorElement(θ[8]),
61
- ParameterVectorElement(θ[9]), ParameterVectorElement(θ[10]),
62
- ParameterVectorElement(θ[11]), ParameterVectorElement(θ[12]),
63
- ParameterVectorElement(θ[13]), ParameterVectorElement(θ[14]),
64
- ParameterVectorElement(θ[15]), ParameterVectorElement(θ[16]),
65
- ParameterVectorElement(θ[17]), ParameterVectorElement(θ[18]),
66
- ParameterVectorElement(θ[19]), ParameterVectorElement(θ[20]),
67
- ParameterVectorElement(θ[21]), ParameterVectorElement(θ[22]),
68
- ParameterVectorElement(θ[23])
69
- ])
70
- >>> classifier.count_ops()
40
+ .. code-block::
41
+
42
+ from qiskit.circuit.library import ZZFeatureMap
43
+ prep = ZZFeatureMap(2, reps=1)
44
+ print(prep.decompose())
45
+
46
+ .. parsed-literal::
47
+ ┌───┐┌─────────────┐
48
+ q_0: ┤ H ├┤ P(2.0*x[0]) ├──■──────────────────────────────────────■──
49
+ ├───┤├─────────────┤┌─┴─┐┌────────────────────────────────┐┌─┴─┐
50
+ q_1: H ├┤ P(2.0*x[1]) ├┤ X ├┤ P(2.0*(pi - x[0])*(pi - x[1])) ├┤ X ├
51
+ └───┘└─────────────┘└───┘└────────────────────────────────┘└───┘
52
+
53
+ .. code-block::
54
+
55
+ from qiskit.circuit.library import EfficientSU2
56
+ classifier = ZZFeatureMap(3).compose(EfficientSU2(3))
57
+ classifier.num_parameters
58
+
59
+ .. parsed-literal::
60
+
61
+ 27
62
+
63
+ .. code-block::
64
+
65
+ classifier.parameters # 'x' for the data preparation, 'θ' for the SU2 parameters
66
+
67
+ .. parsed-literal::
68
+
69
+ ParameterView([
70
+ ParameterVectorElement(x[0]), ParameterVectorElement(x[1]),
71
+ ParameterVectorElement(x[2]), ParameterVectorElement(θ[0]),
72
+ ParameterVectorElement(θ[1]), ParameterVectorElement(θ[2]),
73
+ ParameterVectorElement(θ[3]), ParameterVectorElement(θ[4]),
74
+ ParameterVectorElement(θ[5]), ParameterVectorElement(θ[6]),
75
+ ParameterVectorElement(θ[7]), ParameterVectorElement(θ[8]),
76
+ ParameterVectorElement(θ[9]), ParameterVectorElement(θ[10]),
77
+ ParameterVectorElement(θ[11]), ParameterVectorElement(θ[12]),
78
+ ParameterVectorElement(θ[13]), ParameterVectorElement(θ[14]),
79
+ ParameterVectorElement(θ[15]), ParameterVectorElement(θ[16]),
80
+ ParameterVectorElement(θ[17]), ParameterVectorElement(θ[18]),
81
+ ParameterVectorElement(θ[19]), ParameterVectorElement(θ[20]),
82
+ ParameterVectorElement(θ[21]), ParameterVectorElement(θ[22]),
83
+ ParameterVectorElement(θ[23])
84
+ ])
85
+
86
+ .. code-block::
87
+
88
+ classifier.count_ops()
89
+
90
+ .. parsed-literal::
91
+
71
92
  OrderedDict([('ZZFeatureMap', 1), ('EfficientSU2', 1)])
93
+
72
94
  """
73
95
 
74
96
  def __init__(
@@ -63,7 +63,7 @@ class RXXGate(Gate):
63
63
 
64
64
  .. math::
65
65
 
66
- R_{XX}(\theta = \pi) = i X \otimes X
66
+ R_{XX}(\theta = \pi) = -i X \otimes X
67
67
 
68
68
  .. math::
69
69
 
@@ -63,7 +63,7 @@ class RYYGate(Gate):
63
63
 
64
64
  .. math::
65
65
 
66
- R_{YY}(\theta = \pi) = i Y \otimes Y
66
+ R_{YY}(\theta = \pi) = -i Y \otimes Y
67
67
 
68
68
  .. math::
69
69
 
@@ -108,7 +108,7 @@ class RZXGate(Gate):
108
108
 
109
109
  .. math::
110
110
 
111
- R_{ZX}(\theta = \pi) = -i Z \otimes X
111
+ R_{ZX}(\theta = \pi) = -i X \otimes Z
112
112
 
113
113
  .. math::
114
114
 
qiskit/qpy/__init__.py CHANGED
@@ -116,6 +116,30 @@ and how the feature will be internally handled.
116
116
 
117
117
  .. autoexception:: QPYLoadingDeprecatedFeatureWarning
118
118
 
119
+ .. note::
120
+
121
+ With versions of Qiskit before 1.2.4, the ``use_symengine=True`` argument to :func:`.qpy.dump`
122
+ could cause problems with backwards compatibility if there were :class:`.ParameterExpression`
123
+ objects to serialize. In particular:
124
+
125
+ * When the loading version of Qiskit is 1.2.4 or greater, QPY files generated with any version
126
+ of Qiskit >= 0.46.0 can be loaded. If a version of Qiskit between 0.45.0 and 0.45.3 was used
127
+ to generate the files, and the non-default argument ``use_symengine=True`` was given to
128
+ :func:`.qpy.dump`, the file can only be read if the version of ``symengine`` used in the
129
+ generating environment was in the 0.11 or 0.13 series. However, if the environment was created
130
+ during the support window of Qiskit 0.45, it is likely that ``symengine==0.9.2`` was used.
131
+
132
+ * When the loading version of Qiskit is between 0.46.0 and 1.2.2 inclusive, the file can only be
133
+ read if the installed version of ``symengine`` in the loading environment matches the version
134
+ used in the generating environment.
135
+
136
+ To recover a QPY file that fails with ``symengine`` version-related errors during a call to
137
+ :func:`.qpy.load`, first attempt to use Qiskit >= 1.2.4 to load the file. If this still fails,
138
+ it is likely because Qiskit 0.45.x was used to generate the file with ``use_symengine=True``.
139
+ In this case, use Qiskit 0.45.3 with ``symengine==0.9.2`` to load the file, and then re-export
140
+ it to QPY setting ``use_symengine=False``. The resulting file can then be loaded by any later
141
+ version of Qiskit.
142
+
119
143
  QPY format version history
120
144
  --------------------------
121
145
 
@@ -20,9 +20,6 @@ from io import BytesIO
20
20
 
21
21
  import numpy as np
22
22
  import symengine as sym
23
- from symengine.lib.symengine_wrapper import ( # pylint: disable = no-name-in-module
24
- load_basic,
25
- )
26
23
 
27
24
  from qiskit.exceptions import QiskitError
28
25
  from qiskit.pulse import library, channels, instructions
@@ -106,7 +103,7 @@ def _loads_symbolic_expr(expr_bytes, use_symengine=False):
106
103
  return None
107
104
  expr_bytes = zlib.decompress(expr_bytes)
108
105
  if use_symengine:
109
- return load_basic(expr_bytes)
106
+ return common.load_symengine_payload(expr_bytes)
110
107
  else:
111
108
  from sympy import parse_expr
112
109
 
@@ -20,9 +20,6 @@ import uuid
20
20
 
21
21
  import numpy as np
22
22
  import symengine
23
- from symengine.lib.symengine_wrapper import ( # pylint: disable = no-name-in-module
24
- load_basic,
25
- )
26
23
 
27
24
 
28
25
  from qiskit.circuit import CASE_DEFAULT, Clbit, ClassicalRegister
@@ -290,7 +287,7 @@ def _read_parameter_expression_v3(file_obj, vectors, use_symengine):
290
287
 
291
288
  payload = file_obj.read(data.expr_size)
292
289
  if use_symengine:
293
- expr_ = load_basic(payload)
290
+ expr_ = common.load_symengine_payload(payload)
294
291
  else:
295
292
  from sympy.parsing.sympy_parser import parse_expr
296
293
 
qiskit/qpy/common.py CHANGED
@@ -18,7 +18,12 @@ Common functions across several serialization and deserialization modules.
18
18
  import io
19
19
  import struct
20
20
 
21
- from qiskit.qpy import formats
21
+ import symengine
22
+ from symengine.lib.symengine_wrapper import ( # pylint: disable = no-name-in-module
23
+ load_basic,
24
+ )
25
+
26
+ from qiskit.qpy import formats, exceptions
22
27
 
23
28
  QPY_VERSION = 12
24
29
  QPY_COMPATIBILITY_VERSION = 10
@@ -304,3 +309,42 @@ def mapping_from_binary(binary_data, deserializer, **kwargs):
304
309
  mapping = read_mapping(container, deserializer, **kwargs)
305
310
 
306
311
  return mapping
312
+
313
+
314
+ def load_symengine_payload(payload: bytes) -> symengine.Expr:
315
+ """Load a symengine expression from its serialized cereal payload."""
316
+ # This is a horrible hack to workaround the symengine version checking
317
+ # it's deserialization does. There were no changes to the serialization
318
+ # format between 0.11 and 0.13 but the deserializer checks that it can't
319
+ # load across a major or minor version boundary. This works around it
320
+ # by just lying about the generating version.
321
+ symengine_version = symengine.__version__.split(".")
322
+ major = payload[2]
323
+ minor = payload[3]
324
+ if int(symengine_version[1]) != minor:
325
+ if major != 0:
326
+ raise exceptions.QpyError(
327
+ "Qiskit doesn't support loading a symengine payload generated with symengine >= 1.0"
328
+ )
329
+ if minor == 9:
330
+ raise exceptions.QpyError(
331
+ "Qiskit doesn't support loading a historical QPY file with `use_symengine=True` "
332
+ "generated in an environment using symengine 0.9.0. If you need to load this file "
333
+ "you can do so with Qiskit 0.45.x or 0.46.x and re-export the QPY file using "
334
+ "`use_symengine=False`."
335
+ )
336
+ if minor not in (11, 13):
337
+ raise exceptions.QpyError(
338
+ f"Incompatible symengine version {major}.{minor} used to generate the QPY "
339
+ "payload"
340
+ )
341
+ minor_version = int(symengine_version[1])
342
+ if minor_version not in (11, 13):
343
+ raise exceptions.QpyError(
344
+ f"Incompatible installed symengine version {symengine.__version__} to load "
345
+ "this QPY payload"
346
+ )
347
+ payload = bytearray(payload)
348
+ payload[3] = minor_version
349
+ payload = bytes(payload)
350
+ return load_basic(payload)
qiskit/qpy/interface.py CHANGED
@@ -144,6 +144,17 @@ def dump(
144
144
  from the QPY format at that version will persist. This should only be used if
145
145
  compatibility with loading the payload with an older version of Qiskit is necessary.
146
146
 
147
+ .. note::
148
+
149
+ If serializing a :class:`.QuantumCircuit` or :class:`.ScheduleBlock` that contain
150
+ :class:`.ParameterExpression` objects with ``version`` set low with the intent to
151
+ load the payload using a historical release of Qiskit, it is safest to set the
152
+ ``use_symengine`` flag to ``False``. Versions of Qiskit prior to 1.2.4 cannot load
153
+ QPY files containing ``symengine``-serialized :class:`.ParameterExpression` objects
154
+ unless the version of ``symengine`` used between the loading and generating
155
+ environments matches.
156
+
157
+
147
158
  Raises:
148
159
  QpyError: When multiple data format is mixed in the output.
149
160
  TypeError: When invalid data type is input.
@@ -191,7 +191,7 @@ def circuit_drawer(
191
191
  .. plot::
192
192
  :include-source:
193
193
 
194
- from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit
194
+ from qiskit import QuantumCircuit
195
195
  qc = QuantumCircuit(1, 1)
196
196
  qc.h(0)
197
197
  qc.measure(0, 0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: qiskit
3
- Version: 1.2.2
3
+ Version: 1.2.4
4
4
  Summary: An open-source SDK for working with quantum computers at the level of extended quantum circuits, operators, and primitives.
5
5
  Author-email: Qiskit Development Team <qiskit@us.ibm.com>
6
6
  License: Apache 2.0
@@ -36,7 +36,7 @@ Requires-Dist: dill>=0.3
36
36
  Requires-Dist: python-dateutil>=2.8.0
37
37
  Requires-Dist: stevedore>=3.0.0
38
38
  Requires-Dist: typing-extensions
39
- Requires-Dist: symengine>=0.11
39
+ Requires-Dist: symengine<0.14,>=0.11
40
40
  Provides-Extra: all
41
41
  Requires-Dist: qiskit[crosstalk-pass,csp-layout-pass,qasm3-import,visualization]; extra == "all"
42
42
  Provides-Extra: crosstalk-pass
@@ -1,10 +1,10 @@
1
1
  qiskit/version.py,sha256=MiraFeJt5GQEspFyvP3qJedHen2C1e8dNEttzg0u7YU,2498
2
2
  qiskit/_numpy_compat.py,sha256=ZlnDTF2KBTKcVF489ZuxoBk6r9KLsMuhAlozFhOn0a8,2815
3
- qiskit/_accelerate.abi3.so,sha256=BKI9M0uDLVTIJ9puunJ2aIJGjn2XJ2jcW3BMFCLv5nE,5707180
3
+ qiskit/_accelerate.abi3.so,sha256=4HhF4X0UIZWf69SSUTVAguFY-iujfC2HGvgyv8nYQmo,5707184
4
4
  qiskit/exceptions.py,sha256=78bbfww9680_v4CaNgepavY5DwGTN7_j47Ckob3lLPM,5619
5
5
  qiskit/__init__.py,sha256=h_3PcAndCRLW2AhP-GzbxjFzpwd4RpSZ-cQg062et_w,5420
6
6
  qiskit/user_config.py,sha256=I7QCF9W2IDpleWunxDjgYGySsVUlq57gfj_137o0Dac,10109
7
- qiskit/VERSION.txt,sha256=xipcxhrEUlk1dT9ewoTAoFKksdpLOjWA3OK313ohVK4,6
7
+ qiskit/VERSION.txt,sha256=VjoLTuw8d7vDSsYw1PpSFPXGcmrgFGhAT9cERzEQCE4,6
8
8
  qiskit/transpiler/layout.py,sha256=OX1taS67SD31FuDD_1YdD-l4v6KYQw2AQU7_HTx1CIQ,28073
9
9
  qiskit/transpiler/instruction_durations.py,sha256=sXX_-jbf6I5R4cHpBBheQaTaRRa4b24Fp7E750AhrC0,11236
10
10
  qiskit/transpiler/passmanager_config.py,sha256=W0Vi73vGspwn6Z8jwUeiU3CZQdbFBbyYt1a2fgjpbko,9220
@@ -314,7 +314,7 @@ qiskit/visualization/__init__.py,sha256=HPgzHp8pY3wXCLYnEKla1YiMMjHbjM6suvJcV4pV
314
314
  qiskit/visualization/pass_manager_visualization.py,sha256=19m4pUdYG0csZgQbuxfFP-zfoVGnk0pJr0HVToD1Y04,10886
315
315
  qiskit/visualization/state_visualization.py,sha256=nPx7YltijQcbdqoC5gA_AWqYIuREiHn4aXVvej-keJ4,52199
316
316
  qiskit/visualization/circuit/matplotlib.py,sha256=jMDl-I7mCmlFKc1eafr5SruvXgOcjJTme6N_GVtg6Rw,79426
317
- qiskit/visualization/circuit/circuit_visualization.py,sha256=Dt3RofFMU1kiq_kWdIQPdbZsfTnuukLtRmICV5U9L8I,29047
317
+ qiskit/visualization/circuit/circuit_visualization.py,sha256=XGDeeFx9MR_tjblQ1GrcB9mIq9XgAnPtvHensQnnnqw,29011
318
318
  qiskit/visualization/circuit/latex.py,sha256=DsvKYmOWjRTBlQVHMJnunme8jUpsHJ1Tyu0s1X5XwvQ,26232
319
319
  qiskit/visualization/circuit/_utils.py,sha256=4jKhr_g1HICcu5g4wigT5xpFi2h95iZVCrsKdZZxgQA,23865
320
320
  qiskit/visualization/circuit/text.py,sha256=U-rCvw9X-d64POxx_I9lWMt7pQgXA9BLeuHp_0XGPH8,71164
@@ -355,15 +355,15 @@ qiskit/visualization/pulse_v2/generators/chart.py,sha256=Y2na3oCE4--YbZ802VC6LhV
355
355
  qiskit/visualization/pulse_v2/generators/barrier.py,sha256=uzKh4pRj1YXnYiskoclWcYy14lUSlDgLk9u90s5U5xk,2563
356
356
  qiskit/visualization/pulse_v2/generators/frame.py,sha256=sCqwaXoY99lNclGmK4GwiBckHOXezfLVKhPz7w7tPII,13932
357
357
  qiskit/visualization/pulse_v2/generators/__init__.py,sha256=wbrSLBT-R1BeDDkCdk75lRF03evlOVX-cBioXahs2yw,1227
358
- qiskit/qpy/interface.py,sha256=LLaox9mYJDP3EUPP1tgtE8wWNgm169gqNTRmYaPJNtY,12374
358
+ qiskit/qpy/interface.py,sha256=vbCxqs12ra0lp_jyKTsvHG_Ho9290mcxCwvCRYZ7gWI,13020
359
359
  qiskit/qpy/exceptions.py,sha256=YOwVSKR74VYOrXS5hBdln7EZ0ett0qsSQSALJDoJxwA,1847
360
360
  qiskit/qpy/type_keys.py,sha256=_2FKRgX1H6B5L6UOt3RCBzbeecNh0LPISZUr75felQg,15761
361
361
  qiskit/qpy/formats.py,sha256=88GCscjzqnU8LTZ5yf0a1BiA0_wjjWVGpC3qVkhEa_k,11269
362
- qiskit/qpy/__init__.py,sha256=M_0PFAv4dp8y6q4bP9WL3XVmRyoRsQH35MWnx9UK5zQ,56461
363
- qiskit/qpy/common.py,sha256=hsABKxwrbZNOOhN8FJjLz93xQeiXCDtgCkWDy1yJI1E,10287
364
- qiskit/qpy/binary_io/value.py,sha256=grZfIO7x-hyM-r0OISwBBNMkgqPoC3tMARxdLNlyNxg,28567
362
+ qiskit/qpy/__init__.py,sha256=bJVt7Y7MW1H9ibYtZlRialbEJq74F0Xcy7zm_2t26X4,58059
363
+ qiskit/qpy/common.py,sha256=TRrtOTxjMn2s59qktUFlSCbT5JUdSKuR0R2VdYtZrZk,12257
364
+ qiskit/qpy/binary_io/value.py,sha256=Ge5YN5MPo2_N8EVTH7_RwzMMJ65hRLKsjpcIKnLDKzs,28483
365
365
  qiskit/qpy/binary_io/circuits.py,sha256=ZKBrCiNdodbaLk3bv6n82ILpBR-89PAs2j-oaTFEAcY,57115
366
- qiskit/qpy/binary_io/schedules.py,sha256=hX9ySYTqkS2VtQZXD8JcGUOy0aF5NcrcoernLZXcnTg,23914
366
+ qiskit/qpy/binary_io/schedules.py,sha256=trhEhMDzTpvLAuLk85qXRByd_ZAz_CjLa5VGfRkVM4A,23830
367
367
  qiskit/qpy/binary_io/__init__.py,sha256=1RUijiS9HbWuiCER5Hkkqg1Dlutap-ZhbIwK958qK-o,1073
368
368
  qiskit/qasm/libs/qelib1.inc,sha256=2CddZ7ogjAwbU1pKvxfcp4YRGXW-1CHF47e1FFLrf2M,4820
369
369
  qiskit/qasm/libs/stdgates.inc,sha256=UvFVDcEVQUrsHh3VBiUZ5JgoqkbnsSUtgqdSnEzI6Ko,2328
@@ -451,7 +451,7 @@ qiskit/circuit/barrier.py,sha256=e9rOI-2o_ydpS4H6U5xsnuWhvRts58mMiEzsPZLqbgE,161
451
451
  qiskit/circuit/classicalregister.py,sha256=oLKotR8jFREs6i2M1K7Jrvm5rrfG7TzLgaB0-PGa040,1691
452
452
  qiskit/circuit/annotated_operation.py,sha256=9TPDzb_iFHjz1Qb-zekywdwD2FIe1J2kZM1yZxc7xR0,10487
453
453
  qiskit/circuit/delay.py,sha256=Q-GkWu_oV_gIM2t0U9Q9iew5mKjJS9LaeVPPlNik20Q,4255
454
- qiskit/circuit/__init__.py,sha256=V4djnQp8L5O6OtNAbk0ldkv6EBfb8UP3CribHMfWoV4,58957
454
+ qiskit/circuit/__init__.py,sha256=Vp2EnPcpL9feXaPOZlzGzRlbV9C-BE1KaaN9xgB2ai0,58957
455
455
  qiskit/circuit/equivalence_library.py,sha256=7f2T6c7sbDWaVQNVALNJL0olLVFZmHgA9xzcy7_FdDQ,708
456
456
  qiskit/circuit/_classical_resource_map.py,sha256=vgnkvPsdKn5czlLM3CfMn02HY8J7m1djoBr0I_sxQYk,6982
457
457
  qiskit/circuit/controlledgate.py,sha256=tvn9yyfLJcgGJOvjld42ZPQprQPSw5FTAqAZOju46WM,9755
@@ -496,7 +496,7 @@ qiskit/circuit/library/grover_operator.py,sha256=hP7zPVEhfIQFaC18SAP1nzd7o1QqcVo
496
496
  qiskit/circuit/library/hamiltonian_gate.py,sha256=s7gwRAgguBxHv79xARLxYKeQ4peONxC20t9icLJUF5I,5621
497
497
  qiskit/circuit/library/phase_estimation.py,sha256=0RUzjHPXoaqcYQtlgHEdWj--YtXo3F9NKcIcFCtbADk,3757
498
498
  qiskit/circuit/library/iqp.py,sha256=MAQZQZ5UTetDSPkin1cRdjOXkie_JCMH1Y--v-1etRw,3265
499
- qiskit/circuit/library/blueprintcircuit.py,sha256=EkhYypixeVotvJSJEVWxl9RfnOYJEcZRb0v4xz_IhuU,7061
499
+ qiskit/circuit/library/blueprintcircuit.py,sha256=Iqh8gGTfAHwBzeCW1Iy1foUnBBCLAD_wDMWw77LKjeI,9938
500
500
  qiskit/circuit/library/graph_state.py,sha256=6XZC3YfhKb65-9poGAkY26w63Ggkle8Hi4H6lYLeTPM,3153
501
501
  qiskit/circuit/library/hidden_linear_function.py,sha256=Mr5EP9KI96NSvQJWyh4aRh5QPijnbc2-bIWvGv_4w5M,3531
502
502
  qiskit/circuit/library/phase_oracle.py,sha256=n2QVk7hELNiDWOGWLWh7kquMDIVTIHIoEWuHydXIv4E,6665
@@ -531,11 +531,11 @@ qiskit/circuit/library/boolean_logic/quantum_xor.py,sha256=mE7NEFn792_VNSe9R-v-q
531
531
  qiskit/circuit/library/boolean_logic/__init__.py,sha256=A9ZvZGbyOERLAcLeRtw64xsGSzkKL2jZkPFtUeyFkSQ,645
532
532
  qiskit/circuit/library/basis_change/qft.py,sha256=qE3t_0WQq6I8NbuhLoXuQy1bbROuDZ9ykbLdkOgEGs4,11772
533
533
  qiskit/circuit/library/basis_change/__init__.py,sha256=JFOleW2bg9vOFdWs2RbrFDpUPx47DWmPP6pG1spSS7s,548
534
- qiskit/circuit/library/data_preparation/pauli_feature_map.py,sha256=tyMuysstqiQLqB7s6Sgs796DVk9g8ljm1lZXq1WtwXs,12605
535
- qiskit/circuit/library/data_preparation/z_feature_map.py,sha256=9tMS0ScFzMMjgMRC3kle1dAs0iuYZm45xZHKT1dS6A4,6347
534
+ qiskit/circuit/library/data_preparation/pauli_feature_map.py,sha256=sTREVDZDI50ASdRUTLfSp-J3y_tTDrMf5imvyZBk4cc,12718
535
+ qiskit/circuit/library/data_preparation/z_feature_map.py,sha256=0f3I2VuUIQceIjNvgdT8ETaRk2Oa3VQBsMaJaTWIKmI,6418
536
536
  qiskit/circuit/library/data_preparation/state_preparation.py,sha256=2TL97DdkliXwRlOc-ETOidGc_zVZRu9E9VOUFEal1JE,14150
537
537
  qiskit/circuit/library/data_preparation/__init__.py,sha256=NYQYKqo_y2H9S5JlAcmyKGys_72PCe8G6auMrf8if-s,2336
538
- qiskit/circuit/library/data_preparation/zz_feature_map.py,sha256=KixkX4byMfcynaSZdaXg9__ungnQN4ZIL3tvo1ZMxPk,6409
538
+ qiskit/circuit/library/data_preparation/zz_feature_map.py,sha256=gZArFjYLOC-DDhlB-XwrxBHrA1NRv4BSg_K-5pFSKOc,6553
539
539
  qiskit/circuit/library/data_preparation/initializer.py,sha256=0MGo6PVqXachVpr-YEWqR2HeJq6qvPhSV5AQbEOCWYo,4453
540
540
  qiskit/circuit/library/n_local/excitation_preserving.py,sha256=5fOwLpo2GqmbbrMJ5ekX8leHcENozw9ZxD34CIsHkIs,9856
541
541
  qiskit/circuit/library/n_local/qaoa_ansatz.py,sha256=HzPi8-qsXYUBUX0sBReHrd2c704U_qXYjD1Vm5rsdJg,11271
@@ -651,21 +651,21 @@ qiskit/circuit/library/standard_gates/rz.py,sha256=IXat1HCQ5tWuagPIISpIjYhi6H42I
651
651
  qiskit/circuit/library/standard_gates/ry.py,sha256=d1ZKc6f9ZxNic8kgkbvmJHFsmfjQPLu4tuytJ-lSftA,10669
652
652
  qiskit/circuit/library/standard_gates/swap.py,sha256=5WxRZsQlXa4yzmmvJI42LUNTyOvPdB4EYD-xRlms1ro,8988
653
653
  qiskit/circuit/library/standard_gates/sx.py,sha256=VDNfp5gUEkc-UUzwoYRj8rHJ29ltLJB7-37TInNiDSU,9986
654
- qiskit/circuit/library/standard_gates/ryy.py,sha256=XY7sMl1oYORIuTzUZ7BdZiMvf8MfIBYSSDqTgyfWWqg,6864
654
+ qiskit/circuit/library/standard_gates/ryy.py,sha256=6UdgcVoO_NCOxSt2f9eto0Jd6GNUxQW_c8s01NpIbNs,6865
655
655
  qiskit/circuit/library/standard_gates/iswap.py,sha256=1M2xIlMufyjblRMJoOKhGN_pJ2k-yN1EBsygcbS-0O8,4002
656
656
  qiskit/circuit/library/standard_gates/y.py,sha256=7UuD6eXqmtrdDhOB_ruCehyiiRzsb7_amYhGxuDZys8,7888
657
657
  qiskit/circuit/library/standard_gates/u2.py,sha256=WNNCk7xbWYKjgymVLMyy5vId258R-PZSwKkgEEY36yU,4295
658
658
  qiskit/circuit/library/standard_gates/i.py,sha256=Gj-DMYCjhI9mR2aIKuNTIBAjKOMtqeFvMG8M1QMTdrE,2377
659
659
  qiskit/circuit/library/standard_gates/p.py,sha256=v1_tnP6D8XPk2B_R5yMKGMQIwSvVejvN-T86i3huL6c,14585
660
660
  qiskit/circuit/library/standard_gates/x.py,sha256=iQ_PRR_E3icz2-_akhblVRAbF4jZs7vSFpt4XKiS5Kw,55029
661
- qiskit/circuit/library/standard_gates/rxx.py,sha256=EU6e9dDOw7Jf-o33Jng-uAJVB3QqpesJLM90KJPiN9E,6685
661
+ qiskit/circuit/library/standard_gates/rxx.py,sha256=Vm5YekAUAfqNRPTOnnuIiLoduo4USLUyQiNJIptr_9o,6686
662
662
  qiskit/circuit/library/standard_gates/u3.py,sha256=2DzuObtG8QWxKe5xZjGaWxqlT7IahA7EEYBb1i9pNkA,14811
663
663
  qiskit/circuit/library/standard_gates/u.py,sha256=jc11FMYjBNiz7NxmrSlw6vPDnKJebFrlgVoPsZifKTo,15170
664
664
  qiskit/circuit/library/standard_gates/multi_control_rotation_gates.py,sha256=XmR0HhlcozZWLaTBd0z8qW3nG_injZVHijnMtLqGwaI,14931
665
665
  qiskit/circuit/library/standard_gates/__init__.py,sha256=prveyGmbnu2DS4Noryc-6rIDH45lH8wQbuQyR7j-E3M,3528
666
666
  qiskit/circuit/library/standard_gates/equivalence_library.py,sha256=Vu2OET4HdW9sjVR96KqzrUaTs0N1dsIRIor-vRSo2Ac,72337
667
667
  qiskit/circuit/library/standard_gates/t.py,sha256=JPvo0vAfV1-hBzmdSVKVrWUAHx5s3o1T6ZcK4IiDGP8,5419
668
- qiskit/circuit/library/standard_gates/rzx.py,sha256=VSd-Aax_yUNFEaB-R9OU0YvHvza7KLQX2VRA22zOQ1Y,8298
668
+ qiskit/circuit/library/standard_gates/rzx.py,sha256=dvQGdWE6mFqW9UbmxEydZgEhuhoQAanFa-aIXlaRnuU,8298
669
669
  qiskit/circuit/library/standard_gates/r.py,sha256=Yz7MOLWvyrZEj2efqtTfB1R1SWHmLKNaZ2yq2itX2Vc,4002
670
670
  qiskit/circuit/library/standard_gates/s.py,sha256=MxyzjmtR9XUUuh-jFAGypuKqqWyrisRAoXFiFgD97HA,12818
671
671
  qiskit/circuit/library/standard_gates/z.py,sha256=Xw4sRo-3I-MrVfXSv0Ka--rbmYRkgQ7DI---n0hWons,10344
@@ -812,9 +812,9 @@ qiskit/qobj/common.py,sha256=GxxPmSjpWRtGarmlBMyOQIwnerD_0WdJ42_bV_41lM8,2560
812
812
  qiskit/qobj/converters/lo_config.py,sha256=UczPUYOm820G-vm1YXjSFAlRsMI4WndnkNZCPu-ty9Q,6912
813
813
  qiskit/qobj/converters/__init__.py,sha256=Akm9I--eCKJngKWrNe47Jx9mfZhH7TPMhpVq_lICmXs,691
814
814
  qiskit/qobj/converters/pulse_instruction.py,sha256=t2Te9DlMr4jE5-5w5idNZijEdJYDUZcnChb2lSSdn28,30467
815
- qiskit-1.2.2.dist-info/LICENSE.txt,sha256=IXrBXbzaJ4LgBPUVKIbYR5iMY2eqoMT8jDVTY8Ib0iQ,11416
816
- qiskit-1.2.2.dist-info/METADATA,sha256=xb2Gf4mENFXtfm_ZSVF_qu_Tv6wrDQqjbnqj5OmskfM,12867
817
- qiskit-1.2.2.dist-info/entry_points.txt,sha256=dCqiF7i6g_s6cYnXX7UUO1MM63xFFb5DCHYEYyGAeCc,3556
818
- qiskit-1.2.2.dist-info/RECORD,,
819
- qiskit-1.2.2.dist-info/WHEEL,sha256=DvOVqn-9jNlk5-fIqVe-HCMUyXfAiAKdTSIZAQED-GA,144
820
- qiskit-1.2.2.dist-info/top_level.txt,sha256=_vjFXLv7qrHyJJOC2-JXfG54o4XQygW9GuQPxgtSt9Q,7
815
+ qiskit-1.2.4.dist-info/LICENSE.txt,sha256=IXrBXbzaJ4LgBPUVKIbYR5iMY2eqoMT8jDVTY8Ib0iQ,11416
816
+ qiskit-1.2.4.dist-info/METADATA,sha256=FgL3OFv3K24kIO1CvFT1R6IMmGc88RRtZe0ERwSr5M0,12873
817
+ qiskit-1.2.4.dist-info/entry_points.txt,sha256=dCqiF7i6g_s6cYnXX7UUO1MM63xFFb5DCHYEYyGAeCc,3556
818
+ qiskit-1.2.4.dist-info/RECORD,,
819
+ qiskit-1.2.4.dist-info/WHEEL,sha256=VbmXg4RX7V0MvdtUhxnIZPYRnpP48HleA7I-rzn9qGg,143
820
+ qiskit-1.2.4.dist-info/top_level.txt,sha256=_vjFXLv7qrHyJJOC2-JXfG54o4XQygW9GuQPxgtSt9Q,7
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.44.0)
2
+ Generator: setuptools (75.1.0)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp38-abi3-manylinux_2_17_i686
5
5
  Tag: cp38-abi3-manylinux2014_i686