qiskit 2.0.0rc1__cp39-abi3-macosx_11_0_arm64.whl → 2.0.1__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.
Files changed (57) hide show
  1. qiskit/VERSION.txt +1 -1
  2. qiskit/__init__.py +1 -4
  3. qiskit/_accelerate.abi3.so +0 -0
  4. qiskit/circuit/__init__.py +11 -5
  5. qiskit/circuit/classical/expr/constructors.py +0 -12
  6. qiskit/circuit/library/__init__.py +449 -163
  7. qiskit/circuit/library/graph_state.py +1 -0
  8. qiskit/circuit/library/n_local/efficient_su2.py +1 -1
  9. qiskit/circuit/library/n_local/excitation_preserving.py +1 -1
  10. qiskit/circuit/library/quantum_volume.py +9 -0
  11. qiskit/circuit/library/standard_gates/r.py +5 -4
  12. qiskit/circuit/library/standard_gates/x.py +1 -2
  13. qiskit/circuit/parameterexpression.py +7 -0
  14. qiskit/circuit/quantumcircuit.py +405 -80
  15. qiskit/circuit/tools/pi_check.py +3 -0
  16. qiskit/converters/circuit_to_dag.py +2 -2
  17. qiskit/converters/dag_to_circuit.py +2 -3
  18. qiskit/dagcircuit/dagdependency_v2.py +3 -2
  19. qiskit/primitives/statevector_estimator.py +1 -1
  20. qiskit/qpy/__init__.py +21 -0
  21. qiskit/qpy/binary_io/circuits.py +5 -0
  22. qiskit/qpy/binary_io/parse_sympy_repr.py +121 -0
  23. qiskit/qpy/binary_io/value.py +5 -5
  24. qiskit/result/models.py +1 -2
  25. qiskit/result/result.py +10 -8
  26. qiskit/synthesis/discrete_basis/commutator_decompose.py +30 -6
  27. qiskit/synthesis/discrete_basis/gate_sequence.py +10 -4
  28. qiskit/synthesis/discrete_basis/generate_basis_approximations.py +1 -1
  29. qiskit/synthesis/discrete_basis/solovay_kitaev.py +36 -13
  30. qiskit/transpiler/passes/__init__.py +2 -0
  31. qiskit/transpiler/passes/basis/basis_translator.py +1 -1
  32. qiskit/transpiler/passes/layout/full_ancilla_allocation.py +2 -3
  33. qiskit/transpiler/passes/layout/sabre_layout.py +3 -1
  34. qiskit/transpiler/passes/layout/vf2_utils.py +2 -5
  35. qiskit/transpiler/passes/optimization/__init__.py +1 -0
  36. qiskit/transpiler/passes/optimization/template_matching/template_substitution.py +2 -2
  37. qiskit/transpiler/passes/scheduling/alignments/check_durations.py +1 -1
  38. qiskit/transpiler/passes/scheduling/padding/base_padding.py +2 -2
  39. qiskit/transpiler/passes/scheduling/padding/dynamical_decoupling.py +5 -5
  40. qiskit/transpiler/passes/scheduling/padding/pad_delay.py +1 -1
  41. qiskit/transpiler/passes/scheduling/time_unit_conversion.py +10 -6
  42. qiskit/transpiler/passes/synthesis/solovay_kitaev_synthesis.py +29 -19
  43. qiskit/transpiler/passes/synthesis/unitary_synthesis.py +2 -1
  44. qiskit/transpiler/preset_passmanagers/generate_preset_pass_manager.py +13 -7
  45. qiskit/transpiler/target.py +11 -0
  46. qiskit/visualization/circuit/text.py +1 -1
  47. qiskit/visualization/counts_visualization.py +4 -0
  48. qiskit/visualization/library.py +4 -1
  49. qiskit/visualization/state_visualization.py +13 -2
  50. qiskit/visualization/timeline/core.py +1 -1
  51. qiskit/visualization/timeline/plotters/matplotlib.py +4 -1
  52. {qiskit-2.0.0rc1.dist-info → qiskit-2.0.1.dist-info}/METADATA +4 -3
  53. {qiskit-2.0.0rc1.dist-info → qiskit-2.0.1.dist-info}/RECORD +57 -56
  54. {qiskit-2.0.0rc1.dist-info → qiskit-2.0.1.dist-info}/WHEEL +1 -1
  55. {qiskit-2.0.0rc1.dist-info → qiskit-2.0.1.dist-info}/entry_points.txt +0 -0
  56. {qiskit-2.0.0rc1.dist-info → qiskit-2.0.1.dist-info/licenses}/LICENSE.txt +0 -0
  57. {qiskit-2.0.0rc1.dist-info → qiskit-2.0.1.dist-info}/top_level.txt +0 -0
@@ -48,6 +48,7 @@ class GraphState(QuantumCircuit):
48
48
  import rustworkx as rx
