qiskit 1.4.1__cp39-abi3-win_amd64.whl → 2.0.0__cp39-abi3-win_amd64.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 (462) hide show
  1. qiskit/VERSION.txt +1 -1
  2. qiskit/__init__.py +3 -9
  3. qiskit/_accelerate.pyd +0 -0
  4. qiskit/circuit/__init__.py +35 -10
  5. qiskit/circuit/{add_control.py → _add_control.py} +32 -12
  6. qiskit/circuit/_classical_resource_map.py +5 -3
  7. qiskit/circuit/barrier.py +3 -7
  8. qiskit/circuit/classical/expr/__init__.py +31 -3
  9. qiskit/circuit/classical/expr/constructors.py +236 -28
  10. qiskit/circuit/classical/expr/expr.py +104 -3
  11. qiskit/circuit/classical/expr/visitors.py +75 -0
  12. qiskit/circuit/classical/types/__init__.py +12 -8
  13. qiskit/circuit/classical/types/ordering.py +14 -7
  14. qiskit/circuit/classical/types/types.py +36 -0
  15. qiskit/circuit/commutation_checker.py +34 -7
  16. qiskit/circuit/controlflow/__init__.py +32 -1
  17. qiskit/circuit/controlflow/_builder_utils.py +9 -5
  18. qiskit/circuit/controlflow/box.py +163 -0
  19. qiskit/circuit/controlflow/break_loop.py +1 -1
  20. qiskit/circuit/controlflow/builder.py +139 -39
  21. qiskit/circuit/controlflow/continue_loop.py +1 -3
  22. qiskit/circuit/controlflow/control_flow.py +10 -0
  23. qiskit/circuit/controlflow/for_loop.py +2 -1
  24. qiskit/circuit/controlflow/if_else.py +3 -16
  25. qiskit/circuit/controlflow/switch_case.py +2 -8
  26. qiskit/circuit/controlflow/while_loop.py +2 -7
  27. qiskit/circuit/controlledgate.py +2 -4
  28. qiskit/circuit/delay.py +40 -11
  29. qiskit/circuit/duration.py +0 -15
  30. qiskit/circuit/gate.py +2 -4
  31. qiskit/circuit/instruction.py +2 -141
  32. qiskit/circuit/instructionset.py +7 -54
  33. qiskit/circuit/library/__init__.py +469 -154
  34. qiskit/circuit/library/arithmetic/__init__.py +16 -10
  35. qiskit/circuit/library/arithmetic/adders/cdkm_ripple_carry_adder.py +1 -1
  36. qiskit/circuit/library/arithmetic/adders/draper_qft_adder.py +2 -2
  37. qiskit/circuit/library/arithmetic/adders/vbe_ripple_carry_adder.py +1 -1
  38. qiskit/circuit/library/arithmetic/exact_reciprocal.py +64 -21
  39. qiskit/circuit/library/arithmetic/integer_comparator.py +37 -80
  40. qiskit/circuit/library/arithmetic/linear_amplitude_function.py +169 -2
  41. qiskit/circuit/library/arithmetic/linear_pauli_rotations.py +59 -5
  42. qiskit/circuit/library/arithmetic/piecewise_chebyshev.py +154 -6
  43. qiskit/circuit/library/arithmetic/piecewise_linear_pauli_rotations.py +114 -4
  44. qiskit/circuit/library/arithmetic/piecewise_polynomial_pauli_rotations.py +191 -15
  45. qiskit/circuit/library/arithmetic/polynomial_pauli_rotations.py +93 -39
  46. qiskit/circuit/library/arithmetic/quadratic_form.py +168 -2
  47. qiskit/circuit/library/arithmetic/weighted_adder.py +73 -1
  48. qiskit/circuit/library/bit_flip_oracle.py +130 -0
  49. qiskit/circuit/library/blueprintcircuit.py +52 -16
  50. qiskit/circuit/library/data_preparation/initializer.py +1 -1
  51. qiskit/circuit/library/data_preparation/pauli_feature_map.py +4 -4
  52. qiskit/circuit/library/data_preparation/state_preparation.py +1 -1
  53. qiskit/circuit/library/generalized_gates/gms.py +1 -1
  54. qiskit/circuit/library/generalized_gates/isometry.py +1 -1
  55. qiskit/circuit/library/generalized_gates/pauli.py +1 -2
  56. qiskit/circuit/library/generalized_gates/uc.py +97 -7
  57. qiskit/circuit/library/generalized_gates/uc_pauli_rot.py +1 -1
  58. qiskit/circuit/library/generalized_gates/unitary.py +4 -2
  59. qiskit/circuit/library/graph_state.py +1 -0
  60. qiskit/circuit/library/hamiltonian_gate.py +1 -1
  61. qiskit/circuit/library/n_local/evolved_operator_ansatz.py +1 -1
  62. qiskit/circuit/library/n_local/n_local.py +1 -1
  63. qiskit/circuit/library/n_local/qaoa_ansatz.py +1 -1
  64. qiskit/circuit/library/overlap.py +2 -2
  65. qiskit/circuit/library/pauli_evolution.py +39 -24
  66. qiskit/circuit/library/phase_oracle.py +130 -51
  67. qiskit/circuit/library/standard_gates/__init__.py +0 -1
  68. qiskit/circuit/library/standard_gates/dcx.py +3 -4
  69. qiskit/circuit/library/standard_gates/ecr.py +3 -4
  70. qiskit/circuit/library/standard_gates/global_phase.py +5 -6
  71. qiskit/circuit/library/standard_gates/h.py +4 -9
  72. qiskit/circuit/library/standard_gates/i.py +2 -2
  73. qiskit/circuit/library/standard_gates/iswap.py +3 -4
  74. qiskit/circuit/library/standard_gates/p.py +15 -34
  75. qiskit/circuit/library/standard_gates/r.py +7 -10
  76. qiskit/circuit/library/standard_gates/rx.py +5 -15
  77. qiskit/circuit/library/standard_gates/rxx.py +3 -6
  78. qiskit/circuit/library/standard_gates/ry.py +5 -17
  79. qiskit/circuit/library/standard_gates/ryy.py +3 -6
  80. qiskit/circuit/library/standard_gates/rz.py +5 -17
  81. qiskit/circuit/library/standard_gates/rzx.py +3 -6
  82. qiskit/circuit/library/standard_gates/rzz.py +3 -6
  83. qiskit/circuit/library/standard_gates/s.py +6 -15
  84. qiskit/circuit/library/standard_gates/swap.py +4 -11
  85. qiskit/circuit/library/standard_gates/sx.py +7 -12
  86. qiskit/circuit/library/standard_gates/t.py +6 -7
  87. qiskit/circuit/library/standard_gates/u.py +2 -10
  88. qiskit/circuit/library/standard_gates/u1.py +5 -16
  89. qiskit/circuit/library/standard_gates/u2.py +2 -6
  90. qiskit/circuit/library/standard_gates/u3.py +3 -11
  91. qiskit/circuit/library/standard_gates/x.py +14 -62
  92. qiskit/circuit/library/standard_gates/xx_minus_yy.py +2 -5
  93. qiskit/circuit/library/standard_gates/xx_plus_yy.py +2 -5
  94. qiskit/circuit/library/standard_gates/y.py +4 -9
  95. qiskit/circuit/library/standard_gates/z.py +5 -15
  96. qiskit/circuit/measure.py +11 -2
  97. qiskit/circuit/parameterexpression.py +11 -0
  98. qiskit/circuit/quantumcircuit.py +890 -564
  99. qiskit/circuit/random/utils.py +12 -6
  100. qiskit/circuit/reset.py +5 -2
  101. qiskit/circuit/singleton.py +5 -11
  102. qiskit/circuit/store.py +0 -8
  103. qiskit/circuit/tools/pi_check.py +3 -0
  104. qiskit/compiler/__init__.py +1 -7
  105. qiskit/compiler/transpiler.py +38 -196
  106. qiskit/converters/circuit_to_dag.py +6 -4
  107. qiskit/converters/circuit_to_dagdependency.py +0 -2
  108. qiskit/converters/circuit_to_dagdependency_v2.py +0 -1
  109. qiskit/converters/circuit_to_gate.py +1 -1
  110. qiskit/converters/circuit_to_instruction.py +16 -29
  111. qiskit/converters/dag_to_circuit.py +7 -8
  112. qiskit/converters/dag_to_dagdependency.py +0 -1
  113. qiskit/converters/dag_to_dagdependency_v2.py +0 -1
  114. qiskit/converters/dagdependency_to_circuit.py +0 -6
  115. qiskit/converters/dagdependency_to_dag.py +0 -6
  116. qiskit/dagcircuit/collect_blocks.py +32 -20
  117. qiskit/dagcircuit/dagdependency.py +3 -37
  118. qiskit/dagcircuit/dagdependency_v2.py +5 -82
  119. qiskit/dagcircuit/dagnode.py +14 -2
  120. qiskit/passmanager/__init__.py +24 -6
  121. qiskit/passmanager/passmanager.py +26 -24
  122. qiskit/primitives/__init__.py +44 -35
  123. qiskit/primitives/backend_estimator_v2.py +102 -23
  124. qiskit/primitives/backend_sampler_v2.py +5 -20
  125. qiskit/primitives/base/__init__.py +4 -4
  126. qiskit/primitives/base/base_estimator.py +77 -82
  127. qiskit/primitives/base/base_primitive_job.py +2 -2
  128. qiskit/primitives/base/{base_primitive.py → base_primitive_v1.py} +1 -1
  129. qiskit/primitives/base/{base_result.py → base_result_v1.py} +1 -1
  130. qiskit/primitives/base/base_sampler.py +52 -60
  131. qiskit/primitives/base/{estimator_result.py → estimator_result_v1.py} +2 -2
  132. qiskit/primitives/base/{sampler_result.py → sampler_result_v1.py} +2 -2
  133. qiskit/primitives/base/{validation.py → validation_v1.py} +34 -15
  134. qiskit/primitives/containers/bindings_array.py +3 -1
  135. qiskit/primitives/containers/bit_array.py +23 -0
  136. qiskit/primitives/containers/data_bin.py +3 -1
  137. qiskit/primitives/containers/observables_array.py +19 -2
  138. qiskit/primitives/statevector_sampler.py +6 -8
  139. qiskit/primitives/utils.py +14 -189
  140. qiskit/providers/__init__.py +4 -130
  141. qiskit/providers/backend.py +11 -314
  142. qiskit/providers/basic_provider/__init__.py +3 -1
  143. qiskit/providers/basic_provider/basic_provider.py +29 -9
  144. qiskit/providers/basic_provider/basic_simulator.py +158 -298
  145. qiskit/providers/exceptions.py +0 -33
  146. qiskit/providers/fake_provider/__init__.py +0 -37
  147. qiskit/providers/fake_provider/generic_backend_v2.py +32 -693
  148. qiskit/qasm2/__init__.py +21 -6
  149. qiskit/qasm2/export.py +2 -10
  150. qiskit/qasm2/parse.py +11 -25
  151. qiskit/qasm3/__init__.py +5 -1
  152. qiskit/qasm3/ast.py +44 -0
  153. qiskit/qasm3/exporter.py +65 -27
  154. qiskit/qasm3/printer.py +35 -4
  155. qiskit/qpy/__init__.py +162 -19
  156. qiskit/qpy/binary_io/__init__.py +0 -1
  157. qiskit/qpy/binary_io/circuits.py +96 -116
  158. qiskit/qpy/binary_io/parse_sympy_repr.py +121 -0
  159. qiskit/qpy/binary_io/schedules.py +61 -388
  160. qiskit/qpy/binary_io/value.py +159 -33
  161. qiskit/qpy/common.py +10 -7
  162. qiskit/qpy/formats.py +41 -0
  163. qiskit/qpy/interface.py +29 -62
  164. qiskit/qpy/type_keys.py +58 -221
  165. qiskit/quantum_info/analysis/distance.py +3 -1
  166. qiskit/quantum_info/operators/dihedral/dihedral.py +3 -1
  167. qiskit/quantum_info/operators/operator.py +6 -2
  168. qiskit/quantum_info/operators/symplectic/clifford.py +3 -1
  169. qiskit/quantum_info/operators/symplectic/pauli.py +4 -2
  170. qiskit/quantum_info/operators/symplectic/pauli_list.py +17 -5
  171. qiskit/quantum_info/operators/symplectic/sparse_pauli_op.py +40 -6
  172. qiskit/quantum_info/states/densitymatrix.py +16 -6
  173. qiskit/quantum_info/states/stabilizerstate.py +35 -4
  174. qiskit/quantum_info/states/statevector.py +16 -6
  175. qiskit/result/__init__.py +5 -17
  176. qiskit/result/models.py +18 -11
  177. qiskit/result/result.py +38 -134
  178. qiskit/result/sampled_expval.py +1 -2
  179. qiskit/result/utils.py +3 -4
  180. qiskit/synthesis/__init__.py +21 -1
  181. qiskit/synthesis/arithmetic/__init__.py +3 -1
  182. qiskit/synthesis/arithmetic/adders/cdkm_ripple_carry_adder.py +1 -1
  183. qiskit/synthesis/arithmetic/adders/draper_qft_adder.py +1 -1
  184. qiskit/synthesis/arithmetic/adders/vbe_ripple_carry_adder.py +2 -2
  185. qiskit/{providers/fake_provider/backends_v1/fake_20q → synthesis/arithmetic/comparators}/__init__.py +4 -6
  186. qiskit/synthesis/arithmetic/comparators/compare_2s.py +112 -0
  187. qiskit/synthesis/arithmetic/comparators/compare_greedy.py +66 -0
  188. qiskit/synthesis/arithmetic/multipliers/hrs_cumulative_multiplier.py +1 -1
  189. qiskit/synthesis/arithmetic/multipliers/rg_qft_multiplier.py +1 -1
  190. qiskit/synthesis/arithmetic/weighted_sum.py +155 -0
  191. qiskit/{result/mitigation → synthesis/boolean}/__init__.py +2 -2
  192. qiskit/synthesis/boolean/boolean_expression.py +231 -0
  193. qiskit/synthesis/boolean/boolean_expression_synth.py +124 -0
  194. qiskit/synthesis/boolean/boolean_expression_visitor.py +96 -0
  195. qiskit/synthesis/discrete_basis/generate_basis_approximations.py +2 -0
  196. qiskit/synthesis/evolution/lie_trotter.py +10 -7
  197. qiskit/synthesis/evolution/product_formula.py +44 -35
  198. qiskit/synthesis/evolution/qdrift.py +17 -24
  199. qiskit/synthesis/evolution/suzuki_trotter.py +20 -27
  200. qiskit/synthesis/linear/linear_depth_lnn.py +6 -221
  201. qiskit/synthesis/linear_phase/cx_cz_depth_lnn.py +4 -205
  202. qiskit/synthesis/multi_controlled/__init__.py +1 -0
  203. qiskit/synthesis/multi_controlled/mcx_synthesis.py +5 -2
  204. qiskit/synthesis/multi_controlled/multi_control_rotation_gates.py +206 -0
  205. qiskit/synthesis/one_qubit/one_qubit_decompose.py +1 -1
  206. qiskit/synthesis/two_qubit/__init__.py +1 -0
  207. qiskit/synthesis/two_qubit/two_qubit_decompose.py +28 -145
  208. qiskit/transpiler/__init__.py +32 -232
  209. qiskit/transpiler/basepasses.py +20 -51
  210. qiskit/transpiler/layout.py +1 -1
  211. qiskit/transpiler/passes/__init__.py +4 -40
  212. qiskit/transpiler/passes/basis/basis_translator.py +5 -4
  213. qiskit/transpiler/passes/basis/decompose.py +1 -15
  214. qiskit/transpiler/passes/basis/unroll_3q_or_more.py +1 -5
  215. qiskit/transpiler/passes/basis/unroll_custom_definitions.py +3 -2
  216. qiskit/transpiler/passes/layout/apply_layout.py +4 -0
  217. qiskit/transpiler/passes/layout/dense_layout.py +2 -39
  218. qiskit/transpiler/passes/layout/full_ancilla_allocation.py +3 -4
  219. qiskit/transpiler/passes/layout/sabre_layout.py +7 -3
  220. qiskit/transpiler/passes/layout/vf2_layout.py +2 -20
  221. qiskit/transpiler/passes/layout/vf2_post_layout.py +60 -125
  222. qiskit/transpiler/passes/layout/vf2_utils.py +2 -26
  223. qiskit/transpiler/passes/optimization/__init__.py +2 -3
  224. qiskit/transpiler/passes/optimization/collect_and_collapse.py +2 -0
  225. qiskit/transpiler/passes/optimization/collect_cliffords.py +5 -0
  226. qiskit/transpiler/passes/optimization/collect_linear_functions.py +5 -0
  227. qiskit/transpiler/passes/optimization/collect_multiqubit_blocks.py +16 -1
  228. qiskit/transpiler/passes/optimization/commutation_analysis.py +3 -3
  229. qiskit/transpiler/passes/optimization/consolidate_blocks.py +41 -19
  230. qiskit/transpiler/passes/optimization/contract_idle_wires_in_control_flow.py +104 -0
  231. qiskit/transpiler/passes/optimization/light_cone.py +135 -0
  232. qiskit/transpiler/passes/optimization/optimize_1q_commutation.py +0 -1
  233. qiskit/transpiler/passes/optimization/optimize_1q_decomposition.py +18 -22
  234. qiskit/transpiler/passes/optimization/optimize_annotated.py +3 -2
  235. qiskit/transpiler/passes/optimization/remove_identity_equiv.py +6 -4
  236. qiskit/transpiler/passes/optimization/reset_after_measure_simplification.py +5 -2
  237. qiskit/transpiler/passes/optimization/split_2q_unitaries.py +26 -3
  238. qiskit/transpiler/passes/optimization/template_matching/template_substitution.py +3 -2
  239. qiskit/transpiler/passes/routing/__init__.py +0 -1
  240. qiskit/transpiler/passes/routing/commuting_2q_gate_routing/commuting_2q_gate_router.py +3 -1
  241. qiskit/transpiler/passes/routing/sabre_swap.py +14 -6
  242. qiskit/transpiler/passes/routing/star_prerouting.py +1 -1
  243. qiskit/transpiler/passes/scheduling/__init__.py +1 -7
  244. qiskit/transpiler/passes/scheduling/alignments/__init__.py +2 -4
  245. qiskit/transpiler/passes/scheduling/alignments/check_durations.py +1 -9
  246. qiskit/transpiler/passes/scheduling/alignments/reschedule.py +17 -16
  247. qiskit/transpiler/passes/scheduling/padding/base_padding.py +32 -4
  248. qiskit/transpiler/passes/scheduling/padding/dynamical_decoupling.py +25 -63
  249. qiskit/transpiler/passes/scheduling/padding/pad_delay.py +12 -4
  250. qiskit/transpiler/passes/scheduling/scheduling/alap.py +5 -39
  251. qiskit/transpiler/passes/scheduling/scheduling/asap.py +4 -35
  252. qiskit/transpiler/passes/scheduling/scheduling/base_scheduler.py +10 -16
  253. qiskit/transpiler/passes/scheduling/time_unit_conversion.py +134 -62
  254. qiskit/transpiler/passes/synthesis/default_unitary_synth_plugin.py +653 -0
  255. qiskit/transpiler/passes/synthesis/high_level_synthesis.py +176 -601
  256. qiskit/transpiler/passes/synthesis/hls_plugins.py +294 -1
  257. qiskit/transpiler/passes/synthesis/plugin.py +4 -0
  258. qiskit/transpiler/passes/synthesis/solovay_kitaev_synthesis.py +16 -10
  259. qiskit/transpiler/passes/synthesis/unitary_synthesis.py +34 -697
  260. qiskit/transpiler/passes/utils/__init__.py +0 -1
  261. qiskit/transpiler/passes/utils/check_gate_direction.py +13 -5
  262. qiskit/transpiler/passes/utils/control_flow.py +2 -6
  263. qiskit/transpiler/passes/utils/gate_direction.py +7 -0
  264. qiskit/transpiler/passes/utils/remove_final_measurements.py +40 -33
  265. qiskit/transpiler/passmanager.py +13 -0
  266. qiskit/transpiler/passmanager_config.py +5 -81
  267. qiskit/transpiler/preset_passmanagers/builtin_plugins.py +225 -344
  268. qiskit/transpiler/preset_passmanagers/common.py +140 -167
  269. qiskit/transpiler/preset_passmanagers/generate_preset_pass_manager.py +107 -322
  270. qiskit/transpiler/preset_passmanagers/level0.py +2 -11
  271. qiskit/transpiler/preset_passmanagers/level1.py +2 -14
  272. qiskit/transpiler/preset_passmanagers/level2.py +2 -12
  273. qiskit/transpiler/preset_passmanagers/level3.py +2 -11
  274. qiskit/transpiler/preset_passmanagers/plugin.py +5 -3
  275. qiskit/transpiler/target.py +78 -524
  276. qiskit/user_config.py +8 -4
  277. qiskit/utils/__init__.py +13 -12
  278. qiskit/utils/deprecation.py +4 -112
  279. qiskit/utils/optionals.py +11 -4
  280. qiskit/utils/parallel.py +214 -87
  281. qiskit/utils/units.py +4 -1
  282. qiskit/visualization/__init__.py +3 -7
  283. qiskit/visualization/array.py +4 -1
  284. qiskit/visualization/bloch.py +1 -1
  285. qiskit/visualization/circuit/_utils.py +19 -19
  286. qiskit/visualization/circuit/circuit_visualization.py +11 -4
  287. qiskit/visualization/circuit/matplotlib.py +13 -23
  288. qiskit/visualization/circuit/text.py +7 -3
  289. qiskit/visualization/counts_visualization.py +4 -0
  290. qiskit/visualization/dag_visualization.py +2 -1
  291. qiskit/visualization/gate_map.py +39 -154
  292. qiskit/visualization/library.py +4 -1
  293. qiskit/visualization/pass_manager_visualization.py +6 -2
  294. qiskit/visualization/state_visualization.py +19 -2
  295. qiskit/visualization/timeline/core.py +19 -13
  296. qiskit/visualization/timeline/interface.py +19 -18
  297. qiskit/visualization/timeline/plotters/matplotlib.py +4 -1
  298. {qiskit-1.4.1.dist-info → qiskit-2.0.0.dist-info}/METADATA +4 -3
  299. {qiskit-1.4.1.dist-info → qiskit-2.0.0.dist-info}/RECORD +303 -449
  300. {qiskit-1.4.1.dist-info → qiskit-2.0.0.dist-info}/WHEEL +1 -1
  301. {qiskit-1.4.1.dist-info → qiskit-2.0.0.dist-info}/entry_points.txt +8 -2
  302. qiskit/assembler/__init__.py +0 -42
  303. qiskit/assembler/assemble_circuits.py +0 -451
  304. qiskit/assembler/assemble_schedules.py +0 -367
  305. qiskit/assembler/disassemble.py +0 -310
  306. qiskit/assembler/run_config.py +0 -77
  307. qiskit/circuit/bit.py +0 -106
  308. qiskit/circuit/classicalfunction/__init__.py +0 -152
  309. qiskit/circuit/classicalfunction/boolean_expression.py +0 -138
  310. qiskit/circuit/classicalfunction/classical_element.py +0 -54
  311. qiskit/circuit/classicalfunction/classical_function_visitor.py +0 -155
  312. qiskit/circuit/classicalfunction/classicalfunction.py +0 -182
  313. qiskit/circuit/classicalfunction/exceptions.py +0 -41
  314. qiskit/circuit/classicalfunction/types.py +0 -18
  315. qiskit/circuit/classicalfunction/utils.py +0 -91
  316. qiskit/circuit/classicalregister.py +0 -57
  317. qiskit/circuit/library/standard_gates/multi_control_rotation_gates.py +0 -405
  318. qiskit/circuit/quantumregister.py +0 -75
  319. qiskit/circuit/register.py +0 -246
  320. qiskit/compiler/assembler.py +0 -689
  321. qiskit/compiler/scheduler.py +0 -109
  322. qiskit/compiler/sequencer.py +0 -71
  323. qiskit/primitives/backend_estimator.py +0 -486
  324. qiskit/primitives/backend_sampler.py +0 -222
  325. qiskit/primitives/estimator.py +0 -172
  326. qiskit/primitives/sampler.py +0 -162
  327. qiskit/providers/backend_compat.py +0 -507
  328. qiskit/providers/fake_provider/backends_v1/__init__.py +0 -22
  329. qiskit/providers/fake_provider/backends_v1/fake_127q_pulse/__init__.py +0 -18
  330. qiskit/providers/fake_provider/backends_v1/fake_127q_pulse/conf_washington.json +0 -1
  331. qiskit/providers/fake_provider/backends_v1/fake_127q_pulse/defs_washington.json +0 -1
  332. qiskit/providers/fake_provider/backends_v1/fake_127q_pulse/fake_127q_pulse_v1.py +0 -37
  333. qiskit/providers/fake_provider/backends_v1/fake_127q_pulse/props_washington.json +0 -1
  334. qiskit/providers/fake_provider/backends_v1/fake_20q/conf_singapore.json +0 -1
  335. qiskit/providers/fake_provider/backends_v1/fake_20q/fake_20q.py +0 -43
  336. qiskit/providers/fake_provider/backends_v1/fake_20q/props_singapore.json +0 -1
  337. qiskit/providers/fake_provider/backends_v1/fake_27q_pulse/__init__.py +0 -18
  338. qiskit/providers/fake_provider/backends_v1/fake_27q_pulse/conf_hanoi.json +0 -1
  339. qiskit/providers/fake_provider/backends_v1/fake_27q_pulse/defs_hanoi.json +0 -1
  340. qiskit/providers/fake_provider/backends_v1/fake_27q_pulse/fake_27q_pulse_v1.py +0 -50
  341. qiskit/providers/fake_provider/backends_v1/fake_27q_pulse/props_hanoi.json +0 -1
  342. qiskit/providers/fake_provider/backends_v1/fake_5q/__init__.py +0 -18
  343. qiskit/providers/fake_provider/backends_v1/fake_5q/conf_yorktown.json +0 -1
  344. qiskit/providers/fake_provider/backends_v1/fake_5q/fake_5q_v1.py +0 -41
  345. qiskit/providers/fake_provider/backends_v1/fake_5q/props_yorktown.json +0 -1
  346. qiskit/providers/fake_provider/backends_v1/fake_7q_pulse/__init__.py +0 -18
  347. qiskit/providers/fake_provider/backends_v1/fake_7q_pulse/conf_nairobi.json +0 -1
  348. qiskit/providers/fake_provider/backends_v1/fake_7q_pulse/defs_nairobi.json +0 -1
  349. qiskit/providers/fake_provider/backends_v1/fake_7q_pulse/fake_7q_pulse_v1.py +0 -44
  350. qiskit/providers/fake_provider/backends_v1/fake_7q_pulse/props_nairobi.json +0 -1
  351. qiskit/providers/fake_provider/fake_1q.py +0 -91
  352. qiskit/providers/fake_provider/fake_backend.py +0 -165
  353. qiskit/providers/fake_provider/fake_openpulse_2q.py +0 -391
  354. qiskit/providers/fake_provider/fake_openpulse_3q.py +0 -340
  355. qiskit/providers/fake_provider/fake_pulse_backend.py +0 -49
  356. qiskit/providers/fake_provider/fake_qasm_backend.py +0 -77
  357. qiskit/providers/fake_provider/utils/backend_converter.py +0 -150
  358. qiskit/providers/fake_provider/utils/json_decoder.py +0 -109
  359. qiskit/providers/models/__init__.py +0 -89
  360. qiskit/providers/models/backendconfiguration.py +0 -1040
  361. qiskit/providers/models/backendproperties.py +0 -535
  362. qiskit/providers/models/backendstatus.py +0 -104
  363. qiskit/providers/models/jobstatus.py +0 -77
  364. qiskit/providers/models/pulsedefaults.py +0 -305
  365. qiskit/providers/provider.py +0 -95
  366. qiskit/pulse/__init__.py +0 -158
  367. qiskit/pulse/builder.py +0 -2262
  368. qiskit/pulse/calibration_entries.py +0 -381
  369. qiskit/pulse/channels.py +0 -227
  370. qiskit/pulse/configuration.py +0 -245
  371. qiskit/pulse/exceptions.py +0 -45
  372. qiskit/pulse/filters.py +0 -309
  373. qiskit/pulse/instruction_schedule_map.py +0 -424
  374. qiskit/pulse/instructions/__init__.py +0 -67
  375. qiskit/pulse/instructions/acquire.py +0 -150
  376. qiskit/pulse/instructions/delay.py +0 -71
  377. qiskit/pulse/instructions/directives.py +0 -154
  378. qiskit/pulse/instructions/frequency.py +0 -135
  379. qiskit/pulse/instructions/instruction.py +0 -270
  380. qiskit/pulse/instructions/phase.py +0 -152
  381. qiskit/pulse/instructions/play.py +0 -99
  382. qiskit/pulse/instructions/reference.py +0 -100
  383. qiskit/pulse/instructions/snapshot.py +0 -82
  384. qiskit/pulse/library/__init__.py +0 -97
  385. qiskit/pulse/library/continuous.py +0 -430
  386. qiskit/pulse/library/pulse.py +0 -148
  387. qiskit/pulse/library/samplers/__init__.py +0 -15
  388. qiskit/pulse/library/samplers/decorators.py +0 -295
  389. qiskit/pulse/library/samplers/strategies.py +0 -71
  390. qiskit/pulse/library/symbolic_pulses.py +0 -1989
  391. qiskit/pulse/library/waveform.py +0 -136
  392. qiskit/pulse/macros.py +0 -262
  393. qiskit/pulse/parameter_manager.py +0 -445
  394. qiskit/pulse/parser.py +0 -314
  395. qiskit/pulse/reference_manager.py +0 -58
  396. qiskit/pulse/schedule.py +0 -1854
  397. qiskit/pulse/transforms/__init__.py +0 -106
  398. qiskit/pulse/transforms/alignments.py +0 -406
  399. qiskit/pulse/transforms/base_transforms.py +0 -71
  400. qiskit/pulse/transforms/canonicalization.py +0 -498
  401. qiskit/pulse/transforms/dag.py +0 -122
  402. qiskit/pulse/utils.py +0 -149
  403. qiskit/qobj/__init__.py +0 -75
  404. qiskit/qobj/common.py +0 -81
  405. qiskit/qobj/converters/__init__.py +0 -18
  406. qiskit/qobj/converters/lo_config.py +0 -177
  407. qiskit/qobj/converters/pulse_instruction.py +0 -897
  408. qiskit/qobj/pulse_qobj.py +0 -709
  409. qiskit/qobj/qasm_qobj.py +0 -708
  410. qiskit/qobj/utils.py +0 -46
  411. qiskit/result/mitigation/base_readout_mitigator.py +0 -79
  412. qiskit/result/mitigation/correlated_readout_mitigator.py +0 -277
  413. qiskit/result/mitigation/local_readout_mitigator.py +0 -328
  414. qiskit/result/mitigation/utils.py +0 -217
  415. qiskit/scheduler/__init__.py +0 -40
  416. qiskit/scheduler/config.py +0 -37
  417. qiskit/scheduler/lowering.py +0 -187
  418. qiskit/scheduler/methods/__init__.py +0 -15
  419. qiskit/scheduler/methods/basic.py +0 -140
  420. qiskit/scheduler/schedule_circuit.py +0 -69
  421. qiskit/scheduler/sequence.py +0 -104
  422. qiskit/transpiler/passes/calibration/__init__.py +0 -17
  423. qiskit/transpiler/passes/calibration/base_builder.py +0 -79
  424. qiskit/transpiler/passes/calibration/builders.py +0 -20
  425. qiskit/transpiler/passes/calibration/exceptions.py +0 -22
  426. qiskit/transpiler/passes/calibration/pulse_gate.py +0 -100
  427. qiskit/transpiler/passes/calibration/rx_builder.py +0 -164
  428. qiskit/transpiler/passes/calibration/rzx_builder.py +0 -411
  429. qiskit/transpiler/passes/calibration/rzx_templates.py +0 -58
  430. qiskit/transpiler/passes/optimization/cx_cancellation.py +0 -65
  431. qiskit/transpiler/passes/optimization/echo_rzx_weyl_decomposition.py +0 -162
  432. qiskit/transpiler/passes/optimization/normalize_rx_angle.py +0 -157
  433. qiskit/transpiler/passes/routing/stochastic_swap.py +0 -532
  434. qiskit/transpiler/passes/scheduling/alap.py +0 -153
  435. qiskit/transpiler/passes/scheduling/alignments/align_measures.py +0 -255
  436. qiskit/transpiler/passes/scheduling/alignments/pulse_gate_validation.py +0 -107
  437. qiskit/transpiler/passes/scheduling/asap.py +0 -175
  438. qiskit/transpiler/passes/scheduling/base_scheduler.py +0 -310
  439. qiskit/transpiler/passes/scheduling/dynamical_decoupling.py +0 -313
  440. qiskit/transpiler/passes/utils/convert_conditions_to_if_ops.py +0 -93
  441. qiskit/utils/deprecate_pulse.py +0 -119
  442. qiskit/utils/multiprocessing.py +0 -56
  443. qiskit/visualization/pulse_v2/__init__.py +0 -21
  444. qiskit/visualization/pulse_v2/core.py +0 -901
  445. qiskit/visualization/pulse_v2/device_info.py +0 -173
  446. qiskit/visualization/pulse_v2/drawings.py +0 -253
  447. qiskit/visualization/pulse_v2/events.py +0 -254
  448. qiskit/visualization/pulse_v2/generators/__init__.py +0 -40
  449. qiskit/visualization/pulse_v2/generators/barrier.py +0 -76
  450. qiskit/visualization/pulse_v2/generators/chart.py +0 -208
  451. qiskit/visualization/pulse_v2/generators/frame.py +0 -436
  452. qiskit/visualization/pulse_v2/generators/snapshot.py +0 -133
  453. qiskit/visualization/pulse_v2/generators/waveform.py +0 -645
  454. qiskit/visualization/pulse_v2/interface.py +0 -459
  455. qiskit/visualization/pulse_v2/layouts.py +0 -387
  456. qiskit/visualization/pulse_v2/plotters/__init__.py +0 -17
  457. qiskit/visualization/pulse_v2/plotters/base_plotter.py +0 -53
  458. qiskit/visualization/pulse_v2/plotters/matplotlib.py +0 -201
  459. qiskit/visualization/pulse_v2/stylesheet.py +0 -312
  460. qiskit/visualization/pulse_v2/types.py +0 -242
  461. {qiskit-1.4.1.dist-info → qiskit-2.0.0.dist-info/licenses}/LICENSE.txt +0 -0
  462. {qiskit-1.4.1.dist-info → qiskit-2.0.0.dist-info}/top_level.txt +0 -0
