qiskit 1.3.0__cp39-abi3-win32.whl → 1.3.0rc1__cp39-abi3-win32.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.3.0
1
+ 1.3.0rc1
qiskit/_accelerate.pyd CHANGED
Binary file
@@ -36,7 +36,7 @@ For example, to append a multi-controlled CNOT:
36
36
  circuit.append(gate, [0, 1, 4, 2, 3])
37
37
  circuit.draw('mpl')
38
38
 
39
- The library is organized in several sections. The function
39
+ The library is organized in several sections. The function
40
40
  :func:`.get_standard_gate_name_mapping` allows you to see the available standard gates and operations.
41
41
 
42
42
  .. autofunction:: get_standard_gate_name_mapping
@@ -221,10 +221,10 @@ or of a set of qubit states.
221
221
  OrGate
222
222
  XOR
223
223
  BitwiseXorGate
224
- random_bitwise_xor
225
224
  InnerProduct
226
225
  InnerProductGate
227
226
 
227
+ .. autofunction:: random_bitwise_xor
228
228
 
229
229
  Basis Change Circuits
230
230
  =====================
@@ -280,9 +280,6 @@ Adders
280
280
  CDKMRippleCarryAdder
281
281
  VBERippleCarryAdder
282
282
  WeightedAdder
283
- ModularAdderGate
284
- HalfAdderGate
285
- FullAdderGate
286
283
 
287
284
  Multipliers
288
285
  -----------
@@ -293,7 +290,6 @@ Multipliers
293
290
 
294
291
  HRSCumulativeMultiplier
295
292
  RGQFTMultiplier
296
- MultiplierGate
297
293
 
298
294
  Comparators
299
295
  -----------
@@ -325,40 +321,29 @@ Other arithmetic functions
325
321
  Particular Quantum Circuits
326
322
  ===========================
327
323
 
328
- The following gates and quantum circuits define specific
329
- quantum circuits of interest:
330
-
331
324
  .. autosummary::
332
325
  :toctree: ../stubs/
333
326
  :template: autosummary/class_no_inherited_members.rst
334
327
 
335
328
  FourierChecking
329
+ fourier_checking
336
330
  GraphState
337
331
  GraphStateGate
338
332
  HiddenLinearFunction
333
+ hidden_linear_function
339
334
  IQP
335
+ iqp
336
+ random_iqp
340
337
  QuantumVolume
338
+ quantum_volume
341
339
  PhaseEstimation
340
+ phase_estimation
342
341
  GroverOperator
342
+ grover_operator
343
343
  PhaseOracle
344
344
  PauliEvolutionGate
345
345
  HamiltonianGate
346
346
  UnitaryOverlap
347
-
348
- For circuits that have a well-defined structure it is preferrable
349
- to use the following functions to construct them:
350
-
351
- .. autosummary::
352
- :toctree: ../stubs/
353
- :template: autosummary/class_no_inherited_members.rst
354
-
355
- fourier_checking
356
- hidden_linear_function
357
- iqp
358
- random_iqp
359
- quantum_volume
360
- phase_estimation
361
- grover_operator
362
347
  unitary_overlap
363
348
 
364
349
 
@@ -377,7 +362,6 @@ a broad set of variational quantum algorithms:
377
362
  real_amplitudes
378
363
  pauli_two_design
379
364
  excitation_preserving
380
- qaoa_ansatz
381
365
  hamiltonian_variational_ansatz
382
366
  evolved_operator_ansatz
383
367
 
@@ -402,7 +386,7 @@ They are heavily used in near-term algorithms in e.g. Chemistry, Physics or Opti
402
386
  Data encoding circuits
403
387
  ======================
404
388
 
405
- The following functions return a parameterized :class:`.QuantumCircuit` to use as data
389
+ The following functions return a parameterized :class:`.QuantumCircuit` to use as data
406
390
  encoding circuits in a series of variational quantum algorithms:
407
391
 
408
392
  .. autosummary::
@@ -423,17 +407,6 @@ data in quantum states and are used as feature maps for classification.
423
407
  PauliFeatureMap
424
408
  ZFeatureMap
425
409
  ZZFeatureMap
426
-
427
-
428
- Data preparation circuits
429
- =========================
430
-
431
- The following operations are used for state preparation:
432
-
433
- .. autosummary::
434
- :toctree: ../stubs/
435
- :template: autosummary/class_no_inherited_members.rst
436
-
437
410
  StatePreparation
438
411
  Initialize
439
412
 
@@ -21,7 +21,7 @@ from qiskit.utils.deprecation import deprecate_func
21
21
  class Adder(QuantumCircuit):
22
22
  r"""Compute the sum of two equally sized qubit registers.
23
23
 
24
- For two registers :math:`|a\rangle_n` and :math:`|b\rangle_n` with :math:`n` qubits each, an
24
+ For two registers :math:`|a\rangle_n` and :math:|b\rangle_n` with :math:`n` qubits each, an
25
25
  adder performs the following operation
26
26
 
27
27
  .. math::
@@ -74,7 +74,7 @@ class Adder(QuantumCircuit):
74
74
  class HalfAdderGate(Gate):
75
75
  r"""Compute the sum of two equally-sized qubit registers, including a carry-out bit.
76
76
 
77
- For two registers :math:`|a\rangle_n` and :math:`|b\rangle_n` with :math:`n` qubits each, an
77
+ For two registers :math:`|a\rangle_n` and :math:|b\rangle_n` with :math:`n` qubits each, an
78
78
  adder performs the following operation
79
79
 
80
80
  .. math::
@@ -120,7 +120,7 @@ class HalfAdderGate(Gate):
120
120
  class ModularAdderGate(Gate):
121
121
  r"""Compute the sum modulo :math:`2^n` of two :math:`n`-sized qubit registers.
122
122
 
123
- For two registers :math:`|a\rangle_n` and :math:`|b\rangle_n` with :math:`n` qubits each, an
123
+ For two registers :math:`|a\rangle_n` and :math:|b\rangle_n` with :math:`n` qubits each, an
124
124
  adder performs the following operation