49
49
  G = rx.generators.cycle_graph(5)
50
50
  circuit = GraphState(rx.adjacency_matrix(G))
51
+ circuit.name = "Graph state"
51
52
  _generate_circuit_library_visualization(circuit)
52
53
 
53
54
  **References:**
@@ -42,7 +42,7 @@ def efficient_su2(
42
42
  parameter_prefix: str = "θ",
43
43
  insert_barriers: bool = False,
44
44
  name: str = "EfficientSU2",
45
- ):
45
+ ) -> QuantumCircuit:
46
46
  r"""The hardware-efficient :math:`SU(2)` 2-local circuit.
47
47
 
48
48
  The ``efficient_su2`` circuit consists of layers of single qubit operations spanned by
@@ -37,7 +37,7 @@ def excitation_preserving(
37
37
  parameter_prefix: str = "θ",
38
38
  insert_barriers: bool = False,
39
39
  name: str = "ExcitationPreserving",
40
- ):
40
+ ) -> QuantumCircuit:
41
41
  r"""The heuristic excitation-preserving wave function ansatz.
42
42
 
43
43
  The ``excitation_preserving`` circuit preserves the ratio of :math:`|00\rangle`,
@@ -149,6 +149,15 @@ def quantum_volume(
149
149
  environment variable. For example, setting ``RAYON_NUM_THREADS=4`` would limit the thread pool
150
150
  to 4 threads.
151
151
 
152
+ Args:
153
+ num_qubits: The number qubits to use for the generated circuit.
154
+ depth: The number of layers for the generated circuit. If this
155
+ is not specified it will default to ``num_qubits`` layers.
156
+ seed: An optional RNG seed used for generating the random SU(4)
157
+ matrices used in the output circuit. This can be either an
158
+ integer or a numpy generator. If an integer is specfied it must
159
+ be an value between 0 and 2**64 - 1.
160
+
152
161
  **Reference Circuit:**
153
162
 
154
163
  .. plot::
@@ -32,9 +32,10 @@ class RGate(Gate):
32
32
 
33
33
  .. code-block:: text
34
34
 
35
- ┌──────┐
36
- q_0: ┤ R(ϴ)
37
- └──────┘
35
+ ┌─────────┐
36
+ q_0: ┤ R(θ,ϕ)
37
+ └─────────┘
38
+
38
39
 
39
40
  **Matrix Representation:**
40
41
 
@@ -79,7 +80,7 @@ class RGate(Gate):
79
80
  self.definition = qc
80
81
 
81
82
  def inverse(self, annotated: bool = False):
82
- """Invert this gate as: :math:`r(θ, φ)^dagger = r(-θ, φ)`
83
+ r"""Invert this gate as: :math:`R(θ, φ)^{\dagger} = R(-θ, φ)`
83
84
 
84
85
  Args:
85
86
  annotated: when set to ``True``, this is typically used to return an
@@ -301,8 +301,7 @@ class CCXGate(SingletonControlledGate):
301
301
  r"""CCX gate, also known as Toffoli gate.
302
302
 
303
303
  Can be applied to a :class:`~qiskit.circuit.QuantumCircuit`
304
- with the :meth:`~qiskit.circuit.QuantumCircuit.ccx` and
305
- :meth:`~qiskit.circuit.QuantumCircuit.toffoli` methods.
304
+ with the :meth:`~qiskit.circuit.QuantumCircuit.ccx` method.
306
305
 
307
306
  **Circuit symbol:**
308
307
 
@@ -26,6 +26,7 @@ import numpy
26
26
  import symengine
27
27
 
28
28
  from qiskit.circuit.exceptions import CircuitError
29
+ from qiskit.exceptions import QiskitError
29
30
  from qiskit.utils.optionals import HAS_SYMPY
30
31
 
31
32
  # This type is redefined at the bottom to insert the full reference to "ParameterExpression", so it
@@ -531,6 +532,9 @@ class ParameterExpression:
531
532
  def __str__(self):
532
533
  from sympy import sympify, sstr
533
534
 
535
+ if not isinstance(self._symbol_expr, symengine.Basic):
536
+ raise QiskitError("Invalid ParameterExpression")
537
+
534
538
  return sstr(sympify(self._symbol_expr), full_prec=False)
535
539
 
536
540
  def __complex__(self):
@@ -611,6 +615,9 @@ class ParameterExpression:
611
615
  return False
612
616
  from sympy import sympify
613
617
 
618
+ if not isinstance(self._symbol_expr, symengine.Basic):
619
+ raise QiskitError("Invalid ParameterExpression")
620
+
614
621
  return sympify(self._symbol_expr).equals(sympify(other._symbol_expr))
615
622
  elif isinstance(other, numbers.Number):
616
623
  return len(self.parameters) == 0 and complex(self._symbol_expr) == other