@@ -21,7 +21,6 @@ import numpy
21
21
  from qiskit.circuit.controlledgate import ControlledGate
22
22
  from qiskit.circuit.gate import Gate
23
23
  from qiskit.circuit.parameterexpression import ParameterValueType, ParameterExpression
24
- from qiskit.circuit.quantumregister import QuantumRegister
25
24
  from qiskit._accelerate.circuit import StandardGate
26
25
 
27
26
 
@@ -92,12 +91,9 @@ class U3Gate(Gate):
92
91
  phi: ParameterValueType,
93
92
  lam: ParameterValueType,
94
93
  label: Optional[str] = None,
95
- *,
96
- duration=None,
97
- unit="dt",
98
94
  ):
99
95
  """Create new U3 gate."""
100
- super().__init__("u3", 1, [theta, phi, lam], label=label, duration=duration, unit=unit)
96
+ super().__init__("u3", 1, [theta, phi, lam], label=label)
101
97
 
102
98
  def inverse(self, annotated: bool = False):
103
99
  r"""Return inverted U3 gate.
@@ -155,7 +151,7 @@ class U3Gate(Gate):
155
151
  return gate
156
152
 
157
153
  def _define(self):
158
- from qiskit.circuit.quantumcircuit import QuantumCircuit
154
+ from qiskit.circuit import QuantumCircuit, QuantumRegister
159
155
 
160
156
  q = QuantumRegister(1, "q")
161
157
  qc = QuantumCircuit(q, name=self.name)
@@ -271,8 +267,6 @@ class CU3Gate(ControlledGate):
271
267
  label: Optional[str] = None,
272
268
  ctrl_state: Optional[Union[str, int]] = None,
273
269
  *,
274
- duration=None,
275
- unit="dt",
276
270
  _base_label=None,
277
271
  ):
278
272
  """Create new CU3 gate."""
@@ -284,8 +278,6 @@ class CU3Gate(ControlledGate):
284
278
  label=label,
285
279
  ctrl_state=ctrl_state,
286
280
  base_gate=U3Gate(theta, phi, lam, label=_base_label),
287
- duration=duration,
288
- unit=unit,
289
281
  )
290
282
 
291
283
  def _define(self):
@@ -300,7 +292,7 @@ class CU3Gate(ControlledGate):
300
292
  }
301
293
  """