125
125
 
126
126
  .. math::
@@ -166,12 +166,12 @@ class ModularAdderGate(Gate):
166
166
  class FullAdderGate(Gate):
167
167
  r"""Compute the sum of two :math:`n`-sized qubit registers, including carry-in and -out bits.
168
168
 
169
- For two registers :math:`|a\rangle_n` and :math:`|b\rangle_n` with :math:`n` qubits each, an
169
+ For two registers :math:`|a\rangle_n` and :math:|b\rangle_n` with :math:`n` qubits each, an
170
170
  adder performs the following operation
171
171
 
172
172
  .. math::
173
173
 
174
- |c_{\text{in}}\rangle_1 |a\rangle_n |b\rangle_n
174
+ |c_{\text{in}\rangle_1 |a\rangle_n |b\rangle_n
175
175
  \mapsto |a\rangle_n |c_{\text{in}} + a + b \rangle_{n + 1}.
176
176
 
177
177
  The quantum register :math:`|a\rangle_n` (and analogously :math:`|b\rangle_n`)
@@ -84,7 +84,7 @@ class CDKMRippleCarryAdder(Adder):
84
84
  :class:`.ModularAdderGate`: A generic inplace adder, modulo :math:`2^n`. This
85
85
  is functionally equivalent to ``kind="fixed"``.
86
86
 
87
- :class:`.HalfAdderGate`: A generic inplace adder. This
87
+ :class:`.AdderGate`: A generic inplace adder. This
88
88
  is functionally equivalent to ``kind="half"``.
89
89
 
90
90
  :class:`.FullAdderGate`: A generic inplace adder, with a carry-in bit. This
@@ -54,7 +54,7 @@ class DraperQFTAdder(Adder):
54
54
  :class:`.ModularAdderGate`: A generic inplace adder, modulo :math:`2^n`. This
55
55
  is functionally equivalent to ``kind="fixed"``.
56
56
 
57
- :class:`.HalfAdderGate`: A generic inplace adder. This
57
+ :class:`.AdderGate`: A generic inplace adder. This
58
58
  is functionally equivalent to ``kind="half"``.
59
59
 
60
60
  **References:**
@@ -60,7 +60,7 @@ class VBERippleCarryAdder(Adder):
60
60
  :class:`.ModularAdderGate`: A generic inplace adder, modulo :math:`2^n`. This
61
61
  is functionally equivalent to ``kind="fixed"``.
62
62
 
63
- :class:`.HalfAdderGate`: A generic inplace adder. This
63
+ :class:`.AdderGate`: A generic inplace adder. This
64
64
  is functionally equivalent to ``kind="half"``.
65
65
 
66
66
  :class:`.FullAdderGate`: A generic inplace adder, with a carry-in bit. This
@@ -82,7 +82,7 @@ def init_observable(observable: BaseOperator | str) -> SparsePauliOp:
82
82
  since="1.2",
83
83
  additional_msg="Use ``QuantumCircuit.layout`` and ``SparsePauliOp.apply_layout`` "
84
84
  + "to adjust an operator for a layout. Otherwise, use ``mthree.utils.final_measurement_mapping``. "
85
- + "See <https://qiskit.github.io/qiskit-addon-mthree/apidocs/utils> for details.",
85
+ + "See https://qiskit-extensions.github.io/mthree/apidocs/utils.html for details.",
86
86
  )
87
87
  def final_measurement_mapping(circuit: QuantumCircuit) -> dict[int, int]:
88
88
  """Return the final measurement mapping for the circuit.
@@ -160,7 +160,7 @@ steps for writing a provider are:
160
160
  interacting with a running job.
161
161
 
162
162
  For a simple example of a provider, see the
163
- `qiskit-aqt-provider <https://github.com/qiskit-community/qiskit-aqt-provider>`__
163
+ `qiskit-aqt-provider <https://github.com/Qiskit-Partners/qiskit-aqt-provider>`__
164
164
 
165
165
  Provider
166
166
  --------
@@ -664,7 +664,7 @@ that abstract away the mechanics of getting the best result efficiently, to
664
664
  concentrate on higher level applications using these outputs.
665
665
 
666
666
  For example, if your backends were well suited to leverage
667
- `mthree <https://github.com/Qiskit/qiskit-addon-mthree>`__ measurement
667
+ `mthree <https://github.com/Qiskit-Partners/mthree/>`__ measurement
668
668
  mitigation to improve the quality of the results, you could implement a
669
669
  provider-specific :class:`~.Sampler` implementation that leverages the
670
670
  ``M3Mitigation`` class internally to run the circuits and return
@@ -476,7 +476,7 @@ class Statevector(QuantumState, TolerancesMixin):
476
476
  pauli_phase = (-1j) ** pauli.phase if pauli.phase else 1
477
477
 
478
478
  if x_mask + z_mask == 0:
479
- return pauli_phase * np.linalg.norm(self.data) ** 2
479
+ return pauli_phase * np.linalg.norm(self.data)
480
480
 
481
481
  if x_mask == 0:
482
482
  return pauli_phase * expval_pauli_no_x(self.data, self.num_qubits, z_mask)
@@ -12,11 +12,9 @@
12
12
 
13
13
  """Replace each block of consecutive gates by a single Unitary node."""
14
14
  from __future__ import annotations
15
- from math import pi
16
15
 
17
16
  from qiskit.synthesis.two_qubit import TwoQubitBasisDecomposer
