qiskit 1.1.1__cp38-abi3-macosx_10_9_universal2.whl → 1.1.2__cp38-abi3-macosx_10_9_universal2.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/_accelerate.abi3.so +0 -0
- qiskit/circuit/classicalfunction/__init__.py +8 -0
- qiskit/circuit/library/standard_gates/x.py +2 -0
- qiskit/circuit/quantumcircuit.py +2 -0
- qiskit/dagcircuit/dagcircuit.py +7 -0
- qiskit/primitives/containers/bit_array.py +5 -2
- qiskit/providers/fake_provider/generic_backend_v2.py +5 -0
- qiskit/pulse/schedule.py +3 -3
- qiskit/quantum_info/operators/symplectic/pauli.py +11 -9
- qiskit/synthesis/discrete_basis/generate_basis_approximations.py +1 -1
- qiskit/synthesis/discrete_basis/solovay_kitaev.py +22 -12
- qiskit/transpiler/__init__.py +5 -5
- qiskit/transpiler/layout.py +3 -3
- qiskit/transpiler/passes/optimization/collect_cliffords.py +6 -15
- qiskit/transpiler/passes/routing/commuting_2q_gate_routing/pauli_2q_evolution_commutation.py +5 -1
- qiskit/transpiler/passes/synthesis/unitary_synthesis.py +3 -0
- qiskit/transpiler/preset_passmanagers/__init__.py +2 -2
- qiskit/visualization/bloch.py +44 -1
- qiskit/visualization/dag_visualization.py +10 -3
- qiskit/visualization/pass_manager_visualization.py +9 -9
- {qiskit-1.1.1.dist-info → qiskit-1.1.2.dist-info}/METADATA +18 -18
- {qiskit-1.1.1.dist-info → qiskit-1.1.2.dist-info}/RECORD +27 -27
- {qiskit-1.1.1.dist-info → qiskit-1.1.2.dist-info}/WHEEL +1 -1
- {qiskit-1.1.1.dist-info → qiskit-1.1.2.dist-info}/LICENSE.txt +0 -0
- {qiskit-1.1.1.dist-info → qiskit-1.1.2.dist-info}/entry_points.txt +0 -0
- {qiskit-1.1.1.dist-info → qiskit-1.1.2.dist-info}/top_level.txt +0 -0
qiskit/VERSION.txt
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.1.
|
1
|
+
1.1.2
|
qiskit/_accelerate.abi3.so
CHANGED
Binary file
|
@@ -51,6 +51,14 @@ QuantumCircuit:
|
|
51
51
|
Following Qiskit's little-endian bit ordering convention, the left-most bit (``a``) is the most
|
52
52
|
significant bit and the right-most bit (``d``) is the least significant bit.
|
53
53
|
|
54
|
+
.. warning::
|
55
|
+
|
56
|
+
The functionality of `qiskit.circuit.classicalfunction` requires `tweedledum`,
|
57
|
+
which isn't available on all platforms (up to Python version 3.11).
|
58
|
+
See `tweedledum installation guide
|
59
|
+
<https://github.com/boschmitt/tweedledum/tree/master?tab=readme-ov-file#installation>`_
|
60
|
+
for more details.
|
61
|
+
|
54
62
|
Supplementary Information
|
55
63
|
=========================
|
56
64
|
|
@@ -21,6 +21,7 @@ from qiskit.circuit.quantumregister import QuantumRegister
|
|
21
21
|
from qiskit.circuit._utils import _ctrl_state_to_int, with_gate_array, with_controlled_gate_array
|
22
22
|
|
23
23
|
_X_ARRAY = [[0, 1], [1, 0]]
|
24
|
+
_SX_ARRAY = [[0.5 + 0.5j, 0.5 - 0.5j], [0.5 - 0.5j, 0.5 + 0.5j]]
|
24
25
|
|
25
26
|
|
26
27
|
@with_gate_array(_X_ARRAY)
|
@@ -562,6 +563,7 @@ class RCCXGate(SingletonGate):
|
|
562
563
|
return isinstance(other, RCCXGate)
|
563
564
|
|
564
565
|
|
566
|
+
@with_controlled_gate_array(_SX_ARRAY, num_ctrl_qubits=3, cached_states=(7,))
|
565
567
|
class C3SXGate(SingletonControlledGate):
|
566
568
|
"""The 3-qubit controlled sqrt-X gate.
|
567
569
|
|
qiskit/circuit/quantumcircuit.py
CHANGED
@@ -3640,6 +3640,8 @@ class QuantumCircuit:
|
|
3640
3640
|
[(ParameterTable.GLOBAL_PHASE, None)]
|
3641
3641
|
)
|
3642
3642
|
cpy._data = CircuitData(self._data.qubits, self._data.clbits)
|
3643
|
+
# Invalidate parameters caching.
|
3644
|
+
cpy._parameters = None
|
3643
3645
|
|
3644
3646
|
cpy._calibrations = _copy.deepcopy(self._calibrations)
|
3645
3647
|
cpy._metadata = _copy.deepcopy(self._metadata)
|
qiskit/dagcircuit/dagcircuit.py
CHANGED
@@ -1343,6 +1343,13 @@ class DAGCircuit:
|
|
1343
1343
|
block_cargs.sort(key=wire_pos_map.get)
|
1344
1344
|
new_node = DAGOpNode(op, block_qargs, block_cargs, dag=self)
|
1345
1345
|
|
1346
|
+
# check the op to insert matches the number of qubits we put it on
|
1347
|
+
if op.num_qubits != len(block_qargs):
|
1348
|
+
raise DAGCircuitError(
|
1349
|
+
f"Number of qubits in the replacement operation ({op.num_qubits}) is not equal to "
|
1350
|
+
f"the number of qubits in the block ({len(block_qargs)})!"
|
1351
|
+
)
|
1352
|
+
|
1346
1353
|
try:
|
1347
1354
|
new_node._node_id = self._multi_graph.contract_nodes(
|
1348
1355
|
block_ids, new_node, check_cycle=cycle_check
|
@@ -231,7 +231,7 @@ class BitArray(ShapedMixin):
|
|
231
231
|
Args:
|
232
232
|
counts: One or more counts-like mappings with the same number of shots.
|
233
233
|
num_bits: The desired number of bits per shot. If unset, the biggest value found sets
|
234
|
-
this value.
|
234
|
+
this value, with a minimum of one bit.
|
235
235
|
|
236
236
|
Returns:
|
237
237
|
A new bit array with shape ``()`` for single input counts, or ``(N,)`` for an iterable
|
@@ -275,7 +275,7 @@ class BitArray(ShapedMixin):
|
|
275
275
|
Args:
|
276
276
|
samples: A list of bitstrings, a list of integers, or a list of hexstrings.
|
277
277
|
num_bits: The desired number of bits per sample. If unset, the biggest sample provided
|
278
|
-
is used to determine this value.
|
278
|
+
is used to determine this value, with a minimum of one bit.
|
279
279
|
|
280
280
|
Returns:
|
281
281
|
A new bit array.
|
@@ -298,6 +298,9 @@ class BitArray(ShapedMixin):
|
|
298
298
|
# we are forced to prematurely look at every iterand in this case
|
299
299
|
ints = list(ints)
|
300
300
|
num_bits = max(map(int.bit_length, ints))
|
301
|
+
# convention: if the only value is 0, represent with one bit:
|
302
|
+
if num_bits == 0:
|
303
|
+
num_bits = 1
|
301
304
|
|
302
305
|
num_bytes = _min_num_bytes(num_bits)
|
303
306
|
data = b"".join(val.to_bytes(num_bytes, "big") for val in ints)
|
@@ -375,6 +375,11 @@ class GenericBackendV2(BackendV2):
|
|
375
375
|
f"in the standard qiskit circuit library."
|
376
376
|
)
|
377
377
|
gate = self._supported_gates[name]
|
378
|
+
if self.num_qubits < gate.num_qubits:
|
379
|
+
raise QiskitError(
|
380
|
+
f"Provided basis gate {name} needs more qubits than {self.num_qubits}, "
|
381
|
+
f"which is the size of the backend."
|
382
|
+
)
|
378
383
|
noise_params = self._get_noise_defaults(name, gate.num_qubits)
|
379
384
|
self._add_noisy_instruction_to_target(gate, noise_params, calibration_inst_map)
|
380
385
|
|
qiskit/pulse/schedule.py
CHANGED
@@ -252,7 +252,7 @@ class Schedule:
|
|
252
252
|
|
253
253
|
Notes:
|
254
254
|
Nested schedules are returned as-is. If you want to collect only instructions,
|
255
|
-
use py:meth:`~Schedule.instructions` instead.
|
255
|
+
use :py:meth:`~Schedule.instructions` instead.
|
256
256
|
|
257
257
|
Returns:
|
258
258
|
A tuple, where each element is a two-tuple containing the initial
|
@@ -490,7 +490,7 @@ class Schedule:
|
|
490
490
|
) -> "Schedule":
|
491
491
|
"""Return a ``Schedule`` with only the instructions from this Schedule *failing*
|
492
492
|
at least one of the provided filters.
|
493
|
-
This method is the complement of py:meth:`~
|
493
|
+
This method is the complement of :py:meth:`~Schedule.filter`, so that::
|
494
494
|
|
495
495
|
self.filter(args) | self.exclude(args) == self
|
496
496
|
|
@@ -1309,7 +1309,7 @@ class ScheduleBlock:
|
|
1309
1309
|
):
|
1310
1310
|
"""Return a new ``ScheduleBlock`` with only the instructions from this ``ScheduleBlock``
|
1311
1311
|
*failing* at least one of the provided filters.
|
1312
|
-
This method is the complement of py:meth:`~
|
1312
|
+
This method is the complement of :py:meth:`~ScheduleBlock.filter`, so that::
|
1313
1313
|
|
1314
1314
|
self.filter(args) + self.exclude(args) == self in terms of instructions included.
|
1315
1315
|
|
@@ -77,7 +77,7 @@ class Pauli(BasePauli):
|
|
77
77
|
|
78
78
|
An :math:`n`-qubit Pauli may be represented by a string consisting of
|
79
79
|
:math:`n` characters from ``['I', 'X', 'Y', 'Z']``, and optionally phase
|
80
|
-
coefficient in
|
80
|
+
coefficient in ``['', '-i', '-', 'i']``. For example: ``'XYZ'`` or
|
81
81
|
``'-iZIZ'``.
|
82
82
|
|
83
83
|
In the string representation qubit-0 corresponds to the right-most
|
@@ -160,21 +160,23 @@ class Pauli(BasePauli):
|
|
160
160
|
_CANONICAL_PHASE_LABEL = {"": 0, "-i": 1, "-": 2, "i": 3}
|
161
161
|
|
162
162
|
def __init__(self, data: str | tuple | Pauli | ScalarOp | QuantumCircuit | None = None):
|
163
|
-
"""Initialize the Pauli.
|
163
|
+
r"""Initialize the Pauli.
|
164
164
|
|
165
165
|
When using the symplectic array input data both z and x arguments must
|
166
166
|
be provided, however the first (z) argument can be used alone for string
|
167
|
-
label, Pauli operator, or ScalarOp input data.
|
167
|
+
label, Pauli operator, or :class:`.ScalarOp` input data.
|
168
168
|
|
169
169
|
Args:
|
170
170
|
data (str or tuple or Pauli or ScalarOp): input data for Pauli. If input is
|
171
|
-
a tuple it must be of the form ``(z, x)`` or (z, x, phase)`` where
|
172
|
-
``z`` and ``x`` are boolean Numpy arrays, and phase is an integer from
|
171
|
+
a tuple it must be of the form ``(z, x)`` or ``(z, x, phase)`` where
|
172
|
+
``z`` and ``x`` are boolean Numpy arrays, and phase is an integer from
|
173
|
+
:math:`\mathbb{Z}_4`.
|
173
174
|
If input is a string, it must be a concatenation of a phase and a Pauli string
|
174
|
-
(e.g. 'XYZ', '-iZIZ') where a phase string is a combination of at most three
|
175
|
-
characters from ['+', '-', '']
|
176
|
-
e.g. ''
|
177
|
-
|
175
|
+
(e.g. ``'XYZ', '-iZIZ'``) where a phase string is a combination of at most three
|
176
|
+
characters from ``['+', '-', '']``, ``['1', '']``, and ``['i', 'j', '']`` in this order,
|
177
|
+
e.g. ``''``, ``'-1j'`` while a Pauli string is 1 or more
|
178
|
+
characters of ``'I'``, ``'X'``, ``'Y'``, or ``'Z'``,
|
179
|
+
e.g. ``'Z'``, ``'XIYY'``.
|
178
180
|
|
179
181
|
Raises:
|
180
182
|
QiskitError: if input array is invalid shape.
|
@@ -16,8 +16,6 @@ from __future__ import annotations
|
|
16
16
|
|
17
17
|
import numpy as np
|
18
18
|
|
19
|
-
from qiskit.circuit.gate import Gate
|
20
|
-
|
21
19
|
from .gate_sequence import GateSequence
|
22
20
|
from .commutator_decompose import commutator_decompose
|
23
21
|
from .generate_basis_approximations import generate_basic_approximations, _1q_gates, _1q_inverses
|
@@ -53,14 +51,19 @@ class SolovayKitaevDecomposition:
|
|
53
51
|
|
54
52
|
self.basic_approximations = self.load_basic_approximations(basic_approximations)
|
55
53
|
|
56
|
-
|
54
|
+
@staticmethod
|
55
|
+
def load_basic_approximations(data: list | str | dict) -> list[GateSequence]:
|
57
56
|
"""Load basic approximations.
|
58
57
|
|
59
58
|
Args:
|
60
59
|
data: If a string, specifies the path to the file from where to load the data.
|
61
|
-
If a dictionary, directly specifies the decompositions as ``{gates: matrix}
|
62
|
-
There ``gates`` are the names of the gates
|
63
|
-
|
60
|
+
If a dictionary, directly specifies the decompositions as ``{gates: matrix}``
|
61
|
+
or ``{gates: (matrix, global_phase)}``. There, ``gates`` are the names of the gates
|
62
|
+
producing the SO(3) matrix ``matrix``, e.g.
|
63
|
+
``{"h t": np.array([[0, 0.7071, -0.7071], [0, -0.7071, -0.7071], [-1, 0, 0]]}``
|
64
|
+
and the ``global_phase`` can be given to account for a global phase difference
|
65
|
+
between the U(2) matrix of the quantum gates and the stored SO(3) matrix.
|
66
|
+
If not given, the ``global_phase`` will be assumed to be 0.
|
64
67
|
|
65
68
|
Returns:
|
66
69
|
A list of basic approximations as type ``GateSequence``.
|
@@ -74,13 +77,20 @@ class SolovayKitaevDecomposition:
|
|
74
77
|
|
75
78
|
# if a file, load the dictionary
|
76
79
|
if isinstance(data, str):
|
77
|
-
data = np.load(data, allow_pickle=True)
|
80
|
+
data = np.load(data, allow_pickle=True).item()
|
78
81
|
|
79
82
|
sequences = []
|
80
|
-
for gatestring,
|
83
|
+
for gatestring, matrix_and_phase in data.items():
|
84
|
+
if isinstance(matrix_and_phase, tuple):
|
85
|
+
matrix, global_phase = matrix_and_phase
|
86
|
+
else:
|
87
|
+
matrix, global_phase = matrix_and_phase, 0
|
88
|
+
|
81
89
|
sequence = GateSequence()
|
82
90
|
sequence.gates = [_1q_gates[element] for element in gatestring.split()]
|
91
|
+
sequence.labels = [gate.name for gate in sequence.gates]
|
83
92
|
sequence.product = np.asarray(matrix)
|
93
|
+
sequence.global_phase = global_phase
|
84
94
|
sequences.append(sequence)
|
85
95
|
|
86
96
|
return sequences
|
@@ -157,14 +167,14 @@ class SolovayKitaevDecomposition:
|
|
157
167
|
w_n1 = self._recurse(w_n, n - 1, check_input=check_input)
|
158
168
|
return v_n1.dot(w_n1).dot(v_n1.adjoint()).dot(w_n1.adjoint()).dot(u_n1)
|
159
169
|
|
160
|
-
def find_basic_approximation(self, sequence: GateSequence) ->
|
161
|
-
"""
|
170
|
+
def find_basic_approximation(self, sequence: GateSequence) -> GateSequence:
|
171
|
+
"""Find ``GateSequence`` in ``self._basic_approximations`` that approximates ``sequence``.
|
162
172
|
|
163
173
|
Args:
|
164
|
-
sequence:
|
174
|
+
sequence: ``GateSequence`` to find the approximation to.
|
165
175
|
|
166
176
|
Returns:
|
167
|
-
|
177
|
+
``GateSequence`` in ``self._basic_approximations`` that approximates ``sequence``.
|
168
178
|
"""
|
169
179
|
# TODO explore using a k-d tree here
|
170
180
|
|
qiskit/transpiler/__init__.py
CHANGED
@@ -650,8 +650,6 @@ manner to the "physical" qubits in an actual quantum device.
|
|
650
650
|
.. image:: /source_images/mapping.png
|
651
651
|
|
652
652
|
|
653
|
-
|
654
|
-
|
655
653
|
By default, qiskit will do this mapping for you. The choice of mapping depends on the
|
656
654
|
properties of the circuit, the particular device you are targeting, and the optimization
|
657
655
|
level that is chosen. The choice of initial layout is extremely important for minimizing the
|
@@ -684,10 +682,12 @@ Next, for the heuristic stage, 2 passes are used by default:
|
|
684
682
|
:class:`~.SabreLayout` is used to select a layout if a perfect layout isn't found for
|
685
683
|
optimization levels 1, 2, and 3.
|
686
684
|
- :class:`~.TrivialLayout`: Always used for the layout at optimization level 0.
|
685
|
+
|
686
|
+
There are other passes than can be used for the heuristic stage, but are not included in the default
|
687
|
+
pipeline, such as:
|
688
|
+
|
687
689
|
- :class:`~.DenseLayout`: Finds the sub-graph of the device with greatest connectivity
|
688
|
-
that has the same number of qubits as the circuit.
|
689
|
-
optimization level 1 if there are control flow operations (such as
|
690
|
-
:class:`~.IfElseOp`) present in the circuit.
|
690
|
+
that has the same number of qubits as the circuit.
|
691
691
|
|
692
692
|
Let's see what layouts are automatically picked at various optimization levels. The circuits
|
693
693
|
returned by :func:`qiskit.compiler.transpile` are annotated with this initial layout information,
|
qiskit/transpiler/layout.py
CHANGED
@@ -454,7 +454,7 @@ class TranspileLayout:
|
|
454
454
|
qubits in the circuit as it fits the circuit to the target backend. For example,
|
455
455
|
let the input circuit be:
|
456
456
|
|
457
|
-
.. plot
|
457
|
+
.. plot::
|
458
458
|
:include-source:
|
459
459
|
|
460
460
|
from qiskit.circuit import QuantumCircuit, QuantumRegister
|
@@ -469,7 +469,7 @@ class TranspileLayout:
|
|
469
469
|
|
470
470
|
Suppose that during the layout stage the transpiler reorders the qubits to be:
|
471
471
|
|
472
|
-
.. plot
|
472
|
+
.. plot::
|
473
473
|
:include-source:
|
474
474
|
|
475
475
|
from qiskit import QuantumCircuit
|
@@ -497,7 +497,7 @@ class TranspileLayout:
|
|
497
497
|
the transpiler needs to insert swap gates, and the output circuit
|
498
498
|
becomes:
|
499
499
|
|
500
|
-
.. plot
|
500
|
+
.. plot::
|
501
501
|
:include-source:
|
502
502
|
|
503
503
|
from qiskit import QuantumCircuit
|
@@ -22,6 +22,7 @@ from qiskit.transpiler.passes.optimization.collect_and_collapse import (
|
|
22
22
|
)
|
23
23
|
|
24
24
|
from qiskit.quantum_info.operators import Clifford
|
25
|
+
from qiskit.quantum_info.operators.symplectic.clifford_circuits import _BASIS_1Q, _BASIS_2Q
|
25
26
|
|
26
27
|
|
27
28
|
class CollectCliffords(CollectAndCollapse):
|
@@ -69,21 +70,11 @@ class CollectCliffords(CollectAndCollapse):
|
|
69
70
|
)
|
70
71
|
|
71
72
|
|
72
|
-
clifford_gate_names =
|
73
|
-
|
74
|
-
|
75
|
-
"
|
76
|
-
|
77
|
-
"s",
|
78
|
-
"sdg",
|
79
|
-
"cx",
|
80
|
-
"cy",
|
81
|
-
"cz",
|
82
|
-
"swap",
|
83
|
-
"clifford",
|
84
|
-
"linear_function",
|
85
|
-
"pauli",
|
86
|
-
]
|
73
|
+
clifford_gate_names = (
|
74
|
+
list(_BASIS_1Q.keys())
|
75
|
+
+ list(_BASIS_2Q.keys())
|
76
|
+
+ ["clifford", "linear_function", "pauli", "permutation"]
|
77
|
+
)
|
87
78
|
|
88
79
|
|
89
80
|
def _is_clifford_gate(node):
|
qiskit/transpiler/passes/routing/commuting_2q_gate_routing/pauli_2q_evolution_commutation.py
CHANGED
@@ -51,7 +51,11 @@ class FindCommutingPauliEvolutions(TransformationPass):
|
|
51
51
|
sub_dag = self._decompose_to_2q(dag, node.op)
|
52
52
|
|
53
53
|
block_op = Commuting2qBlock(set(sub_dag.op_nodes()))
|
54
|
-
wire_order = {
|
54
|
+
wire_order = {
|
55
|
+
wire: idx
|
56
|
+
for idx, wire in enumerate(sub_dag.qubits)
|
57
|
+
if wire not in sub_dag.idle_wires()
|
58
|
+
}
|
55
59
|
dag.replace_block_with_op([node], block_op, wire_order)
|
56
60
|
|
57
61
|
return dag
|
@@ -49,6 +49,7 @@ from qiskit.circuit.library.standard_gates import (
|
|
49
49
|
CZGate,
|
50
50
|
RXXGate,
|
51
51
|
RZXGate,
|
52
|
+
RZZGate,
|
52
53
|
ECRGate,
|
53
54
|
)
|
54
55
|
from qiskit.transpiler.passes.synthesis import plugin
|
@@ -744,6 +745,8 @@ class DefaultUnitarySynthesis(plugin.UnitarySynthesisPlugin):
|
|
744
745
|
op = RXXGate(pi / 2)
|
745
746
|
elif isinstance(op, RZXGate) and isinstance(op.params[0], Parameter):
|
746
747
|
op = RZXGate(pi / 4)
|
748
|
+
elif isinstance(op, RZZGate) and isinstance(op.params[0], Parameter):
|
749
|
+
op = RZZGate(pi / 2)
|
747
750
|
return op
|
748
751
|
|
749
752
|
try:
|
@@ -96,8 +96,8 @@ def generate_preset_pass_manager(
|
|
96
96
|
):
|
97
97
|
"""Generate a preset :class:`~.PassManager`
|
98
98
|
|
99
|
-
This function is used to quickly generate a preset pass manager.
|
100
|
-
|
99
|
+
This function is used to quickly generate a preset pass manager. Preset pass
|
100
|
+
managers are the default pass managers used by the :func:`~.transpile`
|
101
101
|
function. This function provides a convenient and simple method to construct
|
102
102
|
a standalone :class:`~.PassManager` object that mirrors what the :func:`~.transpile`
|
103
103
|
function internally builds and uses.
|
qiskit/visualization/bloch.py
CHANGED
@@ -50,6 +50,7 @@ __all__ = ["Bloch"]
|
|
50
50
|
|
51
51
|
import math
|
52
52
|
import os
|
53
|
+
import re
|
53
54
|
import numpy as np
|
54
55
|
import matplotlib
|
55
56
|
import matplotlib.pyplot as plt
|
@@ -60,6 +61,47 @@ from mpl_toolkits.mplot3d.art3d import Patch3D
|
|
60
61
|
from .utils import matplotlib_close_if_inline
|
61
62
|
|
62
63
|
|
64
|
+
# This version pattern is taken from the pypa packaging project:
|
65
|
+
# https://github.com/pypa/packaging/blob/21.3/packaging/version.py#L223-L254
|
66
|
+
# which is dual licensed Apache 2.0 and BSD see the source for the original
|
67
|
+
# authors and other details
|
68
|
+
VERSION_PATTERN = (
|
69
|
+
"^"
|
70
|
+
+ r"""
|
71
|
+
v?
|
72
|
+
(?:
|
73
|
+
(?:(?P<epoch>[0-9]+)!)? # epoch
|
74
|
+
(?P<release>[0-9]+(?:\.[0-9]+)*) # release segment
|
75
|
+
(?P<pre> # pre-release
|
76
|
+
[-_\.]?
|
77
|
+
(?P<pre_l>(a|b|c|rc|alpha|beta|pre|preview))
|
78
|
+
[-_\.]?
|
79
|
+
(?P<pre_n>[0-9]+)?
|
80
|
+
)?
|
81
|
+
(?P<post> # post release
|
82
|
+
(?:-(?P<post_n1>[0-9]+))
|
83
|
+
|
|
84
|
+
(?:
|
85
|
+
[-_\.]?
|
86
|
+
(?P<post_l>post|rev|r)
|
87
|
+
[-_\.]?
|
88
|
+
(?P<post_n2>[0-9]+)?
|
89
|
+
)
|
90
|
+
)?
|
91
|
+
(?P<dev> # dev release
|
92
|
+
[-_\.]?
|
93
|
+
(?P<dev_l>dev)
|
94
|
+
[-_\.]?
|
95
|
+
(?P<dev_n>[0-9]+)?
|
96
|
+
)?
|
97
|
+
)
|
98
|
+
(?:\+(?P<local>[a-z0-9]+(?:[-_\.][a-z0-9]+)*))? # local version
|
99
|
+
"""
|
100
|
+
+ "$"
|
101
|
+
)
|
102
|
+
VERSION_PATTERN_REGEX = re.compile(VERSION_PATTERN, re.VERBOSE | re.IGNORECASE)
|
103
|
+
|
104
|
+
|
63
105
|
class Arrow3D(Patch3D, FancyArrowPatch):
|
64
106
|
"""Makes a fancy arrow"""
|
65
107
|
|
@@ -419,7 +461,8 @@ class Bloch:
|
|
419
461
|
self.fig = plt.figure(figsize=self.figsize)
|
420
462
|
|
421
463
|
if not self._ext_axes:
|
422
|
-
|
464
|
+
version_match = VERSION_PATTERN_REGEX.search(matplotlib.__version__)
|
465
|
+
if tuple(int(x) for x in version_match.group("release").split(".")) >= (3, 4, 0):
|
423
466
|
self.axes = Axes3D(
|
424
467
|
self.fig, azim=self.view[0], elev=self.view[1], auto_add_to_figure=False
|
425
468
|
)
|
@@ -174,10 +174,13 @@ def dag_drawer(dag, scale=0.7, filename=None, style="color"):
|
|
174
174
|
label = register_bit_labels.get(
|
175
175
|
node.wire, f"q_{dag.find_bit(node.wire).index}"
|
176
176
|
)
|
177
|
-
|
177
|
+
elif isinstance(node.wire, Clbit):
|
178
178
|
label = register_bit_labels.get(
|
179
179
|
node.wire, f"c_{dag.find_bit(node.wire).index}"
|
180
180
|
)
|
181
|
+
else:
|
182
|
+
label = str(node.wire.name)
|
183
|
+
|
181
184
|
n["label"] = label
|
182
185
|
n["color"] = "black"
|
183
186
|
n["style"] = "filled"
|
@@ -187,10 +190,12 @@ def dag_drawer(dag, scale=0.7, filename=None, style="color"):
|
|
187
190
|
label = register_bit_labels.get(
|
188
191
|
node.wire, f"q[{dag.find_bit(node.wire).index}]"
|
189
192
|
)
|
190
|
-
|
193
|
+
elif isinstance(node.wire, Clbit):
|
191
194
|
label = register_bit_labels.get(
|
192
195
|
node.wire, f"c[{dag.find_bit(node.wire).index}]"
|
193
196
|
)
|
197
|
+
else:
|
198
|
+
label = str(node.wire.name)
|
194
199
|
n["label"] = label
|
195
200
|
n["color"] = "black"
|
196
201
|
n["style"] = "filled"
|
@@ -203,8 +208,10 @@ def dag_drawer(dag, scale=0.7, filename=None, style="color"):
|
|
203
208
|
e = {}
|
204
209
|
if isinstance(edge, Qubit):
|
205
210
|
label = register_bit_labels.get(edge, f"q_{dag.find_bit(edge).index}")
|
206
|
-
|
211
|
+
elif isinstance(edge, Clbit):
|
207
212
|
label = register_bit_labels.get(edge, f"c_{dag.find_bit(edge).index}")
|
213
|
+
else:
|
214
|
+
label = str(edge.name)
|
208
215
|
e["label"] = label
|
209
216
|
return e
|
210
217
|
|
@@ -176,7 +176,7 @@ def staged_pass_manager_drawer(pass_manager, filename=None, style=None, raw=Fals
|
|
176
176
|
stage = getattr(pass_manager, st)
|
177
177
|
|
178
178
|
if stage is not None:
|
179
|
-
stagegraph = pydot.Cluster(str(st), label=str(st),
|
179
|
+
stagegraph = pydot.Cluster(str(st), fontname="helvetica", label=str(st), labeljust="l")
|
180
180
|
for controller_group in stage.to_flow_controller().tasks:
|
181
181
|
subgraph, component_id, prev_node = draw_subgraph(
|
182
182
|
controller_group, component_id, style, prev_node, idx
|
@@ -201,7 +201,7 @@ def draw_subgraph(controller_group, component_id, style, prev_node, idx):
|
|
201
201
|
label += f"{controller_group.__class__.__name__}"
|
202
202
|
|
203
203
|
# create the subgraph for this controller
|
204
|
-
subgraph = pydot.Cluster(str(component_id),
|
204
|
+
subgraph = pydot.Cluster(str(component_id), fontname="helvetica", label=label, labeljust="l")
|
205
205
|
component_id += 1
|
206
206
|
|
207
207
|
if isinstance(controller_group, BaseController):
|
@@ -233,19 +233,19 @@ def draw_subgraph(controller_group, component_id, style, prev_node, idx):
|
|
233
233
|
# TODO recursively inject subgraph into subgraph
|
234
234
|
node = pydot.Node(
|
235
235
|
str(component_id),
|
236
|
-
label="Nested flow controller",
|
237
236
|
color="k",
|
238
|
-
shape="rectangle",
|
239
237
|
fontname="helvetica",
|
238
|
+
label="Nested flow controller",
|
239
|
+
shape="rectangle",
|
240
240
|
)
|
241
241
|
else:
|
242
242
|
# label is the name of the pass
|
243
243
|
node = pydot.Node(
|
244
244
|
str(component_id),
|
245
|
-
label=str(type(task).__name__),
|
246
245
|
color=_get_node_color(task, style),
|
247
|
-
shape="rectangle",
|
248
246
|
fontname="helvetica",
|
247
|
+
label=str(type(task).__name__),
|
248
|
+
shape="rectangle",
|
249
249
|
)
|
250
250
|
|
251
251
|
subgraph.add_node(node)
|
@@ -268,12 +268,12 @@ def draw_subgraph(controller_group, component_id, style, prev_node, idx):
|
|
268
268
|
|
269
269
|
input_node = pydot.Node(
|
270
270
|
component_id,
|
271
|
-
label=arg,
|
272
271
|
color="black",
|
273
|
-
|
272
|
+
fontname="helvetica",
|
274
273
|
fontsize=10,
|
274
|
+
label=arg,
|
275
|
+
shape="ellipse",
|
275
276
|
style=nd_style,
|
276
|
-
fontname="helvetica",
|
277
277
|
)
|
278
278
|
subgraph.add_node(input_node)
|
279
279
|
component_id += 1
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: qiskit
|
3
|
-
Version: 1.1.
|
3
|
+
Version: 1.1.2
|
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
|
@@ -28,29 +28,29 @@ Classifier: Topic :: Scientific/Engineering
|
|
28
28
|
Requires-Python: >=3.8
|
29
29
|
Description-Content-Type: text/markdown
|
30
30
|
License-File: LICENSE.txt
|
31
|
-
Requires-Dist: rustworkx
|
32
|
-
Requires-Dist: numpy
|
33
|
-
Requires-Dist: scipy
|
34
|
-
Requires-Dist: sympy
|
35
|
-
Requires-Dist: dill
|
36
|
-
Requires-Dist: python-dateutil
|
37
|
-
Requires-Dist: stevedore
|
31
|
+
Requires-Dist: rustworkx>=0.14.0
|
32
|
+
Requires-Dist: numpy<3,>=1.17
|
33
|
+
Requires-Dist: scipy>=1.5
|
34
|
+
Requires-Dist: sympy>=1.3
|
35
|
+
Requires-Dist: dill>=0.3
|
36
|
+
Requires-Dist: python-dateutil>=2.8.0
|
37
|
+
Requires-Dist: stevedore>=3.0.0
|
38
38
|
Requires-Dist: typing-extensions
|
39
|
-
Requires-Dist: symengine
|
39
|
+
Requires-Dist: symengine>=0.11
|
40
40
|
Provides-Extra: all
|
41
|
-
Requires-Dist: qiskit[crosstalk-pass,csp-layout-pass,qasm3-import,visualization]
|
41
|
+
Requires-Dist: qiskit[crosstalk-pass,csp-layout-pass,qasm3-import,visualization]; extra == "all"
|
42
42
|
Provides-Extra: crosstalk-pass
|
43
|
-
Requires-Dist: z3-solver
|
43
|
+
Requires-Dist: z3-solver>=4.7; extra == "crosstalk-pass"
|
44
44
|
Provides-Extra: csp-layout-pass
|
45
|
-
Requires-Dist: python-constraint
|
45
|
+
Requires-Dist: python-constraint>=1.4; extra == "csp-layout-pass"
|
46
46
|
Provides-Extra: qasm3-import
|
47
|
-
Requires-Dist: qiskit-qasm3-import
|
47
|
+
Requires-Dist: qiskit-qasm3-import>=0.1.0; extra == "qasm3-import"
|
48
48
|
Provides-Extra: visualization
|
49
|
-
Requires-Dist: matplotlib
|
50
|
-
Requires-Dist: pydot
|
51
|
-
Requires-Dist: Pillow
|
52
|
-
Requires-Dist: pylatexenc
|
53
|
-
Requires-Dist: seaborn
|
49
|
+
Requires-Dist: matplotlib>=3.3; extra == "visualization"
|
50
|
+
Requires-Dist: pydot; extra == "visualization"
|
51
|
+
Requires-Dist: Pillow>=4.2.1; extra == "visualization"
|
52
|
+
Requires-Dist: pylatexenc>=1.4; extra == "visualization"
|
53
|
+
Requires-Dist: seaborn>=0.9.0; extra == "visualization"
|
54
54
|
|
55
55
|
# Qiskit
|
56
56
|
|
@@ -1,20 +1,20 @@
|
|
1
1
|
qiskit/version.py,sha256=MiraFeJt5GQEspFyvP3qJedHen2C1e8dNEttzg0u7YU,2498
|
2
2
|
qiskit/__init__.py,sha256=-V2Nc5jRmFe8T5Xz56voQyKOeaeAEa8VTCHHSMJ_DuI,5088
|
3
|
-
qiskit/_accelerate.abi3.so,sha256=
|
3
|
+
qiskit/_accelerate.abi3.so,sha256=DqVrFSHurw90pGTY6ftjz-IT7C_FMYJpd_ocq9XliPE,9283120
|
4
4
|
qiskit/user_config.py,sha256=8pNxf1TlqHcIQoAYHrXKzZpwf2ur92HxQtlc_DUkiEc,9174
|
5
5
|
qiskit/_numpy_compat.py,sha256=0zvOTOgoP-YLumVe0x7dYNt68jdaR6xQ0IEmsyXCft4,2814
|
6
6
|
qiskit/exceptions.py,sha256=78bbfww9680_v4CaNgepavY5DwGTN7_j47Ckob3lLPM,5619
|
7
|
-
qiskit/VERSION.txt,sha256=
|
7
|
+
qiskit/VERSION.txt,sha256=dxI7jkvb1UUFv26AIVJ6xgKBYCoG_jB1ZFMsTbo528o,6
|
8
8
|
qiskit/visualization/circuit_visualization.py,sha256=6R-A96Uwb_RZOovsSB0LGVsC7lP5IhtLNp6VP2yVBwE,698
|
9
9
|
qiskit/visualization/counts_visualization.py,sha256=rgoEqV0gucL9Auz33wf1LiRWR3yFQzjK94zzBF830iY,16791
|
10
|
-
qiskit/visualization/pass_manager_visualization.py,sha256=
|
10
|
+
qiskit/visualization/pass_manager_visualization.py,sha256=ng5koUMIFfEYU-PsOmvs_4eawOJyFXJzUlxDF1Kedyk,11220
|
11
11
|
qiskit/visualization/state_visualization.py,sha256=zHd-QX_WsHIiivqmNQK6pp86KxR2sqwYrU4qKaSoyQc,52232
|
12
12
|
qiskit/visualization/library.py,sha256=oCzruZqrshriwA17kSfCeY0ujZehr6WZnWvZNmvUw7g,1295
|
13
|
-
qiskit/visualization/bloch.py,sha256=
|
13
|
+
qiskit/visualization/bloch.py,sha256=ODJAO9M4BRJTu-UtwOGaUk_86G18ZHWIEC-i_AXMVoc,30458
|
14
14
|
qiskit/visualization/transition_visualization.py,sha256=Cnb6Itg_0KHFVZft2Z9DiSc_fDkIhJOUg94PR_KUbY8,12171
|
15
15
|
qiskit/visualization/gate_map.py,sha256=5Doji9QG_rcx_MQPp9dCXX7Rc7H-3yoqUaW2yPYkbxQ,36392
|
16
16
|
qiskit/visualization/__init__.py,sha256=HPgzHp8pY3wXCLYnEKla1YiMMjHbjM6suvJcV4pVmw8,7645
|
17
|
-
qiskit/visualization/dag_visualization.py,sha256=
|
17
|
+
qiskit/visualization/dag_visualization.py,sha256=Vy8eIDWbQh8NvDg_0-aW4Z0GXBeIPCI3-bkl69hpY-A,9070
|
18
18
|
qiskit/visualization/utils.py,sha256=OPB2TA5SCZk19mhuUcm8RdrXzJfPX3A_Cu-Aoouw0a4,1776
|
19
19
|
qiskit/visualization/exceptions.py,sha256=XPB9Z5EUJiAbYjCW6WX7TxEg0AKcw3av1xV0jywRRrY,682
|
20
20
|
qiskit/visualization/array.py,sha256=EMatkIJjuvpJopOINM1ahRbt0DfnOCpBSAmZIEFdQ0E,7924
|
@@ -61,9 +61,9 @@ qiskit/visualization/timeline/plotters/base_plotter.py,sha256=1do-sZjHjUzqh3HI3M
|
|
61
61
|
qiskit/visualization/timeline/plotters/matplotlib.py,sha256=Ihybu3Cr6aLeUxH3mROZVUYKruj5Jp8eDDveQsRYm9k,6951
|
62
62
|
qiskit/visualization/timeline/plotters/__init__.py,sha256=3uM5AgCcqxqBHhslUGjjmqEL6Q04hVSGvl3d2bsUtTI,572
|
63
63
|
qiskit/transpiler/timing_constraints.py,sha256=TAFuarfaeLdH4AdWO1Cexv7jo8VC8IGhAOPYTDLBFdE,2382
|
64
|
-
qiskit/transpiler/layout.py,sha256=
|
64
|
+
qiskit/transpiler/layout.py,sha256=FhsoZxKDJ-i9j-DVCKzzmuSPtaDhu3dHDLxwJVTO3fY,28084
|
65
65
|
qiskit/transpiler/coupling.py,sha256=C7EoGfItd9cJDx79KJxCdsdwK5IZ4ME5LXARxGNZPFQ,18609
|
66
|
-
qiskit/transpiler/__init__.py,sha256=
|
66
|
+
qiskit/transpiler/__init__.py,sha256=aAjL8q9arfgCwbhM3VgPU-_Jmx2153JCH2QD2QJ3epw,48683
|
67
67
|
qiskit/transpiler/basepasses.py,sha256=s6Av22HpFL2ll5YSjx89oAOz2VowJMXr8j7gqujTcUc,8769
|
68
68
|
qiskit/transpiler/passmanager.py,sha256=pRw9VgLQgiVY-me35krHZu7cFTUvbc7-r2mbUZ7dF0E,20198
|
69
69
|
qiskit/transpiler/passmanager_config.py,sha256=W0Vi73vGspwn6Z8jwUeiU3CZQdbFBbyYt1a2fgjpbko,9220
|
@@ -143,7 +143,7 @@ qiskit/transpiler/passes/optimization/remove_reset_in_zero_state.py,sha256=xE5ok
|
|
143
143
|
qiskit/transpiler/passes/optimization/cx_cancellation.py,sha256=EbwBAEM751bO4c5mJgJ0nYJ2TyPJM12Kl30SgHqJ1eQ,2336
|
144
144
|
qiskit/transpiler/passes/optimization/normalize_rx_angle.py,sha256=23ZddjkU924Yc7hLCXKOCmMCkHVGvaueEg8OYBbQvV4,6255
|
145
145
|
qiskit/transpiler/passes/optimization/commutative_cancellation.py,sha256=zJSmCN1OvvChdODCYDlPnM76m1EpbJRWYFRWRNTdmkk,9137
|
146
|
-
qiskit/transpiler/passes/optimization/collect_cliffords.py,sha256=
|
146
|
+
qiskit/transpiler/passes/optimization/collect_cliffords.py,sha256=EYi7j6iDQyMLwGiex4FhbIc6t92xkeTgwN6K_lWwkNw,3074
|
147
147
|
qiskit/transpiler/passes/optimization/collect_multiqubit_blocks.py,sha256=jPTWmAaFVCSRD0fF5yJs7VH6byHnynie7r0xX2WXgp0,9838
|
148
148
|
qiskit/transpiler/passes/optimization/inverse_cancellation.py,sha256=T-2k7AkTZfj1H1NQP6zz-75jgn7YLxo10aHRWGdh8bI,6848
|
149
149
|
qiskit/transpiler/passes/optimization/_gate_extension.py,sha256=_rOObudQUvzSnaa9wAYbdKX7ZVc-vpazKc4pSWhXICw,3306
|
@@ -184,7 +184,7 @@ qiskit/transpiler/passes/synthesis/__init__.py,sha256=VYO9Sl_SJyoZ_bLronrkvK9u8k
|
|
184
184
|
qiskit/transpiler/passes/synthesis/plugin.py,sha256=99Nx6lQwfc6mEohDA0Pnqz9NO9zuRMSgwcghrFi26N0,30829
|
185
185
|
qiskit/transpiler/passes/synthesis/linear_functions_synthesis.py,sha256=Q1r-52HMETK_7iWTMmJKGU39rNws-MrmGDHh7TgQVj4,1407
|
186
186
|
qiskit/transpiler/passes/synthesis/high_level_synthesis.py,sha256=7fgQAVI-wOEF51VnxwXPdGbIfmV0KT89cQ5LrvEEv_4,40693
|
187
|
-
qiskit/transpiler/passes/synthesis/unitary_synthesis.py,sha256=
|
187
|
+
qiskit/transpiler/passes/synthesis/unitary_synthesis.py,sha256=jfZfLfnYS12rm5a8FCFFn4g-MQXtc6CrsBRZrywiOm8,43641
|
188
188
|
qiskit/transpiler/passes/synthesis/aqc_plugin.py,sha256=SDgHqcCHR0hON50ckSHQDrVnBzOc-I7hYibE6r6oaB8,5343
|
189
189
|
qiskit/transpiler/passes/routing/__init__.py,sha256=SHAsTgVHmWlf1wp9WirLqN5kz9HOK-RkwjOxX4qzMMQ,942
|
190
190
|
qiskit/transpiler/passes/routing/layout_transformation.py,sha256=RdwvDw6zxPZeofX9QPbMqRBPZ_hB7KVxgOm0dX3_MoA,4640
|
@@ -195,7 +195,7 @@ qiskit/transpiler/passes/routing/lookahead_swap.py,sha256=o4Itq4BsYk6LeqPzCJgttk
|
|
195
195
|
qiskit/transpiler/passes/routing/sabre_swap.py,sha256=c3b7op4UChjIAmns-eynqWQB2a7qs3mEkSRylrUy9Qk,18718
|
196
196
|
qiskit/transpiler/passes/routing/stochastic_swap.py,sha256=PfuqrnDr-1ca3nyDol_M75743JoxYW-FfBQsA8oikZ0,23054
|
197
197
|
qiskit/transpiler/passes/routing/commuting_2q_gate_routing/commuting_2q_block.py,sha256=LihCUwM6kX9J5e_52grD8iyOuvNDEgxcVREib5CtO74,2012
|
198
|
-
qiskit/transpiler/passes/routing/commuting_2q_gate_routing/pauli_2q_evolution_commutation.py,sha256=
|
198
|
+
qiskit/transpiler/passes/routing/commuting_2q_gate_routing/pauli_2q_evolution_commutation.py,sha256=y7FbjU3Yu3cUa4G5AeKa48hDM1pyZK8f61F6zNdNFsY,5133
|
199
199
|
qiskit/transpiler/passes/routing/commuting_2q_gate_routing/__init__.py,sha256=9EmiNpQaoMwMwmQCFLASmR3xaIc5LRbxnAA9_IH3rGc,1230
|
200
200
|
qiskit/transpiler/passes/routing/commuting_2q_gate_routing/commuting_2q_gate_router.py,sha256=HIpQAWFUUmDdrdINjWCd0vYE4746pZ9Ry8FNBxyH3zg,17762
|
201
201
|
qiskit/transpiler/passes/routing/commuting_2q_gate_routing/swap_strategy.py,sha256=u271dRCx8Y3DErXQzyWTbzhdaGQXo6GudA_AOlHF75U,12349
|
@@ -211,7 +211,7 @@ qiskit/transpiler/passes/basis/basis_translator.py,sha256=DJ4egY2GLqJVwNBuoW_GIn
|
|
211
211
|
qiskit/transpiler/passes/basis/unroll_custom_definitions.py,sha256=dsxj95JOPYRAUOH7dIEczW4QTyhlOhrkuIrOxn4orU4,4391
|
212
212
|
qiskit/transpiler/preset_passmanagers/builtin_plugins.py,sha256=2tUf6kD4tL0wHSoMNoY6tnrAErGck35hXRpV_WcQG9E,40137
|
213
213
|
qiskit/transpiler/preset_passmanagers/level0.py,sha256=bE5Md9gV1x_0kPSO2Ni0FUJBCNaFLrWDGRsz1rLBzKY,4282
|
214
|
-
qiskit/transpiler/preset_passmanagers/__init__.py,sha256=
|
214
|
+
qiskit/transpiler/preset_passmanagers/__init__.py,sha256=eDSbIPySkWM2wkUBNqJdyiiUu7DkayOcKrbOpmoITL0,14978
|
215
215
|
qiskit/transpiler/preset_passmanagers/level1.py,sha256=15OG8az6JecM-3CjyFNgIrTL8HW_2hiFRmoZvpu8c_k,4806
|
216
216
|
qiskit/transpiler/preset_passmanagers/common.py,sha256=3jSJXTfgcGUvHoGKphfuPW301Ai3TBI504rVszeuX24,25918
|
217
217
|
qiskit/transpiler/preset_passmanagers/level2.py,sha256=Bt0EAyreXQb5cxAR6JF_4XoieaJVwi2qO5UyxYSHZiY,4731
|
@@ -273,7 +273,7 @@ qiskit/circuit/controlledgate.py,sha256=tvn9yyfLJcgGJOvjld42ZPQprQPSw5FTAqAZOju4
|
|
273
273
|
qiskit/circuit/bit.py,sha256=CRVp2JMA65QjktYSH3JzF6zmGqefOc1-ksGjswgmORc,3124
|
274
274
|
qiskit/circuit/exceptions.py,sha256=QoT6kFuoVLe6lWUlTKkSMWufVtyfDCgaUe1kyv79WAY,691
|
275
275
|
qiskit/circuit/equivalence_library.py,sha256=7f2T6c7sbDWaVQNVALNJL0olLVFZmHgA9xzcy7_FdDQ,708
|
276
|
-
qiskit/circuit/quantumcircuit.py,sha256=
|
276
|
+
qiskit/circuit/quantumcircuit.py,sha256=HEwR-07dcu-rA4wYuDTYRJlg2cD6yDfQa2blbcq7dHI,292897
|
277
277
|
qiskit/circuit/_standard_gates_commutations.py,sha256=6lsU_f27w7T1r0vPqT3IgiGF8IXxKthwtYgG4sbuFg4,85750
|
278
278
|
qiskit/circuit/instruction.py,sha256=bpnwR3lJu5UvFi70TK1tFREzJhVlj4dGhnB2UwD5s4Y,24557
|
279
279
|
qiskit/circuit/equivalence.py,sha256=Ld7dZHiJ-I-jlLIoJBVsWYRkobK9g8jPFe7InGO2wUo,11287
|
@@ -283,7 +283,7 @@ qiskit/circuit/_utils.py,sha256=BvlI7n1xUJ0kOgRykfgAzhzXTHEtQd9LNYQIqMcIP08,6927
|
|
283
283
|
qiskit/circuit/commutation_library.py,sha256=uoghnYE4cdFMb-Yiwpe01iVSNYIZkzJI8slulUWDmwg,850
|
284
284
|
qiskit/circuit/classicalfunction/classical_element.py,sha256=a1YkLC2mckF9LjVx_ft2uZSO06GGL_0EgU08yYko88s,1834
|
285
285
|
qiskit/circuit/classicalfunction/classical_function_visitor.py,sha256=F56IahWr3AvYoyIMTGJsoyXqkYvLH0-WlhuhfII9NPA,6026
|
286
|
-
qiskit/circuit/classicalfunction/__init__.py,sha256
|
286
|
+
qiskit/circuit/classicalfunction/__init__.py,sha256=4RvA-WLTwneaydzchLK1RKjjMuwrBq3MzRfyDObhyeM,4334
|
287
287
|
qiskit/circuit/classicalfunction/boolean_expression.py,sha256=jDeVtPVjozAnFSnyQ1b-e-b621SDTMcAePscxNIBKh4,4840
|
288
288
|
qiskit/circuit/classicalfunction/types.py,sha256=QqLAIlxEdem9RwO2nKLswVvf67PJEfbViCnNiw28Pic,604
|
289
289
|
qiskit/circuit/classicalfunction/utils.py,sha256=reQtD-3tVLNBPB5k75jGfb0ulwE-pWxofMVYx5fnx8A,2940
|
@@ -362,7 +362,7 @@ qiskit/circuit/library/standard_gates/r.py,sha256=DKfy98MW6LQ-qN5fNxyXKKS2p4c2GX
|
|
362
362
|
qiskit/circuit/library/standard_gates/swap.py,sha256=RqqAMg_kejCFqVhjHVZC-7t-raP-vj0prJvejkQb3Kg,8771
|
363
363
|
qiskit/circuit/library/standard_gates/y.py,sha256=egrXVM2-yM-Zwm7bnHWbk0PkkxvQ1rHd5dUhWE0OKgk,7750
|
364
364
|
qiskit/circuit/library/standard_gates/__init__.py,sha256=BI6SQ9xb2FdKjWRKTum1Q3Ux-jDJLP7sWoiE_ivaFQo,3730
|
365
|
-
qiskit/circuit/library/standard_gates/x.py,sha256
|
365
|
+
qiskit/circuit/library/standard_gates/x.py,sha256=Hq3iSJOvZHZYp1-LiCUaVZrDkzbJHr7RlpQA3xNDs5E,51936
|
366
366
|
qiskit/circuit/library/standard_gates/global_phase.py,sha256=0mrldoLjY2U0s7mrdF_bCt5cyJGsXDFNffu7QFmSB2c,2810
|
367
367
|
qiskit/circuit/library/standard_gates/rzz.py,sha256=xwcvNn7AEpz0V9t0UiRcBspUGZyUolzJY3Mbl6mBkLs,5166
|
368
368
|
qiskit/circuit/library/standard_gates/xx_minus_yy.py,sha256=T8CgJxr4WhAczGf3v88menKr9O5jh-RohVjjUnKcy2Y,6771
|
@@ -503,7 +503,7 @@ qiskit/providers/fake_provider/fake_1q.py,sha256=pzBYc48EvR1-9OfdivBMPBF8VHD6uSg
|
|
503
503
|
qiskit/providers/fake_provider/fake_backend.py,sha256=AFmLFMk6lTD6PsMA72Xu3USyCp2kaml_dEXtDQ00f2g,5682
|
504
504
|
qiskit/providers/fake_provider/__init__.py,sha256=uYrGKlJgnTxhe1qFRYNArWVv8JMYgv7ZglWr6ozvt3U,2899
|
505
505
|
qiskit/providers/fake_provider/fake_pulse_backend.py,sha256=vIVfM6yIIWiZ0Elo_pYaBizCTEOdZtySV2abFPtn-UI,1446
|
506
|
-
qiskit/providers/fake_provider/generic_backend_v2.py,sha256=
|
506
|
+
qiskit/providers/fake_provider/generic_backend_v2.py,sha256=DDi0fMKZp41SUtT0eQTQ5coJIZlpK06wmDlSM3ndFfw,25621
|
507
507
|
qiskit/providers/fake_provider/fake_qasm_backend.py,sha256=fxms3OVSOsKjaFTI53zWGJuFX3SW_jwwJP38kXCLXtE,2296
|
508
508
|
qiskit/providers/fake_provider/fake_openpulse_3q.py,sha256=bty8lGnTRrhYDrz6xbGM2QcLF6-qhwsVhw9TtHOs66s,15296
|
509
509
|
qiskit/providers/fake_provider/fake_openpulse_2q.py,sha256=iFUCDyWUWEdcURR_bayR328PnG1Xu5rF7rL_CneLl9w,16323
|
@@ -558,7 +558,7 @@ qiskit/pulse/macros.py,sha256=GrvLysMSZENzhsk2JvWxKQWyFzrm0UQE9SCS5lR6xy4,10707
|
|
558
558
|
qiskit/pulse/exceptions.py,sha256=TRLIXtga3yaOqLr6ZEfL8LlFZyO4XEMnWVjhY2M4ItA,1279
|
559
559
|
qiskit/pulse/channels.py,sha256=0mdKXpU3nIZrYNF6645rI70rdI0tglL9NHMDmNqk6ME,7435
|
560
560
|
qiskit/pulse/reference_manager.py,sha256=Zetcf3osTMPqGcgWNkRl4JXMLiUVaNPtIhaVZVsYiSc,2045
|
561
|
-
qiskit/pulse/schedule.py,sha256
|
561
|
+
qiskit/pulse/schedule.py,sha256=uiZXNDSuvz_NmTa9CEAlGvA4-8AtwDIhNmd1Lc-scYk,73149
|
562
562
|
qiskit/pulse/filters.py,sha256=vNodu-QJfG3eJvq4llWlMOnc_bJ5lxAK757HOPS-pTM,10208
|
563
563
|
qiskit/pulse/instructions/phase.py,sha256=496jJZT7FTURbF4CVjkN1SLEqPDZyBaz5EM8NsFzUZ4,5211
|
564
564
|
qiskit/pulse/instructions/frequency.py,sha256=quGhzkybIGSWpy8MzNG-1holposRHjiRgdkvPD7mSoQ,4440
|
@@ -601,7 +601,7 @@ qiskit/dagcircuit/dagdependency_v2.py,sha256=3ICFx6dJJqCRt6F--kJs5o69Ana3oZ8N6Xh
|
|
601
601
|
qiskit/dagcircuit/__init__.py,sha256=_EqnZKmQ3CdSov9QQDTSYcV21NKMluxy-YKluO9llPE,1192
|
602
602
|
qiskit/dagcircuit/exceptions.py,sha256=Jy8-MnQBLRphHwwE1PAeDfj9HOY70qp7r0k1sC_CiZE,1234
|
603
603
|
qiskit/dagcircuit/dagnode.py,sha256=YUfxidtm48VGxmhxoiPF8d2P7DjPe0fvl986ULRjVYg,12066
|
604
|
-
qiskit/dagcircuit/dagcircuit.py,sha256=
|
604
|
+
qiskit/dagcircuit/dagcircuit.py,sha256=31NukGn0iq5PkCl5eGzR26RM2Q604OOBphtA5Pshm2g,103850
|
605
605
|
qiskit/scheduler/config.py,sha256=qiKdqRPRQ2frKJxgXP9mHlz6_KCYrcc6yNvxhG1WVmc,1264
|
606
606
|
qiskit/scheduler/sequence.py,sha256=VTfMT1KVuhsVs5lWED-KLmgHpxA5yocJhUwKogdru7E,3979
|
607
607
|
qiskit/scheduler/lowering.py,sha256=yPpoxxT8AdR6ZBwiUF9g9imrsX0XOnqvsCBPBLE0lDM,8336
|
@@ -683,10 +683,10 @@ qiskit/synthesis/linear_phase/cnot_phase_synth.py,sha256=PyONT436ehjuJ8MeBXwCWhs
|
|
683
683
|
qiskit/synthesis/linear_phase/cz_depth_lnn.py,sha256=vr3WdJXL1h4q-ZfSSic2_XpvofxZkNq-vrtEAVvffQ4,6176
|
684
684
|
qiskit/synthesis/linear_phase/__init__.py,sha256=L68gn0ALnVL3H9W83Nwkj0TorHJT-a2lvnJK2Cu62tI,685
|
685
685
|
qiskit/synthesis/discrete_basis/gate_sequence.py,sha256=FLVVnihU8IA1BboTZGk9Wy-08Di3SdiOctjXDSsEKJU,13908
|
686
|
-
qiskit/synthesis/discrete_basis/generate_basis_approximations.py,sha256=
|
686
|
+
qiskit/synthesis/discrete_basis/generate_basis_approximations.py,sha256=kx1WDTa07wB9VATO2W5HxUQ9YDKd1BZgeSNFVHAFFNY,5272
|
687
687
|
qiskit/synthesis/discrete_basis/__init__.py,sha256=enFeQyxhsY3GD9HtoVPZ-A3DRyjTJJUhrh-yaeD8wD4,656
|
688
688
|
qiskit/synthesis/discrete_basis/commutator_decompose.py,sha256=POPNbXgBAiWivXVLgtTwJV6K_f4hYR3GAoDsc1yehuM,7553
|
689
|
-
qiskit/synthesis/discrete_basis/solovay_kitaev.py,sha256=
|
689
|
+
qiskit/synthesis/discrete_basis/solovay_kitaev.py,sha256=R_Wg73oQuujFXJ0NPuVZgV9lLc3gZU--IUSiqhgzxKk,8822
|
690
690
|
qiskit/primitives/backend_estimator_v2.py,sha256=T4FI4JQpWk0jKlvN-NE3gr-huC5hCjaHcqr2aXr6-pQ,17389
|
691
691
|
qiskit/primitives/backend_estimator.py,sha256=U8vjKB1jJZKvndrok3eDC3N2cMZXeZrQcpDoz4hcVR4,18439
|
692
692
|
qiskit/primitives/statevector_estimator.py,sha256=Q-DQ6YvzhWLUUpEfc9YPkqGOg8HoJCA1BdUIob4Feqk,6631
|
@@ -706,7 +706,7 @@ qiskit/primitives/containers/bindings_array.py,sha256=1I8rMBRvrMAlLJ7aWNAlHhykSQ
|
|
706
706
|
qiskit/primitives/containers/__init__.py,sha256=c0z9S5Et_qlbnj4cBfZVdhRFYJmr4L50h0zNSonjfXQ,950
|
707
707
|
qiskit/primitives/containers/estimator_pub.py,sha256=hr4B-q4cctt32NT_DLWDM7Q_zeMxR-qbGkYWljXsVSQ,8130
|
708
708
|
qiskit/primitives/containers/sampler_pub_result.py,sha256=LIU3h3C5-fdnVwtTaWKM-7LurtFLfeaHF5yNSiR9O04,2790
|
709
|
-
qiskit/primitives/containers/bit_array.py,sha256=
|
709
|
+
qiskit/primitives/containers/bit_array.py,sha256=l9gvUbmGH6r7cPn4ER1x9Jiss1c-lS7uNjUXXBgflSk,26916
|
710
710
|
qiskit/primitives/containers/shape.py,sha256=imdlfOIXwJx8655ISpNa06t1KqMC06iBIWCUDKxQGGY,3899
|
711
711
|
qiskit/primitives/containers/pub_result.py,sha256=IIM3jKczU2N4appeY1kh0BftssVD4LcwhbD2J791DTQ,1420
|
712
712
|
qiskit/primitives/containers/observables_array.py,sha256=OAKP7IDwiadZxXqV58wZYX3BA10pdSQ6-uh_sm8OzlY,10198
|
@@ -777,7 +777,7 @@ qiskit/quantum_info/operators/symplectic/__init__.py,sha256=avNZ9y84Y0x1_hfwZ7dv
|
|
777
777
|
qiskit/quantum_info/operators/symplectic/clifford.py,sha256=VYHN9yHqePZcYW8xvtO-DC6rPCpTMT7BWvF5xUD1igk,38596
|
778
778
|
qiskit/quantum_info/operators/symplectic/random.py,sha256=84y5EBei5Tpl-aFrkja60m1NtxS-2b82gOEQgWIJOF4,8896
|
779
779
|
qiskit/quantum_info/operators/symplectic/pauli_list.py,sha256=gbzveip-_buT6T2wkGNKsJZ2YzB7XrgeYzAVEafzP7Y,46205
|
780
|
-
qiskit/quantum_info/operators/symplectic/pauli.py,sha256=
|
780
|
+
qiskit/quantum_info/operators/symplectic/pauli.py,sha256=Xf_d_uJs3eh5y2Hi50YLquGVfPz15MIBWYL3Jcs9Akk,28546
|
781
781
|
qiskit/quantum_info/operators/symplectic/sparse_pauli_op.py,sha256=7CvVDgyQoPR7gQ4KYeFKGp5NvYfjJ10lL61jr-hvmuo,46917
|
782
782
|
qiskit/quantum_info/operators/dihedral/dihedral_circuits.py,sha256=qlkFv1Xueq8tQ88dC3cSbGLmXu3HT1I0-KVvKucFjlE,8839
|
783
783
|
qiskit/quantum_info/operators/dihedral/dihedral.py,sha256=I7ORwj-sBZtUy0KdcnoY48lFImh5gokudpjWHizpAmI,20341
|
@@ -810,9 +810,9 @@ qiskit/compiler/__init__.py,sha256=Far4-zXOyDGCqdNmFP4Q8zV47meApMw6sbIdd1t_wM4,9
|
|
810
810
|
qiskit/compiler/assembler.py,sha256=lj9JUtIyE0J-8NG0kwr5hiVihcj3NJohVw_4-PkhtVs,24341
|
811
811
|
qiskit/compiler/transpiler.py,sha256=Y43KJwBjBSng5YwVX_Y6ha1P5uGmoS0WwKeUMyzfqJA,27502
|
812
812
|
qiskit/compiler/scheduler.py,sha256=K_D6Fx648Xkqlghft03jsKbJEI4gVID0_OylxtfDnbk,4404
|
813
|
-
qiskit-1.1.
|
814
|
-
qiskit-1.1.
|
815
|
-
qiskit-1.1.
|
816
|
-
qiskit-1.1.
|
817
|
-
qiskit-1.1.
|
818
|
-
qiskit-1.1.
|
813
|
+
qiskit-1.1.2.dist-info/RECORD,,
|
814
|
+
qiskit-1.1.2.dist-info/WHEEL,sha256=lmqPbMnkYfRLFzK4tzuBqPppyHOzdJYfX2reiDko3_0,113
|
815
|
+
qiskit-1.1.2.dist-info/entry_points.txt,sha256=uQCOTD4Z3t6tvAzZ5Ql1hwGTDdKvYWfW93C8oTvYH80,3301
|
816
|
+
qiskit-1.1.2.dist-info/top_level.txt,sha256=_vjFXLv7qrHyJJOC2-JXfG54o4XQygW9GuQPxgtSt9Q,7
|
817
|
+
qiskit-1.1.2.dist-info/LICENSE.txt,sha256=IXrBXbzaJ4LgBPUVKIbYR5iMY2eqoMT8jDVTY8Ib0iQ,11416
|
818
|
+
qiskit-1.1.2.dist-info/METADATA,sha256=PTwmDg7o3CzGuTyGKnPvDS__4c-CBWq-vwquB0DdaUk,12884
|
File without changes
|
File without changes
|
File without changes
|