302
294
  # pylint: disable=cyclic-import
303
- from qiskit.circuit.quantumcircuit import QuantumCircuit
295
+ from qiskit.circuit import QuantumCircuit, QuantumRegister
304
296
  from .u1 import U1Gate
305
297
  from .x import CXGate # pylint: disable=cyclic-import
306
298
 
@@ -17,7 +17,6 @@ from math import pi
17
17
  import numpy
18
18
  from qiskit.circuit.controlledgate import ControlledGate
19
19
  from qiskit.circuit.singleton import SingletonGate, SingletonControlledGate, stdlib_singleton_key
20
- from qiskit.circuit.quantumregister import QuantumRegister
21
20
  from qiskit.circuit._utils import _ctrl_state_to_int, with_gate_array, with_controlled_gate_array
22
21
  from qiskit._accelerate.circuit import StandardGate
23
22
  from qiskit.utils.deprecation import deprecate_func
@@ -75,9 +74,9 @@ class XGate(SingletonGate):
75
74
 
76
75
  _standard_gate = StandardGate.XGate
77
76
 
78
- def __init__(self, label: Optional[str] = None, *, duration=None, unit="dt"):
77
+ def __init__(self, label: Optional[str] = None):
79
78
  """Create new X gate."""
80
- super().__init__("x", 1, [], label=label, duration=duration, unit=unit)
79
+ super().__init__("x", 1, [], label=label)
81
80
 