18
- from qiskit.circuit.library.standard_gates import CXGate, CZGate, iSwapGate, ECRGate, RXXGate
19
-
17
+ from qiskit.circuit.library.standard_gates import CXGate, CZGate, iSwapGate, ECRGate
20
18
  from qiskit.transpiler.basepasses import TransformationPass
21
19
  from qiskit.transpiler.passmanager import PassManager
22
20
  from qiskit._accelerate.consolidate_blocks import consolidate_blocks
@@ -29,7 +27,6 @@ KAK_GATE_NAMES = {
29
27
  "cz": CZGate(),
30
28
  "iswap": iSwapGate(),
31
29
  "ecr": ECRGate(),
32
- "rxx": RXXGate(pi / 2),
33
30
  }
34
31
 
35
32
 
@@ -73,6 +70,7 @@ class ConsolidateBlocks(TransformationPass):
73
70
  if basis_gates is not None:
74
71
  self.basis_gates = set(basis_gates)
75
72
  self.force_consolidate = force_consolidate
73
+
76
74
  if kak_basis_gate is not None:
77
75
  self.decomposer = TwoQubitBasisDecomposer(kak_basis_gate)
78
76
  elif basis_gates is not None:
@@ -81,12 +79,8 @@ class ConsolidateBlocks(TransformationPass):
81
79
  self.decomposer = TwoQubitBasisDecomposer(
82
80
  KAK_GATE_NAMES[kak_gates.pop()], basis_fidelity=approximation_degree or 1.0
83
81
  )
84
- elif "rzx" in basis_gates:
85
- self.decomposer = TwoQubitBasisDecomposer(
86
- CXGate(), basis_fidelity=approximation_degree or 1.0
87
- )
88
82
  else:
89
- self.decomposer = None
83
+ self.decomposer = TwoQubitBasisDecomposer(CXGate())
90
84
  else:
91
85
  self.decomposer = TwoQubitBasisDecomposer(CXGate())
92
86
 
