qiskit 2.0.3__cp39-abi3-macosx_11_0_arm64.whl → 2.1.0__cp39-abi3-macosx_11_0_arm64.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 +1 -1
- qiskit/__init__.py +19 -1
- qiskit/_accelerate.abi3.so +0 -0
- qiskit/circuit/__init__.py +104 -20
- qiskit/circuit/_add_control.py +57 -31
- qiskit/circuit/_classical_resource_map.py +4 -0
- qiskit/circuit/annotation.py +504 -0
- qiskit/circuit/classical/expr/__init__.py +1 -1
- qiskit/circuit/classical/expr/expr.py +104 -446
- qiskit/circuit/classical/expr/visitors.py +6 -0
- qiskit/circuit/classical/types/types.py +7 -130
- qiskit/circuit/controlflow/box.py +32 -7
- qiskit/circuit/delay.py +11 -9
- qiskit/circuit/library/arithmetic/adders/adder.py +4 -4
- qiskit/circuit/library/arithmetic/multipliers/multiplier.py +2 -2
- qiskit/circuit/library/arithmetic/piecewise_chebyshev.py +8 -4
- qiskit/circuit/library/arithmetic/piecewise_linear_pauli_rotations.py +23 -15
- qiskit/circuit/library/arithmetic/piecewise_polynomial_pauli_rotations.py +22 -14
- qiskit/circuit/library/arithmetic/quadratic_form.py +6 -0
- qiskit/circuit/library/arithmetic/weighted_adder.py +43 -24
- qiskit/circuit/library/basis_change/qft.py +2 -2
- qiskit/circuit/library/blueprintcircuit.py +6 -0
- qiskit/circuit/library/boolean_logic/inner_product.py +2 -2
- qiskit/circuit/library/boolean_logic/quantum_and.py +2 -2
- qiskit/circuit/library/boolean_logic/quantum_or.py +3 -3
- qiskit/circuit/library/boolean_logic/quantum_xor.py +2 -2
- qiskit/circuit/library/data_preparation/_z_feature_map.py +2 -2
- qiskit/circuit/library/data_preparation/_zz_feature_map.py +2 -2
- qiskit/circuit/library/data_preparation/pauli_feature_map.py +2 -2
- qiskit/circuit/library/fourier_checking.py +2 -2
- qiskit/circuit/library/generalized_gates/diagonal.py +5 -1
- qiskit/circuit/library/generalized_gates/gms.py +5 -1
- qiskit/circuit/library/generalized_gates/linear_function.py +2 -2
- qiskit/circuit/library/generalized_gates/permutation.py +5 -1
- qiskit/circuit/library/generalized_gates/uc.py +1 -1
- qiskit/circuit/library/generalized_gates/unitary.py +21 -2
- qiskit/circuit/library/graph_state.py +2 -2
- qiskit/circuit/library/grover_operator.py +2 -2
- qiskit/circuit/library/hidden_linear_function.py +2 -2
- qiskit/circuit/library/iqp.py +2 -2
- qiskit/circuit/library/n_local/efficient_su2.py +2 -2
- qiskit/circuit/library/n_local/evolved_operator_ansatz.py +1 -1
- qiskit/circuit/library/n_local/excitation_preserving.py +7 -9
- qiskit/circuit/library/n_local/n_local.py +4 -3
- qiskit/circuit/library/n_local/pauli_two_design.py +2 -2
- qiskit/circuit/library/n_local/real_amplitudes.py +2 -2
- qiskit/circuit/library/n_local/two_local.py +2 -2
- qiskit/circuit/library/overlap.py +2 -2
- qiskit/circuit/library/pauli_evolution.py +3 -2
- qiskit/circuit/library/phase_estimation.py +2 -2
- qiskit/circuit/library/standard_gates/dcx.py +11 -12
- qiskit/circuit/library/standard_gates/ecr.py +21 -24
- qiskit/circuit/library/standard_gates/equivalence_library.py +232 -96
- qiskit/circuit/library/standard_gates/global_phase.py +5 -6
- qiskit/circuit/library/standard_gates/h.py +22 -45
- qiskit/circuit/library/standard_gates/i.py +1 -1
- qiskit/circuit/library/standard_gates/iswap.py +13 -31
- qiskit/circuit/library/standard_gates/p.py +19 -26
- qiskit/circuit/library/standard_gates/r.py +11 -17
- qiskit/circuit/library/standard_gates/rx.py +21 -45
- qiskit/circuit/library/standard_gates/rxx.py +7 -22
- qiskit/circuit/library/standard_gates/ry.py +21 -39
- qiskit/circuit/library/standard_gates/ryy.py +13 -28
- qiskit/circuit/library/standard_gates/rz.py +18 -35
- qiskit/circuit/library/standard_gates/rzx.py +7 -22
- qiskit/circuit/library/standard_gates/rzz.py +7 -19
- qiskit/circuit/library/standard_gates/s.py +44 -39
- qiskit/circuit/library/standard_gates/swap.py +25 -38
- qiskit/circuit/library/standard_gates/sx.py +34 -41
- qiskit/circuit/library/standard_gates/t.py +18 -27
- qiskit/circuit/library/standard_gates/u.py +8 -24
- qiskit/circuit/library/standard_gates/u1.py +28 -52
- qiskit/circuit/library/standard_gates/u2.py +9 -9
- qiskit/circuit/library/standard_gates/u3.py +24 -40
- qiskit/circuit/library/standard_gates/x.py +190 -336
- qiskit/circuit/library/standard_gates/xx_minus_yy.py +12 -50
- qiskit/circuit/library/standard_gates/xx_plus_yy.py +13 -52
- qiskit/circuit/library/standard_gates/y.py +19 -23
- qiskit/circuit/library/standard_gates/z.py +31 -38
- qiskit/circuit/parameter.py +14 -5
- qiskit/circuit/parameterexpression.py +109 -75
- qiskit/circuit/quantumcircuit.py +172 -99
- qiskit/circuit/quantumcircuitdata.py +1 -0
- qiskit/circuit/random/__init__.py +37 -2
- qiskit/circuit/random/utils.py +445 -56
- qiskit/circuit/tools/pi_check.py +5 -13
- qiskit/compiler/transpiler.py +1 -1
- qiskit/converters/circuit_to_instruction.py +2 -2
- qiskit/dagcircuit/dagnode.py +8 -3
- qiskit/primitives/__init__.py +2 -2
- qiskit/primitives/base/base_estimator.py +2 -2
- qiskit/primitives/containers/data_bin.py +0 -3
- qiskit/primitives/containers/observables_array.py +192 -108
- qiskit/primitives/primitive_job.py +29 -10
- qiskit/providers/fake_provider/generic_backend_v2.py +2 -0
- qiskit/qasm3/__init__.py +106 -12
- qiskit/qasm3/ast.py +15 -1
- qiskit/qasm3/exporter.py +59 -36
- qiskit/qasm3/printer.py +12 -0
- qiskit/qpy/__init__.py +182 -6
- qiskit/qpy/binary_io/circuits.py +256 -24
- qiskit/qpy/binary_io/parse_sympy_repr.py +5 -0
- qiskit/qpy/binary_io/schedules.py +12 -32
- qiskit/qpy/binary_io/value.py +36 -18
- qiskit/qpy/common.py +11 -3
- qiskit/qpy/formats.py +17 -1
- qiskit/qpy/interface.py +52 -12
- qiskit/qpy/type_keys.py +7 -1
- qiskit/quantum_info/__init__.py +10 -0
- qiskit/quantum_info/operators/__init__.py +1 -0
- qiskit/quantum_info/operators/symplectic/__init__.py +1 -0
- qiskit/quantum_info/operators/symplectic/clifford_circuits.py +26 -0
- qiskit/quantum_info/operators/symplectic/pauli.py +2 -2
- qiskit/result/sampled_expval.py +3 -1
- qiskit/synthesis/__init__.py +10 -0
- qiskit/synthesis/arithmetic/__init__.py +1 -1
- qiskit/synthesis/arithmetic/adders/__init__.py +1 -0
- qiskit/synthesis/arithmetic/adders/draper_qft_adder.py +6 -2
- qiskit/synthesis/arithmetic/adders/rv_ripple_carry_adder.py +156 -0
- qiskit/synthesis/discrete_basis/generate_basis_approximations.py +14 -126
- qiskit/synthesis/discrete_basis/solovay_kitaev.py +161 -121
- qiskit/synthesis/evolution/lie_trotter.py +10 -7
- qiskit/synthesis/evolution/product_formula.py +10 -7
- qiskit/synthesis/evolution/qdrift.py +10 -7
- qiskit/synthesis/evolution/suzuki_trotter.py +10 -7
- qiskit/synthesis/multi_controlled/__init__.py +4 -0
- qiskit/synthesis/multi_controlled/mcx_synthesis.py +402 -178
- qiskit/synthesis/multi_controlled/multi_control_rotation_gates.py +14 -15
- qiskit/synthesis/qft/qft_decompose_lnn.py +7 -25
- qiskit/synthesis/unitary/qsd.py +80 -9
- qiskit/transpiler/__init__.py +10 -3
- qiskit/transpiler/instruction_durations.py +2 -20
- qiskit/transpiler/passes/__init__.py +5 -2
- qiskit/transpiler/passes/layout/dense_layout.py +26 -6
- qiskit/transpiler/passes/layout/disjoint_utils.py +1 -166
- qiskit/transpiler/passes/layout/sabre_layout.py +22 -3
- qiskit/transpiler/passes/layout/sabre_pre_layout.py +1 -1
- qiskit/transpiler/passes/layout/vf2_layout.py +49 -13
- qiskit/transpiler/passes/layout/vf2_utils.py +10 -0
- qiskit/transpiler/passes/optimization/__init__.py +1 -1
- qiskit/transpiler/passes/optimization/optimize_1q_decomposition.py +2 -1
- qiskit/transpiler/passes/optimization/optimize_clifford_t.py +68 -0
- qiskit/transpiler/passes/optimization/template_matching/template_substitution.py +3 -9
- qiskit/transpiler/passes/routing/sabre_swap.py +4 -2
- qiskit/transpiler/passes/routing/star_prerouting.py +106 -81
- qiskit/transpiler/passes/scheduling/__init__.py +1 -1
- qiskit/transpiler/passes/scheduling/alignments/check_durations.py +1 -1
- qiskit/transpiler/passes/scheduling/padding/__init__.py +1 -0
- qiskit/transpiler/passes/scheduling/padding/context_aware_dynamical_decoupling.py +876 -0
- qiskit/transpiler/passes/synthesis/__init__.py +1 -0
- qiskit/transpiler/passes/synthesis/clifford_unitary_synth_plugin.py +123 -0
- qiskit/transpiler/passes/synthesis/hls_plugins.py +494 -93
- qiskit/transpiler/passes/synthesis/plugin.py +4 -0
- qiskit/transpiler/passes/synthesis/solovay_kitaev_synthesis.py +27 -22
- qiskit/transpiler/passmanager_config.py +3 -0
- qiskit/transpiler/preset_passmanagers/builtin_plugins.py +149 -28
- qiskit/transpiler/preset_passmanagers/common.py +101 -0
- qiskit/transpiler/preset_passmanagers/generate_preset_pass_manager.py +6 -0
- qiskit/transpiler/preset_passmanagers/level3.py +2 -2
- qiskit/transpiler/target.py +15 -2
- qiskit/utils/optionals.py +6 -5
- qiskit/visualization/circuit/_utils.py +5 -3
- qiskit/visualization/circuit/latex.py +9 -2
- qiskit/visualization/circuit/matplotlib.py +26 -4
- qiskit/visualization/circuit/qcstyle.py +9 -157
- qiskit/visualization/dag/__init__.py +13 -0
- qiskit/visualization/dag/dagstyle.py +103 -0
- qiskit/visualization/dag/styles/__init__.py +13 -0
- qiskit/visualization/dag/styles/color.json +10 -0
- qiskit/visualization/dag/styles/plain.json +5 -0
- qiskit/visualization/dag_visualization.py +169 -98
- qiskit/visualization/style.py +223 -0
- {qiskit-2.0.3.dist-info → qiskit-2.1.0.dist-info}/METADATA +7 -6
- {qiskit-2.0.3.dist-info → qiskit-2.1.0.dist-info}/RECORD +178 -169
- {qiskit-2.0.3.dist-info → qiskit-2.1.0.dist-info}/entry_points.txt +6 -0
- qiskit/synthesis/discrete_basis/commutator_decompose.py +0 -265
- qiskit/synthesis/discrete_basis/gate_sequence.py +0 -421
- {qiskit-2.0.3.dist-info → qiskit-2.1.0.dist-info}/WHEEL +0 -0
- {qiskit-2.0.3.dist-info → qiskit-2.1.0.dist-info}/licenses/LICENSE.txt +0 -0
- {qiskit-2.0.3.dist-info → qiskit-2.1.0.dist-info}/top_level.txt +0 -0
@@ -92,24 +92,24 @@ class U1Gate(Gate):
|
|
92
92
|
`1612.00858 <https://arxiv.org/abs/1612.00858>`_
|
93
93
|
"""
|
94
94
|
|
95
|
-
_standard_gate = StandardGate.
|
95
|
+
_standard_gate = StandardGate.U1
|
96
96
|
|
97
97
|
def __init__(self, theta: ParameterValueType, label: str | None = None):
|
98
98
|
"""Create new U1 gate."""
|
99
99
|
super().__init__("u1", 1, [theta], label=label)
|
100
100
|
|
101
101
|
def _define(self):
|
102
|
+
"""Default definition"""
|
102
103
|
# pylint: disable=cyclic-import
|
103
|
-
from qiskit.circuit import QuantumCircuit
|
104
|
-
from .u3 import U3Gate # pylint: disable=cyclic-import
|
104
|
+
from qiskit.circuit import QuantumCircuit
|
105
105
|
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
for instr, qargs, cargs in rules:
|
110
|
-
qc._append(instr, qargs, cargs)
|
106
|
+
# ┌──────┐
|
107
|
+
# q: ┤ P(θ) ├
|
108
|
+
# └──────┘
|
111
109
|
|
112
|
-
self.definition =
|
110
|
+
self.definition = QuantumCircuit._from_circuit_data(
|
111
|
+
StandardGate.U1._get_definition(self.params), add_regs=True, name=self.name
|
112
|
+
)
|
113
113
|
|
114
114
|
def control(
|
115
115
|
self,
|
@@ -224,7 +224,7 @@ class CU1Gate(ControlledGate):
|
|
224
224
|
phase difference.
|
225
225
|
"""
|
226
226
|
|
227
|
-
_standard_gate = StandardGate.
|
227
|
+
_standard_gate = StandardGate.CU1
|
228
228
|
|
229
229
|
def __init__(
|
230
230
|
self,
|
@@ -246,35 +246,19 @@ class CU1Gate(ControlledGate):
|
|
246
246
|
)
|
247
247
|
|
248
248
|
def _define(self):
|
249
|
-
"""
|
250
|
-
gate cu1(lambda) a,b
|
251
|
-
{ u1(lambda/2) a; cx a,b;
|
252
|
-
u1(-lambda/2) b; cx a,b;
|
253
|
-
u1(lambda/2) b;
|
254
|
-
}
|
255
|
-
"""
|
249
|
+
"""Default definition"""
|
256
250
|
# pylint: disable=cyclic-import
|
257
|
-
from qiskit.circuit import QuantumCircuit
|
258
|
-
|
259
|
-
|
260
|
-
#
|
261
|
-
#
|
262
|
-
#
|
263
|
-
#
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
(U1Gate(self.params[0] / 2), [q[0]], []),
|
269
|
-
(CXGate(), [q[0], q[1]], []),
|
270
|
-
(U1Gate(-self.params[0] / 2), [q[1]], []),
|
271
|
-
(CXGate(), [q[0], q[1]], []),
|
272
|
-
(U1Gate(self.params[0] / 2), [q[1]], []),
|
273
|
-
]
|
274
|
-
for instr, qargs, cargs in rules:
|
275
|
-
qc._append(instr, qargs, cargs)
|
276
|
-
|
277
|
-
self.definition = qc
|
251
|
+
from qiskit.circuit import QuantumCircuit
|
252
|
+
|
253
|
+
# ┌────────┐
|
254
|
+
# q_0: ┤ P(θ/2) ├──■───────────────■────────────
|
255
|
+
# └────────┘┌─┴─┐┌─────────┐┌─┴─┐┌────────┐
|
256
|
+
# q_1: ──────────┤ X ├┤ P(-θ/2) ├┤ X ├┤ P(θ/2) ├
|
257
|
+
# └───┘└─────────┘└───┘└────────┘
|
258
|
+
|
259
|
+
self.definition = QuantumCircuit._from_circuit_data(
|
260
|
+
StandardGate.CU1._get_definition(self.params), add_regs=True, name=self.name
|
261
|
+
)
|
278
262
|
|
279
263
|
def control(
|
280
264
|
self,
|
@@ -408,24 +392,16 @@ class MCU1Gate(ControlledGate):
|
|
408
392
|
|
409
393
|
def _define(self):
|
410
394
|
# pylint: disable=cyclic-import
|
411
|
-
from qiskit.circuit import QuantumCircuit, QuantumRegister
|
412
|
-
|
413
|
-
q = QuantumRegister(self.num_qubits, "q")
|
414
|
-
qc = QuantumCircuit(q, name=self.name)
|
415
|
-
|
416
395
|
if self.num_ctrl_qubits == 0:
|
417
396
|
definition = U1Gate(self.params[0]).definition
|
418
|
-
|
397
|
+
elif self.num_ctrl_qubits == 1:
|
419
398
|
definition = CU1Gate(self.params[0]).definition
|
420
399
|
else:
|
421
|
-
from .
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
for instr, qargs, cargs in definition:
|
427
|
-
qc._append(instr, qargs, cargs)
|
428
|
-
self.definition = qc
|
400
|
+
from .p import MCPhaseGate
|
401
|
+
|
402
|
+
definition = MCPhaseGate(self.params[0], self.num_ctrl_qubits).definition
|
403
|
+
|
404
|
+
self.definition = definition
|
429
405
|
|
430
406
|
def control(
|
431
407
|
self,
|
@@ -86,7 +86,7 @@ class U2Gate(Gate):
|
|
86
86
|
using two X90 pulses.
|
87
87
|
"""
|
88
88
|
|
89
|
-
_standard_gate = StandardGate.
|
89
|
+
_standard_gate = StandardGate.U2
|
90
90
|
|
91
91
|
def __init__(
|
92
92
|
self,
|
@@ -98,17 +98,17 @@ class U2Gate(Gate):
|
|
98
98
|
super().__init__("u2", 1, [phi, lam], label=label)
|
99
99
|
|
100
100
|
def _define(self):
|
101
|
+
"""Default definition"""
|
101
102
|
# pylint: disable=cyclic-import
|
102
|
-
from qiskit.circuit import QuantumCircuit
|
103
|
-
from .u3 import U3Gate
|
103
|
+
from qiskit.circuit import QuantumCircuit
|
104
104
|
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
for instr, qargs, cargs in rules:
|
109
|
-
qc._append(instr, qargs, cargs)
|
105
|
+
# ┌────────────┐
|
106
|
+
# q: ┤ U(π/2,φ,λ) ├
|
107
|
+
# └────────────┘
|
110
108
|
|
111
|
-
self.definition =
|
109
|
+
self.definition = QuantumCircuit._from_circuit_data(
|
110
|
+
StandardGate.U2._get_definition(self.params), add_regs=True, name=self.name
|
111
|
+
)
|
112
112
|
|
113
113
|
def inverse(self, annotated: bool = False):
|
114
114
|
r"""Return inverted U2 gate.
|
@@ -83,7 +83,7 @@ class U3Gate(Gate):
|
|
83
83
|
U3(\theta, 0, 0) = RY(\theta)
|
84
84
|
"""
|
85
85
|
|
86
|
-
_standard_gate = StandardGate.
|
86
|
+
_standard_gate = StandardGate.U3
|
87
87
|
|
88
88
|
def __init__(
|
89
89
|
self,
|
@@ -151,12 +151,17 @@ class U3Gate(Gate):
|
|
151
151
|
return gate
|
152
152
|
|
153
153
|
def _define(self):
|
154
|
-
|
154
|
+
"""Default definition"""
|
155
|
+
# pylint: disable=cyclic-import
|
156
|
+
from qiskit.circuit import QuantumCircuit
|
157
|
+
|
158
|
+
# ┌──────────┐
|
159
|
+
# q: ┤ U(θ,φ,λ) ├
|
160
|
+
# └──────────┘
|
155
161
|
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
self.definition = qc
|
162
|
+
self.definition = QuantumCircuit._from_circuit_data(
|
163
|
+
StandardGate.U3._get_definition(self.params), add_regs=True, name=self.name
|
164
|
+
)
|
160
165
|
|
161
166
|
def __array__(self, dtype=None, copy=None):
|
162
167
|
"""Return a Numpy.array for the U3 gate."""
|
@@ -257,7 +262,7 @@ class CU3Gate(ControlledGate):
|
|
257
262
|
\end{pmatrix}
|
258
263
|
"""
|
259
264
|
|
260
|
-
_standard_gate = StandardGate.
|
265
|
+
_standard_gate = StandardGate.CU3
|
261
266
|
|
262
267
|
def __init__(
|
263
268
|
self,
|
@@ -281,40 +286,19 @@ class CU3Gate(ControlledGate):
|
|
281
286
|
)
|
282
287
|
|
283
288
|
def _define(self):
|
284
|
-
"""
|
285
|
-
gate cu3(theta,phi,lambda) c, t
|
286
|
-
{ u1((lambda+phi)/2) c;
|
287
|
-
u1((lambda-phi)/2) t;
|
288
|
-
cx c,t;
|
289
|
-
u3(-theta/2,0,-(phi+lambda)/2) t;
|
290
|
-
cx c,t;
|
291
|
-
u3(theta/2,phi,0) t;
|
292
|
-
}
|
293
|
-
"""
|
289
|
+
"""Default definition"""
|
294
290
|
# pylint: disable=cyclic-import
|
295
|
-
from qiskit.circuit import QuantumCircuit
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
#
|
300
|
-
#
|
301
|
-
#
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
rules = [
|
307
|
-
(U1Gate((self.params[2] + self.params[1]) / 2), [q[0]], []),
|
308
|
-
(U1Gate((self.params[2] - self.params[1]) / 2), [q[1]], []),
|
309
|
-
(CXGate(), [q[0], q[1]], []),
|
310
|
-
(U3Gate(-self.params[0] / 2, 0, -(self.params[1] + self.params[2]) / 2), [q[1]], []),
|
311
|
-
(CXGate(), [q[0], q[1]], []),
|
312
|
-
(U3Gate(self.params[0] / 2, self.params[1], 0), [q[1]], []),
|
313
|
-
]
|
314
|
-
for instr, qargs, cargs in rules:
|
315
|
-
qc._append(instr, qargs, cargs)
|
316
|
-
|
317
|
-
self.definition = qc
|
291
|
+
from qiskit.circuit import QuantumCircuit
|
292
|
+
|
293
|
+
# ┌──────────────┐
|
294
|
+
# q_0: ┤ P(λ/2 + φ/2) ├──■────────────────────────────■────────────────
|
295
|
+
# ├──────────────┤┌─┴─┐┌──────────────────────┐┌─┴─┐┌────────────┐
|
296
|
+
# q_1: ┤ P(λ/2 - φ/2) ├┤ X ├┤ U(-θ/2,0,-λ/2 - φ/2) ├┤ X ├┤ U(θ/2,φ,0) ├
|
297
|
+
# └──────────────┘└───┘└──────────────────────┘└───┘└────────────┘
|
298
|
+
|
299
|
+
self.definition = QuantumCircuit._from_circuit_data(
|
300
|
+
StandardGate.CU3._get_definition(self.params), add_regs=True, name=self.name
|
301
|
+
)
|
318
302
|
|
319
303
|
def inverse(self, annotated: bool = False):
|
320
304
|
r"""Return inverted CU3 gate.
|