82
81
  _singleton_lookup_key = stdlib_singleton_key()
83
82
 
@@ -86,7 +85,7 @@ class XGate(SingletonGate):
86
85
  gate x a { u3(pi,0,pi) a; }
87
86
  """
88
87
  # pylint: disable=cyclic-import
89
- from qiskit.circuit.quantumcircuit import QuantumCircuit
88
+ from qiskit.circuit import QuantumCircuit, QuantumRegister
90
89
  from .u3 import U3Gate
91
90
 
92
91
  q = QuantumRegister(1, "q")
@@ -225,8 +224,6 @@ class CXGate(SingletonControlledGate):
225
224
  label: Optional[str] = None,
226
225
  ctrl_state: Optional[Union[str, int]] = None,
227
226
  *,
228
- duration=None,
229
- unit="dt",
230
227
  _base_label=None,
231
228
  ):
232
229
  """Create new CX gate."""
@@ -239,8 +236,6 @@ class CXGate(SingletonControlledGate):
239
236
  ctrl_state=ctrl_state,
240
237
  base_gate=XGate(label=_base_label),
241
238
  _base_label=_base_label,
242
- duration=duration,
243
- unit=unit,
244
239
  )
245
240
 
246
241
  _singleton_lookup_key = stdlib_singleton_key(num_ctrl_qubits=1)
@@ -306,8 +301,7 @@ class CCXGate(SingletonControlledGate):
306
301
  r"""CCX gate, also known as Toffoli gate.