@@ -109,7 +103,6 @@ class ConsolidateBlocks(TransformationPass):
109
103
  consolidate_blocks(
110
104
  dag,
111
105
  self.decomposer._inner_decomposer,
112
- self.decomposer.gate.name,
113
106
  self.force_consolidate,
114
107
  target=self.target,
115
108
  basis_gates=self.basis_gates,
@@ -19,7 +19,6 @@ from qiskit.circuit import Gate
19
19
  from qiskit.dagcircuit import DAGCircuit
20
20
  from qiskit.transpiler.basepasses import TransformationPass
21
21
  from qiskit.transpiler.exceptions import TranspilerError
22
- from qiskit.transpiler.passes.utils import control_flow
23
22
 
24
23
  from qiskit._accelerate.inverse_cancellation import inverse_cancellation
25
24
 
@@ -75,7 +74,6 @@ class InverseCancellation(TransformationPass):
75
74
 
76
75
  super().__init__()
77
76
 
78
- @control_flow.trivial_recurse
79
77
  def run(self, dag: DAGCircuit):
80
78
  """Run the InverseCancellation pass on `dag`.
81
79
 
@@ -382,7 +382,7 @@ class HighLevelSynthesis(TransformationPass):
382
382
 
383
383
  # If the synthesis changed the operation (i.e. it is not None), store the result.
384
384
  if synthesized is not None:
385
- synthesized_nodes[node._node_id] = (synthesized, synthesized_context)
385
+ synthesized_nodes[node] = (synthesized, synthesized_context)
386
386
 
387
387
  # If the synthesis did not change anything, just update the qubit tracker.
388
388
  elif not processed:
@@ -407,9 +407,8 @@ class HighLevelSynthesis(TransformationPass):
407
407
  outer_to_local = context.to_local_mapping()
408
408
 
409
409
  for node in dag.topological_op_nodes():
410
-
411
- if op_tuple := synthesized_nodes.get(node._node_id, None):
412
- op, op_context = op_tuple
410
+ if node in synthesized_nodes:
411
+ op, op_context = synthesized_nodes[node]
413
412
 
414
413
  if isinstance(op, Operation):
415
414
  out.apply_operation_back(op, node.qargs, node.cargs)
@@ -814,7 +813,6 @@ class HighLevelSynthesis(TransformationPass):
814
813
  dag._has_calibration_for(node)
815
814
  or len(node.qargs) < self._min_qubits
816
815
  or node.is_directive()
817
- or (self._instruction_supported(node.name, qubits) and not node.is_control_flow())
818
816
  ):
819
817
  return True
820
818
 
@@ -832,12 +830,15 @@ class HighLevelSynthesis(TransformationPass):
832
830
  # If all the above constraints hold, and it's already supported or the basis translator
833
831
  # can handle it, we'll leave it be.
834
832
  and (
833
+ self._instruction_supported(node.name, qubits)
835
834
  # This uses unfortunately private details of `EquivalenceLibrary`, but so does the
836
835
  # `BasisTranslator`, and this is supposed to just be temporary til this is moved
837
836
  # into Rust space.
838
- self._equiv_lib is not None
839
- and equivalence.Key(name=node.name, num_qubits=node.num_qubits)
840
- in self._equiv_lib.keys()
837
+ or (
838
+ self._equiv_lib is not None
839
+ and equivalence.Key(name=node.name, num_qubits=node.num_qubits)
840
+ in self._equiv_lib.keys()
841
+ )
841
842
  )
842
843
  )
843
844
 
@@ -263,12 +263,11 @@ Pauli Evolution Synthesis
263
263
  - Targeted connectivity
264
264
  * - ``"rustiq"``
265
265
  - :class:`~.PauliEvolutionSynthesisRustiq`
266
- - use the synthesis method from `Rustiq circuit synthesis library
267
- <https://github.com/smartiel/rustiq-core>`_
266
+ - use a diagonalizing Clifford per Pauli term
268
267
  - all-to-all
269
268
  * - ``"default"``
270
269
  - :class:`~.PauliEvolutionSynthesisDefault`
271
- - use a diagonalizing Clifford per Pauli term
270
+ - use ``rustiq_core`` synthesis library
272
271
  - all-to-all
273
272
 
274
273
  .. autosummary::
@@ -376,7 +375,7 @@ Multiplier Synthesis
376
375
  - Description
377
376
  * - ``"cumulative"``
378
377
  - :class:`.MultiplierSynthesisH18`
379
- - depending on the :class:`.HalfAdderGate` used
378
+ - depending on the :class:`.AdderGate` used
380
379
  - a cumulative adder based on controlled adders
381
380
  * - ``"qft"``
382
381
  - :class:`.MultiplierSynthesisR17`
@@ -479,11 +479,10 @@ def _parse_basis_gates(basis_gates, backend, inst_map, skip_target):
479
479
  if inst not in standard_gates and inst not in default_gates:
480
480
  warnings.warn(
481
481
  category=DeprecationWarning,
482
- message=f"Providing non-standard gates ({inst}) through the ``basis_gates`` "
483
- "argument is deprecated for both ``transpile`` and ``generate_preset_pass_manager`` "
484
- "as of Qiskit 1.3.0. "
482
+ message="Providing custom gates through the ``basis_gates`` argument is deprecated "
483
+ "for both ``transpile`` and ``generate_preset_pass_manager`` as of Qiskit 1.3.0. "
485
484
  "It will be removed in Qiskit 2.0. The ``target`` parameter should be used instead. "
486
- "You can build a target instance using ``Target.from_configuration()`` and provide "
485
+ "You can build a target instance using ``Target.from_configuration()`` and provide"
487
486
  "custom gate definitions with the ``custom_name_mapping`` argument.",
488
487
  )
489
488
  skip_target = True
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: qiskit
3
- Version: 1.3.0
3
+ Version: 1.3.0rc1
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
@@ -37,6 +37,12 @@ Requires-Dist: python-dateutil>=2.8.0
37
37
  Requires-Dist: stevedore>=3.0.0
38
38
  Requires-Dist: typing-extensions
39
39
  Requires-Dist: symengine<0.14,>=0.11
40
+ Provides-Extra: all
41
+ Requires-Dist: qiskit[crosstalk-pass,csp-layout-pass,qasm3-import,visualization]; extra == "all"
42
+ Provides-Extra: crosstalk-pass
43
+ Requires-Dist: z3-solver>=4.7; extra == "crosstalk-pass"
44
+ Provides-Extra: csp-layout-pass
45
+ Requires-Dist: python-constraint>=1.4; extra == "csp-layout-pass"
40
46
  Provides-Extra: qasm3-import
41
47
  Requires-Dist: qiskit-qasm3-import>=0.1.0; extra == "qasm3-import"
42
48
  Provides-Extra: visualization
@@ -45,12 +51,6 @@ Requires-Dist: pydot; extra == "visualization"
45
51
  Requires-Dist: Pillow>=4.2.1; extra == "visualization"
46
52
  Requires-Dist: pylatexenc>=1.4; extra == "visualization"
47
53
  Requires-Dist: seaborn>=0.9.0; extra == "visualization"
48
- Provides-Extra: crosstalk-pass
49
- Requires-Dist: z3-solver>=4.7; extra == "crosstalk-pass"
50
- Provides-Extra: csp-layout-pass
51
- Requires-Dist: python-constraint>=1.4; extra == "csp-layout-pass"
52
- Provides-Extra: all
53
- Requires-Dist: qiskit[crosstalk-pass,csp-layout-pass,qasm3-import,visualization]; extra == "all"
54
54
 
55
55
  # Qiskit
56
56
 
@@ -120,13 +120,13 @@ we use `measure_all(inplace=False)` to get a copy of the circuit in which all th
120
120
  qc_measured = qc_example.measure_all(inplace=False)
121
121
 
122
122
  # 3. Execute using the Sampler primitive
123
- from qiskit.primitives import StatevectorSampler
124
- sampler = StatevectorSampler()
125
- job = sampler.run([qc_measured], shots=1000)
123
+ from qiskit.primitives.sampler import Sampler
124
+ sampler = Sampler()
125
+ job = sampler.run(qc_measured, shots=1000)
126
126
  result = job.result()
127
- print(f" > Counts: {result[0].meas.get_counts()}")
127
+ print(f" > Quasi probability distribution: {result.quasi_dists}")
128
128
  ```
129
- Running this will give an outcome similar to `{'000': 497, '111': 503}` which is `000` 50% of the time and `111` 50% of the time up to statistical fluctuations.
129
+ Running this will give an outcome similar to `{0: 0.497, 7: 0.503}` which is `000` 50% of the time and `111` 50% of the time up to statistical fluctuations.
130
130
  To illustrate the power of Estimator, we now use the quantum information toolbox to create the operator $XXY+XYX+YXX-YYY$ and pass it to the `run()` function, along with our quantum circuit. Note the Estimator requires a circuit _**without**_ measurement, so we use the `qc_example` circuit we created earlier.
131
131
 
132
132
  ```python
@@ -135,17 +135,17 @@ from qiskit.quantum_info import SparsePauliOp
135
135
  operator = SparsePauliOp.from_list([("XXY", 1), ("XYX", 1), ("YXX", 1), ("YYY", -1)])
136
136
 
137
137
  # 3. Execute using the Estimator primitive
138
- from qiskit.primitives import StatevectorEstimator
139
- estimator = StatevectorEstimator()
140
- job = estimator.run([(qc_example, operator)], precision=1e-3)
138
+ from qiskit.primitives import Estimator
139
+ estimator = Estimator()
140
+ job = estimator.run(qc_example, operator, shots=1000)
141
141
  result = job.result()
142
- print(f" > Expectation values: {result[0].data.evs}")
142
+ print(f" > Expectation values: {result.values}")
143
143
  ```
144
144
 
145
145
  Running this will give the outcome `4`. For fun, try to assign a value of +/- 1 to each single-qubit operator X and Y
146
146
  and see if you can achieve this outcome. (Spoiler alert: this is not possible!)
147
147
 
148
- Using the Qiskit-provided `qiskit.primitives.StatevectorSampler` and `qiskit.primitives.StatevectorEstimator` will not take you very far.
148
+ Using the Qiskit-provided `qiskit.primitives.Sampler` and `qiskit.primitives.Estimator` will not take you very far.
149
149
  The power of quantum computing cannot be simulated on classical computers and you need to use real quantum hardware to scale to larger quantum circuits.
150
150
  However, running a quantum circuit on hardware requires rewriting to the basis gates and connectivity of the quantum hardware.
151
151
  The tool that does this is the [transpiler](https://docs.quantum.ibm.com/api/qiskit/transpiler), and Qiskit includes transpiler passes for synthesis, optimization, mapping, and scheduling.
@@ -160,7 +160,7 @@ qc_transpiled = transpile(qc_example, basis_gates = ['cz', 'sx', 'rz'], coupling
160
160
  ### Executing your code on real quantum hardware
161
161
 
162
162
  Qiskit provides an abstraction layer that lets users run quantum circuits on hardware from any vendor that provides a compatible interface.
163
- The best way to use Qiskit is with a runtime environment that provides optimized implementations of `sampler` and `estimator` for a given hardware platform. This runtime may involve using pre- and post-processing, such as optimized transpiler passes with error suppression, error mitigation, and, eventually, error correction built in. A runtime implements `qiskit.primitives.BaseSamplerV2` and `qiskit.primitives.BaseEstimatorV2` interfaces. For example,
163
+ The best way to use Qiskit is with a runtime environment that provides optimized implementations of `sampler` and `estimator` for a given hardware platform. This runtime may involve using pre- and post-processing, such as optimized transpiler passes with error suppression, error mitigation, and, eventually, error correction built in. A runtime implements `qiskit.primitives.BaseSampler` and `qiskit.primitives.BaseEstimator` interfaces. For example,
164
164
  some packages that provide implementations of a runtime primitive implementation are:
165
165
 
166
166
  * https://github.com/Qiskit/qiskit-ibm-runtime
@@ -1,6 +1,6 @@
1
- qiskit/VERSION.txt,sha256=PIXGbQbDHfDGURrRi36Fdvz452oBHFwou9ZsV_PthR4,7
1
+ qiskit/VERSION.txt,sha256=9ZVK4HfUDY65X5uAyfXYCem-YxD-V1MuRapLURHiVL4,10
2
2
  qiskit/__init__.py,sha256=rw44R_7d2DNPDAhHntvpEYC-uH61EZnOI3Lcwpa74w8,7629
3
- qiskit/_accelerate.pyd,sha256=NyLufjN2MROLZYn9zVh_0kkvBMc80X76Wwh448hQO18,8510464
3
+ qiskit/_accelerate.pyd,sha256=pzQ32GKTFM856LEZCEP9Le2C7DDjxQfw7fWQPtzNgBA,8514048
4
4
  qiskit/_numpy_compat.py,sha256=EV1RihNRJnvWzjb57z8sjMbv9EeRPzk8Mnegzw7ItR0,2888
5
5
  qiskit/exceptions.py,sha256=UamBNQmDJTx6ruzmj7iXgcsrBcvkfE-bZ4TH2-K_ngw,5772
6
6
  qiskit/user_config.py,sha256=IKxY7cK1EX-GqkvPE4Lsss1NMoEcYie6Qq8hkNOtLJA,10371
@@ -70,7 +70,7 @@ qiskit/circuit/controlflow/for_loop.py,sha256=kbZsuk0KNYA9HOTi8t1qCfm25oGURPyRsk
70
70
  qiskit/circuit/controlflow/if_else.py,sha256=0-PlHuxzAhECIj1XeLQU87_FzqZrGmmTikjZAbfVXtE,23047
71
71
  qiskit/circuit/controlflow/switch_case.py,sha256=zCkhdTMqd6mvW0KIsBkV19Fr84myEj_mf3J28tp_2TI,18171
72
72
  qiskit/circuit/controlflow/while_loop.py,sha256=gH5f1JC_JIakpk_k7cdVGXP93vxEpLfVXhDoo1_UCwo,6210
73
- qiskit/circuit/library/__init__.py,sha256=rxhN71i-4DS4KXrhqlZpLxyvQCQ6NmkD7rSVAz0LVGQ,16553
73
+ qiskit/circuit/library/__init__.py,sha256=x3K1T5vOAqiDsh1f4Zy4N9nzkNyWzXEQH3U-4CMRAo8,15941
74
74
  qiskit/circuit/library/blueprintcircuit.py,sha256=V5BwicE0HKj4XFxA8pbFPIS60MeJB5xFUfcHnRIs5HY,10218
75
75
  qiskit/circuit/library/fourier_checking.py,sha256=kQYdvHUO12pXlaeBRqav3sct_lxkRFF2U168PFmK8Pk,6410
76
76
  qiskit/circuit/library/graph_state.py,sha256=ArLTXMRMAO1R194XErqZJnvcy0wV17n4H10pbe-xqOM,6282
@@ -96,10 +96,10 @@ qiskit/circuit/library/arithmetic/polynomial_pauli_rotations.py,sha256=Y3O2Um343
96
96
  qiskit/circuit/library/arithmetic/quadratic_form.py,sha256=ZQqeIkHJw_rlzVaClGrBW0DgMymab7NcPlCopLVNy78,8288
97
97
  qiskit/circuit/library/arithmetic/weighted_adder.py,sha256=AUohqtGV0IR2reZU29YSDVo6kSMJoqncZNCEhBudvqM,13166
98
98
  qiskit/circuit/library/arithmetic/adders/__init__.py,sha256=gHzRfBcGYvNiydkYuf42czLLnHmAaWeHUYaJ-Z07Hg8,761
99
- qiskit/circuit/library/arithmetic/adders/adder.py,sha256=UIpiyOK7nDKUqC4y9UE0vNzJ3n18eBCj079vIMIeNjU,6879
100
- qiskit/circuit/library/arithmetic/adders/cdkm_ripple_carry_adder.py,sha256=fLJkQDhvHW1Xcvww8DuDa8_NBy8-cKAz52BBgGU7vko,7583
101
- qiskit/circuit/library/arithmetic/adders/draper_qft_adder.py,sha256=EWGCrS1DQYq-6tDjQRgWYpJ0Se3JSWBssLEyHCAInHk,6168
102
- qiskit/circuit/library/arithmetic/adders/vbe_ripple_carry_adder.py,sha256=U5OJAso7s4Y0oUuS4D18eZ7vmUC704eazVdyUBNpF2c,5038
99
+ qiskit/circuit/library/arithmetic/adders/adder.py,sha256=RSAKw1mftpUuUFsGPWV4x7_d3tN4BdjYJi33dXvvzyU,6874
100
+ qiskit/circuit/library/arithmetic/adders/cdkm_ripple_carry_adder.py,sha256=3HRsIx1n9H1Xi2rUqo1oNVd4Nhc4G4PaQBvLtCYLYtc,7579
101
+ qiskit/circuit/library/arithmetic/adders/draper_qft_adder.py,sha256=LEWsXBo20GpHYRu0TkZj4R_mYfF-3DX8KEJr9xBGwL8,6164
102
+ qiskit/circuit/library/arithmetic/adders/vbe_ripple_carry_adder.py,sha256=vgQ5UEqbuVEEE7v3NElb24qTaolMChc5l7VCSwePjJk,5034
103
103
  qiskit/circuit/library/arithmetic/multipliers/__init__.py,sha256=Cw2e2xFpYZb1mB2bKiU38BAuZWIKfB7HdOVmqA3mrOY,689
104
104
  qiskit/circuit/library/arithmetic/multipliers/hrs_cumulative_multiplier.py,sha256=BVYzcLL34f7KLW_2L61VBtuh9LIfXlmfW7JW6cAL4xs,6995
105
105
  qiskit/circuit/library/arithmetic/multipliers/multiplier.py,sha256=_bhW2WOM_Z-GB5RDNWMkGWecundkqAocZsjibP8Jqrk,7159
@@ -293,7 +293,7 @@ qiskit/primitives/primitive_job.py,sha256=IhDsqtP3eYHi8ekW4ITM5EttrmQqm3qNYTeE7e
293
293
  qiskit/primitives/sampler.py,sha256=xQ7ys2fssrpvQNM4ppVr6pQ4Wsn33gIY838BljIeGb0,6023
294
294
  qiskit/primitives/statevector_estimator.py,sha256=7BabLm-RQNW9loEC7ygdhcQHJDGZ1DRhItsZYt1rZrc,7274
295
295
  qiskit/primitives/statevector_sampler.py,sha256=YNcbqCHMFwf1G-XwHNJBUBIlB_t92ECGMjG8-YmuVj0,11285
296
- qiskit/primitives/utils.py,sha256=cFFsOEDRK8y0X7i_qcmshoDen3ufgPoUVo6u8VI744Y,8593
296
+ qiskit/primitives/utils.py,sha256=tzEPj0ddxLI0swA3jPOh_ANN9TjCn1oYRmBl7zGTwac,8594
297
297
  qiskit/primitives/base/__init__.py,sha256=HZji4i_Lrf9KqcSufJwSNqe8Wt-c1RWmKzFeRNt8vxo,784
298
298
  qiskit/primitives/base/base_estimator.py,sha256=kpEXcE2Lx3YqVRxlBctjJI_T1RYnaapk3kMW7vd7VQ8,9016
299
299
  qiskit/primitives/base/base_primitive.py,sha256=TT7g3oFy9iIpzbeZxMLculQFBY9labxViTxbRQDtr-I,1314
@@ -315,7 +315,7 @@ qiskit/primitives/containers/pub_result.py,sha256=OQV7fy2W6ZeuZkVT56FjUFQXHoG7Y7
315
315
  qiskit/primitives/containers/sampler_pub.py,sha256=LQgkp3X_ERyrYTSwX_cecqLVWZU4v0lkT5tUoDbOmTg,6860
316
316
  qiskit/primitives/containers/sampler_pub_result.py,sha256=fkMyYsQPwDD-6FVfeVk06E2m81DyXjm5tZHju7y0wrk,2864
317
317
  qiskit/primitives/containers/shape.py,sha256=JQTms4horYzCNyR_HhEvLxvMyvV-zcDu9jwzNCOfthU,3995
318
- qiskit/providers/__init__.py,sha256=wCz2V5ehsu1R0Kgr0y3y9EQgu1yxUkaM57oQKh6IbPg,36271
318
+ qiskit/providers/__init__.py,sha256=Dh1IR6jnyW-0JQHIr9S8MQwHyIC1c_T7-cZ9REZxpWc,36267
319
319
  qiskit/providers/backend.py,sha256=fgWGmdrCYJgYnnneZKcUYjkjH8NRskib_TBhqNDPRcg,26091
320
320
  qiskit/providers/backend_compat.py,sha256=ylcPvMWgjzxBsWjKxRfEJ8jwXIupqr3o1i-McjpmwYU,20138
321
321
  qiskit/providers/exceptions.py,sha256=-bvWhJW0KXjIamvZP3xyUnlGovIr_eoFO5hQxy2_zQE,1214
@@ -497,7 +497,7 @@ qiskit/quantum_info/states/measures.py,sha256=BoULnQ-1d9_bHzH6X79wtP7zTxkeVKgV3v
497
497
  qiskit/quantum_info/states/quantum_state.py,sha256=ErmVJR0Quw5X00UAtvxsADd-vbWIycAA6gUcLRyOdPc,18277
498
498
  qiskit/quantum_info/states/random.py,sha256=OUZXAZ9qYhbB9LogfAPhSrBphwapK9aI44xerJqWKlo,5219
499
499
  qiskit/quantum_info/states/stabilizerstate.py,sha256=-StDch_tIIiD-z1zZJwD1aKvdHXHzy9tJiLAB_hq1UU,30486
500
- qiskit/quantum_info/states/statevector.py,sha256=CFI_VR_4FQXqLSZ6lU8Hm2CWZG4JGOBhleowAJPrWnU,37769
500
+ qiskit/quantum_info/states/statevector.py,sha256=9fK9PVkdBxduv5S49Dej4ugsot8goaDe72LFqWT26P4,37764
501
501
  qiskit/quantum_info/states/utils.py,sha256=cujjjFSIzNjvRdZyCyJerf9K5aa0g95ebN1tx8Nbteg,9005
502
502
  qiskit/result/__init__.py,sha256=7KjootVBUTZFwdbpUMzxBfbcnNioU3w9-wGK1C7sHXk,1849
503
503
  qiskit/result/counts.py,sha256=ti18MUnObmfoTMpQoCiObwyCOFL9UWCJIsDquJj23M4,8418
@@ -666,12 +666,12 @@ qiskit/transpiler/passes/optimization/collect_multiqubit_blocks.py,sha256=bFqmRq
666
666
  qiskit/transpiler/passes/optimization/commutation_analysis.py,sha256=3-dyfsqf4QOr0ZdNfAYwiDvFCFT6mtrH0M9rs0U4nIg,1837
667
667
  qiskit/transpiler/passes/optimization/commutative_cancellation.py,sha256=2z1ZOQAdshjhdTANPqXTy-ojx9F1SSCbqGxq_ucnHI8,3356
668
668
  qiskit/transpiler/passes/optimization/commutative_inverse_cancellation.py,sha256=IkvZoTUm5xsR3_YWZIufoZxP0XSuyBKnkFrEEGcGvks,5693
669
- qiskit/transpiler/passes/optimization/consolidate_blocks.py,sha256=MspJuijgrp4PyoTolmMxYNu553mfxpGbDSkhB-_1Tz0,5759
669
+ qiskit/transpiler/passes/optimization/consolidate_blocks.py,sha256=-pU6tQTwGXrcLvHmb4A1sNNDWA5AOt6lGCT5xd83XyU,5496
670
670
  qiskit/transpiler/passes/optimization/cx_cancellation.py,sha256=0e-7eMwdhy4NG6YllXUosWecPm1UwMQYngi-hyuuxak,2401
671
671
  qiskit/transpiler/passes/optimization/echo_rzx_weyl_decomposition.py,sha256=U-6Da8e2sh9oR7BghBcntnsnuB3BIDDMEZEtu59cUyE,7280
672
672
  qiskit/transpiler/passes/optimization/elide_permutations.py,sha256=k7CrGy5iKs15uI97GUCJOQKpBxzCk7sr9X8bNaxN-HE,4146
673
673
  qiskit/transpiler/passes/optimization/hoare_opt.py,sha256=xdSqEmWinuAVkgBGIiFNS-PB7NnzkSFwN-h_BugZOgE,16711
674
- qiskit/transpiler/passes/optimization/inverse_cancellation.py,sha256=T_wrRl2TY_fp0kWXunap0AQwUV5-nR93OPOsTgDi_zQ,3619
674
+ qiskit/transpiler/passes/optimization/inverse_cancellation.py,sha256=LzBw1FzMgj5WeSnRjSxa0wqYBanvDYQLKV3un5kYdxU,3527
675
675
  qiskit/transpiler/passes/optimization/normalize_rx_angle.py,sha256=AbnCL0yvtCp-4O1O8lpFzj8fSzMZ3QYG6gjmJI7uHAE,6404
676
676
  qiskit/transpiler/passes/optimization/optimize_1q_commutation.py,sha256=uwoaomez83bG7CgG078cJO55EIe5qjXEIESG4hjqAJU,10583
677
677
  qiskit/transpiler/passes/optimization/optimize_1q_decomposition.py,sha256=YgzGFQw_D1aCDtCHGbmq7GHm9KLCx9SWXIaDYaND7WE,10205
@@ -731,8 +731,8 @@ qiskit/transpiler/passes/scheduling/scheduling/base_scheduler.py,sha256=oh_1Gb6G
731
731
  qiskit/transpiler/passes/scheduling/scheduling/set_io_latency.py,sha256=FmQSvPbI67L1MvF4A1tbM3Z_8r_7bx6exAyt2Iy-uVw,2918
732
732
  qiskit/transpiler/passes/synthesis/__init__.py,sha256=Q18fvaIkZ1PXp680Y53DkatyPg81zNVrdUp_hTJ7k_c,945
733
733
  qiskit/transpiler/passes/synthesis/aqc_plugin.py,sha256=y3eoBqsHfugseAa2wYvY-5eWF1GME_TOWnHke9z8NTI,5496
734
- qiskit/transpiler/passes/synthesis/high_level_synthesis.py,sha256=ISzAhwsYLHCZHEzwPqFjOpPCPEfbi5mrjoaEEVgNrSU,41439
735
- qiskit/transpiler/passes/synthesis/hls_plugins.py,sha256=7R07fcLdk9rzNH9wuQpN6sgIfYH7XvEhiwp2JTMxzco,59814
734
+ qiskit/transpiler/passes/synthesis/high_level_synthesis.py,sha256=VruZtdMvxcwF2chiuJvFkaHIWm6LpZVSdD9pvHFU9Bg,41435
735
+ qiskit/transpiler/passes/synthesis/hls_plugins.py,sha256=ng5Hqtdwd-qySwb8kU4_Feq53-C_NUJS2KTFmu5onCo,59730
736
736
  qiskit/transpiler/passes/synthesis/linear_functions_synthesis.py,sha256=Sit6NoTlFXNBDrDxlyMar9ro7VunRJQxWb5NeG2JTZc,1448
737
737
  qiskit/transpiler/passes/synthesis/plugin.py,sha256=7yE9-J2CkSRmxsdpMkSkEDZ7lTonsXUeWfj-IQEJNM8,31540
738
738
  qiskit/transpiler/passes/synthesis/solovay_kitaev_synthesis.py,sha256=_Fq3gVuzTUu-ezCtyp3mBQ1tOMrW96igGcsgybXSD8s,11349
@@ -758,7 +758,7 @@ qiskit/transpiler/passes/utils/unroll_forloops.py,sha256=mkjucqYOXyfJpCT3dtXUMJe
758
758
  qiskit/transpiler/preset_passmanagers/__init__.py,sha256=DIC_jvndc-sN6x3F7mag-TPV67QN5QqCS3AC2qvuqsw,2831
759
759
  qiskit/transpiler/preset_passmanagers/builtin_plugins.py,sha256=g-EO8nNDuvtAkSL-fWxju9-ETmJinL2_JfEhSFBbRs0,45014
760
760
  qiskit/transpiler/preset_passmanagers/common.py,sha256=WIyb4sDZdfWTonF-ApLK6v3c_Cz8XihBCH0mpWMUrnw,27171
761
- qiskit/transpiler/preset_passmanagers/generate_preset_pass_manager.py,sha256=seWSKTlj-kV1NtwbD_Usk9QUhHq3T8_aifUXJBtf8Ik,31516
761
+ qiskit/transpiler/preset_passmanagers/generate_preset_pass_manager.py,sha256=YVrIzj-viNuX8r2igm5u8Y7iT_4RVtMyk2m5brJrrLo,31475
762
762
  qiskit/transpiler/preset_passmanagers/level0.py,sha256=-X8y92rTBnvYlbXnWcFgwkF78FZK9Gn2Z9Pd9h0dvfA,4390
763
763
  qiskit/transpiler/preset_passmanagers/level1.py,sha256=Cxw99_TL8px-pavkr_XRkMFi9z8F5xnXuDiKRCTbFQE,4926
764
764
  qiskit/transpiler/preset_passmanagers/level2.py,sha256=cSOrYsVVJC5DJpjnJ4lNRtkZe_lKH4w385lsb8bogWU,4850
@@ -828,9 +828,9 @@ qiskit/visualization/timeline/types.py,sha256=jtpipQWUpahayNPQYKUst4GG6BqauovO0q
828
828
  qiskit/visualization/timeline/plotters/__init__.py,sha256=Klg9a1cSUIQhc815g8OpnD5vO1hcI51L9KlFfKzcuRg,588
829
829
  qiskit/visualization/timeline/plotters/base_plotter.py,sha256=taRkL2ZbyorRUEf6nJS8egdzKW2eznQ3w5oBLtMG_U8,1805
830
830
  qiskit/visualization/timeline/plotters/matplotlib.py,sha256=lqqNH3-bdf1F1cS2mDla9dLr5qEOeIFuqVl9Rhdg-Dw,7086
831
- qiskit-1.3.0.dist-info/LICENSE.txt,sha256=pUbmRuPr1gJTTTWZu2c8UmNSntz-pDdKfGR-86NRkok,11619
832
- qiskit-1.3.0.dist-info/METADATA,sha256=o8anqt5GQCu18d25OYafBPLJw9JDqilYm94fsf_uQ10,13162
833
- qiskit-1.3.0.dist-info/WHEEL,sha256=wJnV1hFq2E5q4TvostNGn3-ixLXKp09vo4QOYNspKEA,95
834
- qiskit-1.3.0.dist-info/entry_points.txt,sha256=5Xf0jdIYmLoQN2KoTrdTAfJm9FSd0-w4O0fckxQl7KQ,5669
835
- qiskit-1.3.0.dist-info/top_level.txt,sha256=_vjFXLv7qrHyJJOC2-JXfG54o4XQygW9GuQPxgtSt9Q,7
836
- qiskit-1.3.0.dist-info/RECORD,,
831
+ qiskit-1.3.0rc1.dist-info/LICENSE.txt,sha256=pUbmRuPr1gJTTTWZu2c8UmNSntz-pDdKfGR-86NRkok,11619
832
+ qiskit-1.3.0rc1.dist-info/METADATA,sha256=qTFOF4eMK6wtWHaSaXDozCkQAr36AoFEYF-EZMuMJuc,13099
833
+ qiskit-1.3.0rc1.dist-info/WHEEL,sha256=4IQ1P53m-xeOuBBShI63tOno6crr8d99DEYgfjkru7o,95
834
+ qiskit-1.3.0rc1.dist-info/entry_points.txt,sha256=5Xf0jdIYmLoQN2KoTrdTAfJm9FSd0-w4O0fckxQl7KQ,5669
835
+ qiskit-1.3.0rc1.dist-info/top_level.txt,sha256=_vjFXLv7qrHyJJOC2-JXfG54o4XQygW9GuQPxgtSt9Q,7
836
+ qiskit-1.3.0rc1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.6.0)
2
+ Generator: setuptools (75.3.0)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp39-abi3-win32
5
5