307
302
 
308
303
  Can be applied to a :class:`~qiskit.circuit.QuantumCircuit`
309
- with the :meth:`~qiskit.circuit.QuantumCircuit.ccx` and
310
- :meth:`~qiskit.circuit.QuantumCircuit.toffoli` methods.
304
+ with the :meth:`~qiskit.circuit.QuantumCircuit.ccx` method.
311
305
 
312
306
  **Circuit symbol:**
313
307
 
@@ -378,8 +372,6 @@ class CCXGate(SingletonControlledGate):
378
372
  label: Optional[str] = None,
379
373
  ctrl_state: Optional[Union[str, int]] = None,
380
374
  *,
381
- duration=None,
382
- unit="dt",
383
375
  _base_label=None,
384
376
  ):
385
377
  """Create new CCX gate."""
@@ -391,8 +383,6 @@ class CCXGate(SingletonControlledGate):
391
383
  label=label,
392
384
  ctrl_state=ctrl_state,
393
385
  base_gate=XGate(label=_base_label),
394
- duration=duration,
395
- unit=unit,
396
386
  )
397
387
 
398
388
  _singleton_lookup_key = stdlib_singleton_key(num_ctrl_qubits=2)
@@ -407,7 +397,7 @@ class CCXGate(SingletonControlledGate):
407
397
  t a; tdg b; cx a,b;}
408
398
  """
409
399
  # pylint: disable=cyclic-import
410
- from qiskit.circuit.quantumcircuit import QuantumCircuit
400
+ from qiskit.circuit import QuantumCircuit, QuantumRegister
411
401
  from .h import HGate
412
402
  from .t import TGate, TdgGate
413
403
 
@@ -528,9 +518,9 @@ class RCCXGate(SingletonGate):
528
518
 
529
519
  _standard_gate = StandardGate.RCCXGate
530
520
 
531
- def __init__(self, label: Optional[str] = None, *, duration=None, unit="dt"):
521
+ def __init__(self, label: Optional[str] = None):
532
522
  """Create a new simplified CCX gate."""
533
- super().__init__("rccx", 3, [], label=label, duration=duration, unit=unit)
523
+ super().__init__("rccx", 3, [], label=label)
534
524
 
535
525
  _singleton_lookup_key = stdlib_singleton_key()
536
526
 
@@ -549,7 +539,7 @@ class RCCXGate(SingletonGate):
549
539
  }
550
540
  """
551
541
  # pylint: disable=cyclic-import
552
- from qiskit.circuit.quantumcircuit import QuantumCircuit
542
+ from qiskit.circuit import QuantumCircuit, QuantumRegister
553
543
  from .u1 import U1Gate
554
544
  from .u2 import U2Gate
555
545
 
@@ -592,8 +582,6 @@ class C3SXGate(SingletonControlledGate):
592
582
  label: Optional[str] = None,
593
583
  ctrl_state: Optional[Union[str, int]] = None,
594
584
  *,
595
- duration=None,
596
- unit="dt",
597
585
  _base_label=None,
598
586
  ):
599
587
  """Create a new 3-qubit controlled sqrt-X gate.
@@ -613,8 +601,6 @@ class C3SXGate(SingletonControlledGate):
613
601
  label=label,
614
602
  ctrl_state=ctrl_state,
615
603
  base_gate=SXGate(label=_base_label),
616
- duration=duration,
617
- unit=unit,
618
604
  )
619
605
 
620
606
  _singleton_lookup_key = stdlib_singleton_key(num_ctrl_qubits=3)
@@ -639,7 +625,7 @@ class C3SXGate(SingletonControlledGate):
639
625
  }
640
626
  """
641
627
  # pylint: disable=cyclic-import
642
- from qiskit.circuit.quantumcircuit import QuantumCircuit
628
+ from qiskit.circuit import QuantumCircuit, QuantumRegister
643
629
  from .u1 import CU1Gate
644
630
  from .h import HGate
645
631
 
@@ -699,8 +685,6 @@ class C3XGate(SingletonControlledGate):
699
685
  ctrl_state: Optional[Union[str, int]] = None,
700
686
  *,
701
687
  _base_label=None,
702
- duration=None,
703
- unit="dt",
704
688
  ):
705
689
  """Create a new 3-qubit controlled X gate."""
706
690
  super().__init__(
@@ -711,8 +695,6 @@ class C3XGate(SingletonControlledGate):
711
695
  label=label,
712
696
  ctrl_state=ctrl_state,
713
697
  base_gate=XGate(label=_base_label),
714
- duration=duration,
715
- unit=unit,
716
698
  )
717
699
 
718
700
  _singleton_lookup_key = stdlib_singleton_key(num_ctrl_qubits=3)
@@ -755,7 +737,7 @@ class C3XGate(SingletonControlledGate):
755
737
  h d;
756
738
  }
757
739
  """
758
- from qiskit.circuit.quantumcircuit import QuantumCircuit
740
+ from qiskit.circuit import QuantumCircuit, QuantumRegister
759
741
 
760
742
  q = QuantumRegister(4, name="q")
761
743
  qc = QuantumCircuit(q, name=self.name)
@@ -882,9 +864,9 @@ class RC3XGate(SingletonGate):
882
864
 
883
865
  _standard_gate = StandardGate.RC3XGate
884
866
 
885
- def __init__(self, label: Optional[str] = None, *, duration=None, unit="dt"):
867
+ def __init__(self, label: Optional[str] = None):
886
868
  """Create a new RC3X gate."""
887
- super().__init__("rcccx", 4, [], label=label, duration=duration, unit=unit)
869
+ super().__init__("rcccx", 4, [], label=label)
888
870
 
889
871
  _singleton_lookup_key = stdlib_singleton_key()
890
872
 
@@ -912,7 +894,7 @@ class RC3XGate(SingletonGate):
912
894
  }
913
895
  """
914
896
  # pylint: disable=cyclic-import
915
- from qiskit.circuit.quantumcircuit import QuantumCircuit
897
+ from qiskit.circuit import QuantumCircuit, QuantumRegister
916
898
  from .u1 import U1Gate
917
899
  from .u2 import U2Gate
918
900
 
@@ -964,13 +946,9 @@ class C4XGate(SingletonControlledGate):
964
946
  label: Optional[str] = None,
965
947
  ctrl_state: Optional[Union[str, int]] = None,
966
948
  *,
967
- duration=None,
968
- unit="dt",
969
949
  _base_label=None,
970
950
  ):
971
951
  """Create a new 4-qubit controlled X gate."""
972
- if unit is None:
973
- unit = "dt"
974
952
  super().__init__(
975
953
  "mcx",
976
954
  5,
@@ -979,8 +957,6 @@ class C4XGate(SingletonControlledGate):
979
957
  label=label,
980
958
  ctrl_state=ctrl_state,
981
959
  base_gate=XGate(label=_base_label),
982
- duration=duration,
983
- unit=unit,
984
960
  )
985
961
 
986
962
  _singleton_lookup_key = stdlib_singleton_key(num_ctrl_qubits=4)
@@ -1014,7 +990,7 @@ class C4XGate(SingletonControlledGate):
1014
990
  }
1015
991
  """
1016
992
  # pylint: disable=cyclic-import
1017
- from qiskit.circuit.quantumcircuit import QuantumCircuit
993
+ from qiskit.circuit import QuantumCircuit, QuantumRegister
1018
994
  from .u1 import CU1Gate
1019
995
  from .h import HGate
1020
996
 
@@ -1105,8 +1081,6 @@ class MCXGate(ControlledGate):
1105
1081
  label: Optional[str] = None,
1106
1082
  ctrl_state: Optional[Union[str, int]] = None,
1107
1083
  *,
1108
- duration=None,
1109
- unit="dt",
1110
1084
  _base_label=None,
1111
1085
  ):
1112
1086
  """Create a new MCX instance.
@@ -1127,8 +1101,6 @@ class MCXGate(ControlledGate):
1127
1101
  label=label,
1128
1102
  ctrl_state=ctrl_state,
1129
1103
  _base_label=_base_label,
1130
- duration=duration,
1131
- unit=unit,
1132
1104
  )
1133
1105
  return gate
1134
1106
  return super().__new__(cls)
@@ -1139,8 +1111,6 @@ class MCXGate(ControlledGate):
1139
1111
  label: Optional[str] = None,
1140
1112
  ctrl_state: Optional[Union[str, int]] = None,
1141
1113
  *,
1142
- duration=None,
1143
- unit="dt",
1144
1114
  _name="mcx",
1145
1115
  _base_label=None,
1146
1116
  ):
@@ -1256,8 +1226,6 @@ class MCXGrayCode(MCXGate):
1256
1226
  label: Optional[str] = None,
1257
1227
  ctrl_state: Optional[Union[str, int]] = None,
1258
1228
  *,
1259
- duration=None,
1260
- unit="dt",
1261
1229
  _base_label=None,
1262
1230
  ):
1263
1231
  """Create a new MCXGrayCode instance"""
@@ -1270,15 +1238,11 @@ class MCXGrayCode(MCXGate):
1270
1238
  label=label,
1271
1239
  ctrl_state=ctrl_state,
1272
1240
  _base_label=_base_label,
1273
- duration=duration,
1274
- unit=unit,
1275
1241
  )
1276
1242
  # if __new__ does not return the same type as cls, init is not called
1277
1243
  gate.__init__(
1278
1244
  label=label,
1279
1245
  ctrl_state=ctrl_state,
1280
- duration=duration,
1281
- unit=unit,
1282
1246
  )
1283
1247
  return gate
1284
1248
  return super().__new__(cls)
@@ -1355,8 +1319,6 @@ class MCXRecursive(MCXGate):
1355
1319
  label: Optional[str] = None,
1356
1320
  ctrl_state: Optional[Union[str, int]] = None,
1357
1321
  *,
1358
- duration=None,
1359
- unit="dt",
1360
1322
  _base_label=None,
1361
1323
  ):
1362
1324
  super().__init__(
@@ -1364,8 +1326,6 @@ class MCXRecursive(MCXGate):
1364
1326
  label=label,
1365
1327
  ctrl_state=ctrl_state,
1366
1328
  _name="mcx_recursive",
1367
- duration=duration,
1368
- unit=unit,
1369
1329
  _base_label=None,
1370
1330
  )
1371
1331
 
@@ -1408,8 +1368,6 @@ class MCXVChain(MCXGate):
1408
1368
  label: Optional[str] = None,
1409
1369
  ctrl_state: Optional[Union[str, int]] = None,
1410
1370
  *,
1411
- duration=None,
1412
- unit="dt",
1413
1371
  _base_label=None,
1414
1372
  relative_phase: bool = False, # pylint: disable=unused-argument
1415
1373
  action_only: bool = False, # pylint: disable=unused-argument
@@ -1424,8 +1382,6 @@ class MCXVChain(MCXGate):
1424
1382
  label=label,
1425
1383
  ctrl_state=ctrl_state,
1426
1384
  _base_label=_base_label,
1427
- duration=duration,
1428
- unit=unit,
1429
1385
  )
1430
1386
 
1431
1387
  @deprecate_func(
@@ -1447,8 +1403,6 @@ class MCXVChain(MCXGate):
1447
1403
  label: Optional[str] = None,
1448
1404
  ctrl_state: Optional[Union[str, int]] = None,
1449
1405
  *,
1450
- duration=None,
1451
- unit="dt",
1452
1406
  _base_label=None,
1453
1407
  relative_phase: bool = False,
1454
1408
  action_only: bool = False,
@@ -1474,8 +1428,6 @@ class MCXVChain(MCXGate):
1474
1428
  ctrl_state=ctrl_state,
1475
1429
  _name="mcx_vchain",
1476
1430
  _base_label=_base_label,
1477
- duration=duration,
1478
- unit=unit,
1479
1431
  )
1480
1432
  self._dirty_ancillas = dirty_ancillas
1481
1433
  self._relative_phase = relative_phase
@@ -29,7 +29,7 @@ from qiskit.circuit.library.standard_gates.sx import SXdgGate, SXGate
29
29
  from qiskit.circuit.library.standard_gates.x import CXGate
30
30
  from qiskit.circuit.parameterexpression import ParameterValueType, ParameterExpression
31
31
  from qiskit.circuit.quantumcircuit import QuantumCircuit
32
- from qiskit.circuit.quantumregister import QuantumRegister
32
+ from qiskit.circuit import QuantumRegister
33
33
  from qiskit._accelerate.circuit import StandardGate
34
34
 
35
35
 
@@ -72,9 +72,6 @@ class XXMinusYYGate(Gate):
72
72
  theta: ParameterValueType,
73
73
  beta: ParameterValueType = 0,
74
74
  label: Optional[str] = "(XX-YY)",
75
- *,
76
- duration=None,
77
- unit="dt",
78
75
  ):
79
76
  """Create new XX-YY gate.
80
77
 
@@ -83,7 +80,7 @@ class XXMinusYYGate(Gate):
83
80
  beta: The phase angle.
84
81
  label: The label of the gate.
85
82
  """
86
- super().__init__("xx_minus_yy", 2, [theta, beta], label=label, duration=duration, unit=unit)
83
+ super().__init__("xx_minus_yy", 2, [theta, beta], label=label)
87
84
 
88
85
  def _define(self):
89
86
  """
@@ -22,7 +22,7 @@ from typing import Optional
22
22
  import numpy
23
23
 
24
24
  from qiskit.circuit.gate import Gate
25
- from qiskit.circuit.quantumregister import QuantumRegister
25
+ from qiskit.circuit import QuantumRegister
26
26
  from qiskit.circuit.parameterexpression import ParameterValueType, ParameterExpression
27
27
  from qiskit._accelerate.circuit import StandardGate
28
28
 
@@ -98,9 +98,6 @@ class XXPlusYYGate(Gate):
98
98
  theta: ParameterValueType,
99
99
  beta: ParameterValueType = 0,
100
100
  label: Optional[str] = "(XX+YY)",
101
- *,
102
- duration=None,
103
- unit="dt",
104
101
  ):
105
102
  """Create new XX+YY gate.
106
103
 
@@ -109,7 +106,7 @@ class XXPlusYYGate(Gate):
109
106
  beta: The phase angle.
110
107
  label: The label of the gate.
111
108
  """
112
- super().__init__("xx_plus_yy", 2, [theta, beta], label=label, duration=duration, unit=unit)
109
+ super().__init__("xx_plus_yy", 2, [theta, beta], label=label)
113
110
 
114
111
  def _define(self):
115
112
  """
@@ -17,7 +17,6 @@ from typing import Optional, Union
17
17
 
18
18
  # pylint: disable=cyclic-import
19
19
  from qiskit.circuit.singleton import SingletonGate, SingletonControlledGate, stdlib_singleton_key
20
- from qiskit.circuit.quantumregister import QuantumRegister
21
20
  from qiskit.circuit._utils import with_gate_array, with_controlled_gate_array
22
21
  from qiskit._accelerate.circuit import StandardGate
23
22
 
@@ -73,15 +72,15 @@ class YGate(SingletonGate):
73
72
 
74
73
  _standard_gate = StandardGate.YGate
75
74
 
76
- def __init__(self, label: Optional[str] = None, *, duration=None, unit="dt"):
75
+ def __init__(self, label: Optional[str] = None):
77
76
  """Create new Y gate."""
78
- super().__init__("y", 1, [], label=label, duration=duration, unit=unit)
77
+ super().__init__("y", 1, [], label=label)
79
78
 
80
79
  _singleton_lookup_key = stdlib_singleton_key()
81
80
 
82
81
  def _define(self):
83
82
  # pylint: disable=cyclic-import
84
- from qiskit.circuit.quantumcircuit import QuantumCircuit
83
+ from qiskit.circuit import QuantumCircuit, QuantumRegister
85
84
  from .u3 import U3Gate
86
85
 
87
86
  q = QuantumRegister(1, "q")
@@ -208,8 +207,6 @@ class CYGate(SingletonControlledGate):
208
207
  label: Optional[str] = None,
209
208
  ctrl_state: Optional[Union[str, int]] = None,
210
209
  *,
211
- duration=None,
212
- unit="dt",
213
210
  _base_label=None,
214
211
  ):
215
212
  """Create new CY gate."""
@@ -221,8 +218,6 @@ class CYGate(SingletonControlledGate):
221
218
  label=label,
222
219
  ctrl_state=ctrl_state,
223
220
  base_gate=YGate(label=_base_label),
224
- duration=duration,
225
- unit=unit,
226
221
  )
227
222
 
228
223
  _singleton_lookup_key = stdlib_singleton_key(num_ctrl_qubits=1)
@@ -232,7 +227,7 @@ class CYGate(SingletonControlledGate):
232
227
  gate cy a,b { sdg b; cx a,b; s b; }
233
228
  """
234
229
  # pylint: disable=cyclic-import
235
- from qiskit.circuit.quantumcircuit import QuantumCircuit
230
+ from qiskit.circuit import QuantumCircuit, QuantumRegister
236
231
  from .s import SGate, SdgGate
237
232
  from .x import CXGate
238
233
 
@@ -19,7 +19,6 @@ import numpy
19
19
 
20
20
  from qiskit.circuit._utils import with_gate_array, with_controlled_gate_array
21
21
  from qiskit.circuit.singleton import SingletonGate, SingletonControlledGate, stdlib_singleton_key
22
- from qiskit.circuit.quantumregister import QuantumRegister
23
22
  from qiskit._accelerate.circuit import StandardGate
24
23
 
25
24
  from .p import PhaseGate
@@ -76,16 +75,15 @@ class ZGate(SingletonGate):
76
75
 
77
76
  _standard_gate = StandardGate.ZGate
78
77
 
79
- def __init__(self, label: Optional[str] = None, *, duration=None, unit="dt"):
78
+ def __init__(self, label: Optional[str] = None):
80
79
  """Create new Z gate."""
81
- super().__init__("z", 1, [], label=label, duration=duration, unit=unit)
80
+ super().__init__("z", 1, [], label=label)
82
81
 
83
82
  _singleton_lookup_key = stdlib_singleton_key()
84
83
 
85
84
  def _define(self):
86
85
  # pylint: disable=cyclic-import
87
- from qiskit.circuit.quantumcircuit import QuantumCircuit
88
-
86
+ from qiskit.circuit import QuantumCircuit, QuantumRegister
89
87
  from .u1 import U1Gate
90
88
 
91
89
  q = QuantumRegister(1, "q")
@@ -191,8 +189,6 @@ class CZGate(SingletonControlledGate):
191
189
  label: Optional[str] = None,
192
190
  ctrl_state: Optional[Union[str, int]] = None,
193
191
  *,
194
- duration=None,
195
- unit="dt",
196
192
  _base_label=None,
197
193
  ):
198
194
  """Create new CZ gate."""
@@ -204,8 +200,6 @@ class CZGate(SingletonControlledGate):
204
200
  num_ctrl_qubits=1,
205
201
  ctrl_state=ctrl_state,
206
202
  base_gate=ZGate(label=_base_label),
207
- duration=duration,
208
- unit=unit,
209
203
  )
210
204
 
211
205
  _singleton_lookup_key = stdlib_singleton_key(num_ctrl_qubits=1)
@@ -215,7 +209,7 @@ class CZGate(SingletonControlledGate):
215
209
  gate cz a,b { h b; cx a,b; h b; }
216
210
  """
217
211
  # pylint: disable=cyclic-import
218
- from qiskit.circuit.quantumcircuit import QuantumCircuit
212
+ from qiskit.circuit import QuantumCircuit, QuantumRegister
219
213
 
220
214
  from .h import HGate
221
215
  from .x import CXGate
@@ -293,8 +287,6 @@ class CCZGate(SingletonControlledGate):
293
287
  label: Optional[str] = None,
294
288
  ctrl_state: Optional[Union[str, int]] = None,
295
289
  *,
296
- duration=None,
297
- unit="dt",
298
290
  _base_label=None,
299
291
  ):
300
292
  """Create new CCZ gate."""
@@ -306,8 +298,6 @@ class CCZGate(SingletonControlledGate):
306
298
  num_ctrl_qubits=2,
307
299
  ctrl_state=ctrl_state,
308
300
  base_gate=ZGate(label=_base_label),
309
- duration=duration,
310
- unit=unit,
311
301
  )
312
302
 
313
303
  _singleton_lookup_key = stdlib_singleton_key(num_ctrl_qubits=2)
@@ -317,7 +307,7 @@ class CCZGate(SingletonControlledGate):
317
307
  gate ccz a,b,c { h c; ccx a,b,c; h c; }
318
308
  """
319
309
  # pylint: disable=cyclic-import
320
- from qiskit.circuit.quantumcircuit import QuantumCircuit
310
+ from qiskit.circuit import QuantumCircuit, QuantumRegister
321
311
 
322
312
  from .h import HGate
323
313
  from .x import CCXGate
qiskit/circuit/measure.py CHANGED
@@ -16,17 +16,26 @@ Quantum measurement in the computational basis.
16
16
 
17
17
  from qiskit.circuit.singleton import SingletonInstruction, stdlib_singleton_key
18
18
  from qiskit.circuit.exceptions import CircuitError
19
+ from qiskit._accelerate.circuit import StandardInstructionType
19
20
 
20
21
 
21
22
  class Measure(SingletonInstruction):
22
23
  """Quantum measurement in the computational basis."""
23
24
 
24
- def __init__(self, label=None, *, duration=None, unit="dt"):
25
+ _standard_instruction_type = StandardInstructionType.Measure
26
+
27
+ def __init__(self, label=None):
25
28
  """
26
29
  Args:
27
30
  label: optional string label for this instruction.
28
31
  """
29
- super().__init__("measure", 1, 1, [], label=label, duration=duration, unit=unit)
32
+ super().__init__("measure", 1, 1, [], label=label)
33
+
34
+ def __init_subclass__(cls, **kwargs):
35
+ super().__init_subclass__(**kwargs)
36
+ # Subclasses of Measure are not "standard", so we set this to None to
37
+ # prevent the Rust code from treating them as such.
38
+ cls._standard_instruction_type = None
30
39
 
31
40
  _singleton_lookup_key = stdlib_singleton_key()
32
41
 
@@ -26,6 +26,8 @@ import numpy
26
26
  import symengine
27
27
 
28
28
  from qiskit.circuit.exceptions import CircuitError
29
+ from qiskit.exceptions import QiskitError
30
+ from qiskit.utils.optionals import HAS_SYMPY
29
31
 
30
32
  # This type is redefined at the bottom to insert the full reference to "ParameterExpression", so it
31
33
  # can safely be used by runtime type-checkers like Sphinx. Mypy does not need this because it
@@ -117,6 +119,8 @@ class ParameterExpression:
117
119
 
118
120
  Not intended to be called directly, but to be instantiated via operations
119
121
  on other :class:`Parameter` or :class:`ParameterExpression` objects.
122
+ The constructor of this object is **not** a public interface and should not
123
+ ever be used directly.
120
124
 
121
125
  Args:
122
126
  symbol_map (Dict[Parameter, [ParameterExpression, float, or int]]):
@@ -528,6 +532,9 @@ class ParameterExpression:
528
532
  def __str__(self):
529
533
  from sympy import sympify, sstr
530
534
 
535
+ if not isinstance(self._symbol_expr, symengine.Basic):
536
+ raise QiskitError("Invalid ParameterExpression")
537
+
531
538
  return sstr(sympify(self._symbol_expr), full_prec=False)
532
539
 
533
540
  def __complex__(self):
@@ -608,6 +615,9 @@ class ParameterExpression:
608
615
  return False
609
616
  from sympy import sympify
610
617
 
618
+ if not isinstance(self._symbol_expr, symengine.Basic):
619
+ raise QiskitError("Invalid ParameterExpression")
620
+
611
621
  return sympify(self._symbol_expr).equals(sympify(other._symbol_expr))
612
622
  elif isinstance(other, numbers.Number):
613
623
  return len(self.parameters) == 0 and complex(self._symbol_expr) == other
@@ -672,6 +682,7 @@ class ParameterExpression:
672
682
  return out.real if out.imag == 0.0 else out
673
683
  return float(real_expr)
674
684
 
685
+ @HAS_SYMPY.require_in_call
675
686
  def sympify(self):
676
687
  """Return symbolic expression as a raw Sympy or Symengine object.
677
688