qiskit 1.3.0__cp39-abi3-win32.whl → 1.3.0b1__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.
Files changed (361) hide show
  1. qiskit/VERSION.txt +1 -1
  2. qiskit/__init__.py +1 -20
  3. qiskit/_accelerate.pyd +0 -0
  4. qiskit/assembler/assemble_schedules.py +0 -2
  5. qiskit/circuit/__init__.py +1 -44
  6. qiskit/circuit/_standard_gates_commutations.py +0 -585
  7. qiskit/circuit/barrier.py +0 -2
  8. qiskit/circuit/controlflow/builder.py +3 -3
  9. qiskit/circuit/controlflow/if_else.py +5 -13
  10. qiskit/circuit/controlflow/while_loop.py +2 -10
  11. qiskit/circuit/delay.py +3 -20
  12. qiskit/circuit/equivalence.py +214 -13
  13. qiskit/circuit/gate.py +1 -3
  14. qiskit/circuit/instruction.py +11 -32
  15. qiskit/circuit/instructionset.py +0 -2
  16. qiskit/circuit/library/__init__.py +14 -110
  17. qiskit/circuit/library/arithmetic/__init__.py +2 -9
  18. qiskit/circuit/library/arithmetic/adders/__init__.py +0 -1
  19. qiskit/circuit/library/arithmetic/adders/adder.py +2 -154
  20. qiskit/circuit/library/arithmetic/adders/cdkm_ripple_carry_adder.py +56 -20
  21. qiskit/circuit/library/arithmetic/adders/draper_qft_adder.py +1 -14
  22. qiskit/circuit/library/arithmetic/adders/vbe_ripple_carry_adder.py +91 -21
  23. qiskit/circuit/library/arithmetic/linear_pauli_rotations.py +1 -1
  24. qiskit/circuit/library/arithmetic/multipliers/__init__.py +0 -1
  25. qiskit/circuit/library/arithmetic/multipliers/hrs_cumulative_multiplier.py +1 -8
  26. qiskit/circuit/library/arithmetic/multipliers/multiplier.py +3 -94
  27. qiskit/circuit/library/arithmetic/multipliers/rg_qft_multiplier.py +1 -8
  28. qiskit/circuit/library/arithmetic/weighted_adder.py +1 -1
  29. qiskit/circuit/library/basis_change/qft.py +38 -20
  30. qiskit/circuit/library/blueprintcircuit.py +0 -64
  31. qiskit/circuit/library/boolean_logic/__init__.py +4 -4
  32. qiskit/circuit/library/boolean_logic/inner_product.py +4 -81
  33. qiskit/circuit/library/boolean_logic/quantum_and.py +4 -107
  34. qiskit/circuit/library/boolean_logic/quantum_or.py +3 -107
  35. qiskit/circuit/library/boolean_logic/quantum_xor.py +3 -97
  36. qiskit/circuit/library/data_preparation/__init__.py +3 -6
  37. qiskit/circuit/library/data_preparation/pauli_feature_map.py +29 -342
  38. qiskit/circuit/library/data_preparation/{_z_feature_map.py → z_feature_map.py} +34 -45
  39. qiskit/circuit/library/data_preparation/zz_feature_map.py +118 -0
  40. qiskit/circuit/library/fourier_checking.py +11 -72
  41. qiskit/circuit/library/generalized_gates/__init__.py +1 -1
  42. qiskit/circuit/library/generalized_gates/diagonal.py +51 -45
  43. qiskit/circuit/library/generalized_gates/gms.py +14 -67
  44. qiskit/circuit/library/generalized_gates/gr.py +4 -4
  45. qiskit/circuit/library/generalized_gates/isometry.py +2 -2
  46. qiskit/circuit/library/generalized_gates/linear_function.py +6 -12
  47. qiskit/circuit/library/generalized_gates/mcmt.py +107 -167
  48. qiskit/circuit/library/generalized_gates/permutation.py +6 -8
  49. qiskit/circuit/library/generalized_gates/rv.py +9 -8
  50. qiskit/circuit/library/graph_state.py +10 -93
  51. qiskit/circuit/library/grover_operator.py +2 -270
  52. qiskit/circuit/library/hidden_linear_function.py +20 -83
  53. qiskit/circuit/library/iqp.py +20 -99
  54. qiskit/circuit/library/n_local/__init__.py +7 -19
  55. qiskit/circuit/library/n_local/efficient_su2.py +5 -118
  56. qiskit/circuit/library/n_local/evolved_operator_ansatz.py +0 -259
  57. qiskit/circuit/library/n_local/excitation_preserving.py +6 -130
  58. qiskit/circuit/library/n_local/n_local.py +5 -406
  59. qiskit/circuit/library/n_local/pauli_two_design.py +4 -106
  60. qiskit/circuit/library/n_local/qaoa_ansatz.py +1 -80
  61. qiskit/circuit/library/n_local/real_amplitudes.py +7 -127
  62. qiskit/circuit/library/n_local/two_local.py +7 -14
  63. qiskit/circuit/library/overlap.py +26 -91
  64. qiskit/circuit/library/pauli_evolution.py +15 -17
  65. qiskit/circuit/library/phase_estimation.py +4 -80
  66. qiskit/circuit/library/quantum_volume.py +20 -72
  67. qiskit/circuit/library/standard_gates/__init__.py +1 -20
  68. qiskit/circuit/library/standard_gates/dcx.py +1 -2
  69. qiskit/circuit/library/standard_gates/ecr.py +2 -2
  70. qiskit/circuit/library/standard_gates/h.py +3 -4
  71. qiskit/circuit/library/standard_gates/i.py +1 -2
  72. qiskit/circuit/library/standard_gates/iswap.py +2 -2
  73. qiskit/circuit/library/standard_gates/p.py +12 -20
  74. qiskit/circuit/library/standard_gates/r.py +1 -1
  75. qiskit/circuit/library/standard_gates/rx.py +3 -4
  76. qiskit/circuit/library/standard_gates/rxx.py +2 -2
  77. qiskit/circuit/library/standard_gates/ry.py +3 -4
  78. qiskit/circuit/library/standard_gates/ryy.py +2 -2
  79. qiskit/circuit/library/standard_gates/rz.py +12 -13
  80. qiskit/circuit/library/standard_gates/rzx.py +6 -6
  81. qiskit/circuit/library/standard_gates/rzz.py +1 -1
  82. qiskit/circuit/library/standard_gates/s.py +4 -4
  83. qiskit/circuit/library/standard_gates/swap.py +3 -3
  84. qiskit/circuit/library/standard_gates/sx.py +3 -4
  85. qiskit/circuit/library/standard_gates/t.py +2 -2
  86. qiskit/circuit/library/standard_gates/u.py +3 -11
  87. qiskit/circuit/library/standard_gates/u1.py +15 -65
  88. qiskit/circuit/library/standard_gates/u2.py +1 -4
  89. qiskit/circuit/library/standard_gates/u3.py +3 -31
  90. qiskit/circuit/library/standard_gates/x.py +5 -7
  91. qiskit/circuit/library/standard_gates/xx_minus_yy.py +2 -2
  92. qiskit/circuit/library/standard_gates/xx_plus_yy.py +2 -2
  93. qiskit/circuit/library/standard_gates/y.py +3 -4
  94. qiskit/circuit/library/standard_gates/z.py +3 -3
  95. qiskit/circuit/library/templates/clifford/clifford_2_1.py +8 -9
  96. qiskit/circuit/library/templates/clifford/clifford_2_2.py +9 -10
  97. qiskit/circuit/library/templates/clifford/clifford_2_3.py +7 -9
  98. qiskit/circuit/library/templates/clifford/clifford_2_4.py +8 -9
  99. qiskit/circuit/library/templates/clifford/clifford_3_1.py +8 -9
  100. qiskit/circuit/library/templates/clifford/clifford_4_1.py +9 -10
  101. qiskit/circuit/library/templates/clifford/clifford_4_2.py +9 -10
  102. qiskit/circuit/library/templates/clifford/clifford_4_3.py +9 -10
  103. qiskit/circuit/library/templates/clifford/clifford_4_4.py +9 -10
  104. qiskit/circuit/library/templates/clifford/clifford_5_1.py +9 -10
  105. qiskit/circuit/library/templates/clifford/clifford_6_1.py +9 -10
  106. qiskit/circuit/library/templates/clifford/clifford_6_2.py +9 -10
  107. qiskit/circuit/library/templates/clifford/clifford_6_3.py +9 -10
  108. qiskit/circuit/library/templates/clifford/clifford_6_4.py +8 -9
  109. qiskit/circuit/library/templates/clifford/clifford_6_5.py +9 -10
  110. qiskit/circuit/library/templates/clifford/clifford_8_1.py +9 -10
  111. qiskit/circuit/library/templates/clifford/clifford_8_2.py +9 -10
  112. qiskit/circuit/library/templates/clifford/clifford_8_3.py +9 -10
  113. qiskit/circuit/library/templates/nct/template_nct_2a_1.py +7 -9
  114. qiskit/circuit/library/templates/nct/template_nct_2a_2.py +8 -10
  115. qiskit/circuit/library/templates/nct/template_nct_2a_3.py +10 -12
  116. qiskit/circuit/library/templates/nct/template_nct_4a_1.py +14 -16
  117. qiskit/circuit/library/templates/nct/template_nct_4a_2.py +12 -14
  118. qiskit/circuit/library/templates/nct/template_nct_4a_3.py +10 -12
  119. qiskit/circuit/library/templates/nct/template_nct_4b_1.py +12 -14
  120. qiskit/circuit/library/templates/nct/template_nct_4b_2.py +10 -12
  121. qiskit/circuit/library/templates/nct/template_nct_5a_1.py +10 -12
  122. qiskit/circuit/library/templates/nct/template_nct_5a_2.py +10 -12
  123. qiskit/circuit/library/templates/nct/template_nct_5a_3.py +10 -12
  124. qiskit/circuit/library/templates/nct/template_nct_5a_4.py +9 -11
  125. qiskit/circuit/library/templates/nct/template_nct_6a_1.py +9 -11
  126. qiskit/circuit/library/templates/nct/template_nct_6a_2.py +10 -12
  127. qiskit/circuit/library/templates/nct/template_nct_6a_3.py +10 -12
  128. qiskit/circuit/library/templates/nct/template_nct_6a_4.py +10 -12
  129. qiskit/circuit/library/templates/nct/template_nct_6b_1.py +10 -12
  130. qiskit/circuit/library/templates/nct/template_nct_6b_2.py +10 -12
  131. qiskit/circuit/library/templates/nct/template_nct_6c_1.py +10 -12
  132. qiskit/circuit/library/templates/nct/template_nct_7a_1.py +11 -13
  133. qiskit/circuit/library/templates/nct/template_nct_7b_1.py +11 -13
  134. qiskit/circuit/library/templates/nct/template_nct_7c_1.py +11 -13
  135. qiskit/circuit/library/templates/nct/template_nct_7d_1.py +11 -13
  136. qiskit/circuit/library/templates/nct/template_nct_7e_1.py +11 -13
  137. qiskit/circuit/library/templates/nct/template_nct_9a_1.py +11 -13
  138. qiskit/circuit/library/templates/nct/template_nct_9c_1.py +9 -11
  139. qiskit/circuit/library/templates/nct/template_nct_9c_10.py +10 -12
  140. qiskit/circuit/library/templates/nct/template_nct_9c_11.py +10 -12
  141. qiskit/circuit/library/templates/nct/template_nct_9c_12.py +10 -12
  142. qiskit/circuit/library/templates/nct/template_nct_9c_2.py +10 -12
  143. qiskit/circuit/library/templates/nct/template_nct_9c_3.py +10 -12
  144. qiskit/circuit/library/templates/nct/template_nct_9c_4.py +10 -12
  145. qiskit/circuit/library/templates/nct/template_nct_9c_5.py +10 -12
  146. qiskit/circuit/library/templates/nct/template_nct_9c_6.py +10 -12
  147. qiskit/circuit/library/templates/nct/template_nct_9c_7.py +10 -12
  148. qiskit/circuit/library/templates/nct/template_nct_9c_8.py +10 -12
  149. qiskit/circuit/library/templates/nct/template_nct_9c_9.py +10 -12
  150. qiskit/circuit/library/templates/nct/template_nct_9d_1.py +9 -11
  151. qiskit/circuit/library/templates/nct/template_nct_9d_10.py +10 -12
  152. qiskit/circuit/library/templates/nct/template_nct_9d_2.py +10 -12
  153. qiskit/circuit/library/templates/nct/template_nct_9d_3.py +10 -12
  154. qiskit/circuit/library/templates/nct/template_nct_9d_4.py +10 -12
  155. qiskit/circuit/library/templates/nct/template_nct_9d_5.py +10 -12
  156. qiskit/circuit/library/templates/nct/template_nct_9d_6.py +10 -12
  157. qiskit/circuit/library/templates/nct/template_nct_9d_7.py +10 -12
  158. qiskit/circuit/library/templates/nct/template_nct_9d_8.py +10 -12
  159. qiskit/circuit/library/templates/nct/template_nct_9d_9.py +10 -12
  160. qiskit/circuit/library/templates/rzx/rzx_cy.py +10 -11
  161. qiskit/circuit/library/templates/rzx/rzx_xz.py +15 -16
  162. qiskit/circuit/library/templates/rzx/rzx_yz.py +10 -12
  163. qiskit/circuit/library/templates/rzx/rzx_zz1.py +20 -22
  164. qiskit/circuit/library/templates/rzx/rzx_zz2.py +15 -16
  165. qiskit/circuit/library/templates/rzx/rzx_zz3.py +15 -17
  166. qiskit/circuit/parameter.py +0 -4
  167. qiskit/circuit/parameterexpression.py +34 -167
  168. qiskit/circuit/quantumcircuit.py +126 -162
  169. qiskit/circuit/singleton.py +0 -2
  170. qiskit/circuit/store.py +0 -2
  171. qiskit/compiler/assembler.py +4 -17
  172. qiskit/compiler/scheduler.py +0 -2
  173. qiskit/compiler/sequencer.py +0 -2
  174. qiskit/compiler/transpiler.py +26 -81
  175. qiskit/converters/circuit_to_dag.py +2 -2
  176. qiskit/converters/circuit_to_dagdependency.py +1 -1
  177. qiskit/converters/circuit_to_dagdependency_v2.py +1 -1
  178. qiskit/converters/circuit_to_instruction.py +1 -1
  179. qiskit/converters/dag_to_circuit.py +5 -7
  180. qiskit/converters/dag_to_dagdependency.py +1 -1
  181. qiskit/converters/dag_to_dagdependency_v2.py +1 -1
  182. qiskit/converters/dagdependency_to_circuit.py +1 -5
  183. qiskit/converters/dagdependency_to_dag.py +1 -6
  184. qiskit/dagcircuit/collect_blocks.py +3 -3
  185. qiskit/dagcircuit/dagdependency.py +5 -18
  186. qiskit/dagcircuit/dagdependency_v2.py +1 -1
  187. qiskit/dagcircuit/dagnode.py +2 -2
  188. qiskit/passmanager/__init__.py +2 -2
  189. qiskit/primitives/backend_estimator.py +2 -5
  190. qiskit/primitives/backend_sampler_v2.py +18 -61
  191. qiskit/primitives/base/base_estimator.py +2 -2
  192. qiskit/primitives/containers/data_bin.py +1 -9
  193. qiskit/primitives/statevector_sampler.py +1 -1
  194. qiskit/primitives/utils.py +1 -1
  195. qiskit/providers/__init__.py +3 -3
  196. qiskit/providers/backend.py +1 -12
  197. qiskit/providers/backend_compat.py +3 -23
  198. qiskit/providers/basic_provider/basic_simulator.py +2 -12
  199. qiskit/providers/fake_provider/fake_pulse_backend.py +1 -6
  200. qiskit/providers/fake_provider/generic_backend_v2.py +30 -46
  201. qiskit/providers/models/pulsedefaults.py +0 -2
  202. qiskit/pulse/builder.py +18 -59
  203. qiskit/pulse/calibration_entries.py +1 -4
  204. qiskit/pulse/channels.py +0 -2
  205. qiskit/pulse/exceptions.py +0 -2
  206. qiskit/pulse/instruction_schedule_map.py +6 -21
  207. qiskit/pulse/instructions/acquire.py +0 -2
  208. qiskit/pulse/instructions/delay.py +0 -2
  209. qiskit/pulse/instructions/directives.py +0 -8
  210. qiskit/pulse/instructions/frequency.py +0 -3
  211. qiskit/pulse/instructions/instruction.py +0 -2
  212. qiskit/pulse/instructions/phase.py +0 -3
  213. qiskit/pulse/instructions/play.py +0 -2
  214. qiskit/pulse/instructions/reference.py +0 -2
  215. qiskit/pulse/instructions/snapshot.py +0 -2
  216. qiskit/pulse/library/pulse.py +0 -2
  217. qiskit/pulse/library/symbolic_pulses.py +0 -28
  218. qiskit/pulse/library/waveform.py +0 -2
  219. qiskit/pulse/macros.py +1 -1
  220. qiskit/pulse/schedule.py +13 -12
  221. qiskit/pulse/transforms/alignments.py +3 -5
  222. qiskit/pulse/transforms/dag.py +0 -7
  223. qiskit/qasm2/export.py +3 -5
  224. qiskit/qasm2/parse.py +2 -46
  225. qiskit/qasm3/__init__.py +0 -1
  226. qiskit/qasm3/ast.py +15 -123
  227. qiskit/qasm3/exporter.py +77 -103
  228. qiskit/qobj/converters/pulse_instruction.py +4 -6
  229. qiskit/qpy/__init__.py +0 -181
  230. qiskit/qpy/binary_io/circuits.py +5 -20
  231. qiskit/qpy/binary_io/schedules.py +4 -3
  232. qiskit/qpy/binary_io/value.py +13 -310
  233. qiskit/qpy/common.py +2 -46
  234. qiskit/qpy/formats.py +0 -7
  235. qiskit/qpy/interface.py +4 -40
  236. qiskit/quantum_info/__init__.py +0 -4
  237. qiskit/quantum_info/operators/channel/transformations.py +21 -28
  238. qiskit/quantum_info/operators/dihedral/dihedral.py +1 -1
  239. qiskit/quantum_info/operators/operator.py +8 -54
  240. qiskit/quantum_info/operators/symplectic/base_pauli.py +19 -11
  241. qiskit/quantum_info/operators/symplectic/clifford.py +1 -1
  242. qiskit/quantum_info/operators/symplectic/clifford_circuits.py +1 -1
  243. qiskit/quantum_info/operators/symplectic/pauli.py +0 -2
  244. qiskit/quantum_info/operators/symplectic/pauli_list.py +4 -4
  245. qiskit/quantum_info/operators/symplectic/sparse_pauli_op.py +2 -23
  246. qiskit/quantum_info/states/densitymatrix.py +5 -5
  247. qiskit/quantum_info/states/stabilizerstate.py +1 -1
  248. qiskit/quantum_info/states/statevector.py +6 -6
  249. qiskit/result/mitigation/base_readout_mitigator.py +1 -1
  250. qiskit/result/mitigation/correlated_readout_mitigator.py +1 -9
  251. qiskit/result/mitigation/local_readout_mitigator.py +1 -9
  252. qiskit/result/mitigation/utils.py +0 -57
  253. qiskit/scheduler/config.py +0 -2
  254. qiskit/scheduler/methods/basic.py +0 -3
  255. qiskit/scheduler/schedule_circuit.py +0 -2
  256. qiskit/scheduler/sequence.py +0 -2
  257. qiskit/synthesis/__init__.py +0 -25
  258. qiskit/synthesis/clifford/clifford_decompose_bm.py +2 -1
  259. qiskit/synthesis/clifford/clifford_decompose_greedy.py +2 -3
  260. qiskit/synthesis/clifford/clifford_decompose_layers.py +1 -2
  261. qiskit/synthesis/evolution/__init__.py +0 -1
  262. qiskit/synthesis/evolution/lie_trotter.py +42 -16
  263. qiskit/synthesis/evolution/product_formula.py +238 -165
  264. qiskit/synthesis/evolution/qdrift.py +29 -36
  265. qiskit/synthesis/evolution/suzuki_trotter.py +27 -87
  266. qiskit/synthesis/multi_controlled/__init__.py +0 -1
  267. qiskit/synthesis/qft/qft_decompose_full.py +1 -19
  268. qiskit/synthesis/qft/qft_decompose_lnn.py +1 -2
  269. qiskit/synthesis/stabilizer/stabilizer_decompose.py +1 -2
  270. qiskit/synthesis/two_qubit/two_qubit_decompose.py +63 -4
  271. qiskit/synthesis/two_qubit/weyl.py +97 -0
  272. qiskit/synthesis/unitary/qsd.py +5 -5
  273. qiskit/transpiler/__init__.py +14 -21
  274. qiskit/transpiler/basepasses.py +1 -1
  275. qiskit/transpiler/passes/__init__.py +0 -2
  276. qiskit/transpiler/passes/basis/basis_translator.py +565 -9
  277. qiskit/transpiler/passes/basis/decompose.py +12 -45
  278. qiskit/transpiler/passes/basis/unroll_3q_or_more.py +1 -1
  279. qiskit/transpiler/passes/basis/unroll_custom_definitions.py +1 -1
  280. qiskit/transpiler/passes/calibration/pulse_gate.py +2 -4
  281. qiskit/transpiler/passes/calibration/rx_builder.py +7 -11
  282. qiskit/transpiler/passes/calibration/rzx_builder.py +30 -46
  283. qiskit/transpiler/passes/layout/disjoint_utils.py +13 -15
  284. qiskit/transpiler/passes/layout/sabre_layout.py +2 -7
  285. qiskit/transpiler/passes/layout/sabre_pre_layout.py +0 -5
  286. qiskit/transpiler/passes/optimization/__init__.py +0 -1
  287. qiskit/transpiler/passes/optimization/collect_cliffords.py +3 -19
  288. qiskit/transpiler/passes/optimization/collect_linear_functions.py +1 -1
  289. qiskit/transpiler/passes/optimization/collect_multiqubit_blocks.py +2 -2
  290. qiskit/transpiler/passes/optimization/commutative_inverse_cancellation.py +1 -1
  291. qiskit/transpiler/passes/optimization/consolidate_blocks.py +131 -48
  292. qiskit/transpiler/passes/optimization/echo_rzx_weyl_decomposition.py +2 -4
  293. qiskit/transpiler/passes/optimization/elide_permutations.py +32 -9
  294. qiskit/transpiler/passes/optimization/inverse_cancellation.py +0 -2
  295. qiskit/transpiler/passes/optimization/optimize_1q_decomposition.py +11 -5
  296. qiskit/transpiler/passes/optimization/optimize_1q_gates.py +1 -1
  297. qiskit/transpiler/passes/optimization/optimize_swap_before_measure.py +1 -1
  298. qiskit/transpiler/passes/optimization/template_matching/backward_match.py +5 -5
  299. qiskit/transpiler/passes/optimization/template_matching/forward_match.py +4 -4
  300. qiskit/transpiler/passes/optimization/template_matching/template_substitution.py +2 -2
  301. qiskit/transpiler/passes/routing/commuting_2q_gate_routing/commuting_2q_gate_router.py +1 -1
  302. qiskit/transpiler/passes/routing/commuting_2q_gate_routing/swap_strategy.py +1 -1
  303. qiskit/transpiler/passes/routing/sabre_swap.py +3 -7
  304. qiskit/transpiler/passes/routing/star_prerouting.py +2 -2
  305. qiskit/transpiler/passes/scheduling/alap.py +1 -1
  306. qiskit/transpiler/passes/scheduling/alignments/align_measures.py +2 -2
  307. qiskit/transpiler/passes/scheduling/alignments/check_durations.py +1 -1
  308. qiskit/transpiler/passes/scheduling/alignments/pulse_gate_validation.py +0 -2
  309. qiskit/transpiler/passes/scheduling/alignments/reschedule.py +2 -2
  310. qiskit/transpiler/passes/scheduling/asap.py +1 -1
  311. qiskit/transpiler/passes/scheduling/base_scheduler.py +12 -14
  312. qiskit/transpiler/passes/scheduling/dynamical_decoupling.py +4 -9
  313. qiskit/transpiler/passes/scheduling/padding/base_padding.py +1 -1
  314. qiskit/transpiler/passes/scheduling/padding/dynamical_decoupling.py +5 -16
  315. qiskit/transpiler/passes/scheduling/padding/pad_delay.py +1 -4
  316. qiskit/transpiler/passes/scheduling/scheduling/base_scheduler.py +2 -6
  317. qiskit/transpiler/passes/scheduling/time_unit_conversion.py +4 -9
  318. qiskit/transpiler/passes/synthesis/high_level_synthesis.py +99 -262
  319. qiskit/transpiler/passes/synthesis/hls_plugins.py +7 -638
  320. qiskit/transpiler/passes/synthesis/qubit_tracker.py +132 -0
  321. qiskit/transpiler/passes/synthesis/solovay_kitaev_synthesis.py +3 -3
  322. qiskit/transpiler/passes/synthesis/unitary_synthesis.py +34 -55
  323. qiskit/transpiler/passes/utils/barrier_before_final_measurements.py +56 -2
  324. qiskit/transpiler/passes/utils/convert_conditions_to_if_ops.py +0 -5
  325. qiskit/transpiler/passes/utils/gate_direction.py +275 -12
  326. qiskit/transpiler/passes/utils/gates_basis.py +30 -7
  327. qiskit/transpiler/passes/utils/merge_adjacent_barriers.py +1 -2
  328. qiskit/transpiler/passmanager_config.py +4 -22
  329. qiskit/transpiler/preset_passmanagers/builtin_plugins.py +14 -40
  330. qiskit/transpiler/preset_passmanagers/common.py +3 -5
  331. qiskit/transpiler/preset_passmanagers/generate_preset_pass_manager.py +42 -125
  332. qiskit/transpiler/preset_passmanagers/plugin.py +1 -1
  333. qiskit/transpiler/target.py +16 -74
  334. qiskit/visualization/circuit/_utils.py +2 -2
  335. qiskit/visualization/circuit/circuit_visualization.py +2 -3
  336. qiskit/visualization/circuit/matplotlib.py +1 -1
  337. qiskit/visualization/dag_visualization.py +1 -1
  338. qiskit/visualization/pass_manager_visualization.py +14 -3
  339. qiskit/visualization/pulse_v2/interface.py +1 -3
  340. qiskit/visualization/timeline/core.py +2 -25
  341. qiskit/visualization/timeline/interface.py +0 -12
  342. {qiskit-1.3.0.dist-info → qiskit-1.3.0b1.dist-info}/METADATA +19 -20
  343. {qiskit-1.3.0.dist-info → qiskit-1.3.0b1.dist-info}/RECORD +347 -358
  344. {qiskit-1.3.0.dist-info → qiskit-1.3.0b1.dist-info}/WHEEL +1 -1
  345. {qiskit-1.3.0.dist-info → qiskit-1.3.0b1.dist-info}/entry_points.txt +0 -19
  346. qiskit/circuit/library/data_preparation/_zz_feature_map.py +0 -150
  347. qiskit/circuit/twirling.py +0 -145
  348. qiskit/synthesis/arithmetic/__init__.py +0 -16
  349. qiskit/synthesis/arithmetic/adders/__init__.py +0 -17
  350. qiskit/synthesis/arithmetic/adders/cdkm_ripple_carry_adder.py +0 -154
  351. qiskit/synthesis/arithmetic/adders/draper_qft_adder.py +0 -103
  352. qiskit/synthesis/arithmetic/adders/vbe_ripple_carry_adder.py +0 -161
  353. qiskit/synthesis/arithmetic/multipliers/__init__.py +0 -16
  354. qiskit/synthesis/arithmetic/multipliers/hrs_cumulative_multiplier.py +0 -102
  355. qiskit/synthesis/arithmetic/multipliers/rg_qft_multiplier.py +0 -99
  356. qiskit/synthesis/evolution/pauli_network.py +0 -80
  357. qiskit/synthesis/multi_controlled/mcmt_vchain.py +0 -52
  358. qiskit/transpiler/passes/optimization/remove_identity_equiv.py +0 -69
  359. qiskit/utils/deprecate_pulse.py +0 -119
  360. {qiskit-1.3.0.dist-info → qiskit-1.3.0b1.dist-info}/LICENSE.txt +0 -0
  361. {qiskit-1.3.0.dist-info → qiskit-1.3.0b1.dist-info}/top_level.txt +0 -0
@@ -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
  --------
@@ -307,7 +307,7 @@ Custom Basis Gates
307
307
 
308
308
  def _define(self):
309
309
  qc = QuantumCircuit(1)
310
- qc.ry(np.pi / 2, 0)
310
+ q.ry(np.pi / 2, 0)
311
311
  self.definition = qc
312
312
 
313
313
  The key thing to ensure is that for any custom gates in your Backend's basis set
@@ -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
@@ -24,7 +24,6 @@ from qiskit.providers.provider import Provider
24
24
  from qiskit.providers.models.backendstatus import BackendStatus
25
25
  from qiskit.circuit.gate import Instruction
26
26
  from qiskit.utils import deprecate_func
27
- from qiskit.utils.deprecate_pulse import deprecate_pulse_dependency
28
27
 
29
28
 
30
29
  class Backend:
@@ -486,16 +485,10 @@ class BackendV2(Backend, ABC):
486
485
  raise NotImplementedError
487
486
 
488
487
  @property
489
- @deprecate_pulse_dependency(is_property=True)
490
488
  def instruction_schedule_map(self):
491
489
  """Return the :class:`~qiskit.pulse.InstructionScheduleMap` for the
492
490
  instructions defined in this backend's target."""
493
- return self._instruction_schedule_map
494
-
495
- @property
496
- def _instruction_schedule_map(self):
497
- """An alternative private path to be used internally to avoid pulse deprecation warnings."""
498
- return self.target._get_instruction_schedule_map()
491
+ return self.target.instruction_schedule_map()
499
492
 
500
493
  def qubit_properties(
501
494
  self, qubit: Union[int, List[int]]
@@ -531,7 +524,6 @@ class BackendV2(Backend, ABC):
531
524
  return self.target.qubit_properties[qubit]
532
525
  return [self.target.qubit_properties[q] for q in qubit]
533
526
 
534
- @deprecate_pulse_dependency
535
527
  def drive_channel(self, qubit: int):
536
528
  """Return the drive channel for the given qubit.
537
529
 
@@ -547,7 +539,6 @@ class BackendV2(Backend, ABC):
547
539
  """
548
540
  raise NotImplementedError
549
541
 
550
- @deprecate_pulse_dependency
551
542
  def measure_channel(self, qubit: int):
552
543
  """Return the measure stimulus channel for the given qubit.
553
544
 
@@ -563,7 +554,6 @@ class BackendV2(Backend, ABC):
563
554
  """
564
555
  raise NotImplementedError
565
556
 
566
- @deprecate_pulse_dependency
567
557
  def acquire_channel(self, qubit: int):
568
558
  """Return the acquisition channel for the given qubit.
569
559
 
@@ -579,7 +569,6 @@ class BackendV2(Backend, ABC):
579
569
  """
580
570
  raise NotImplementedError
581
571
 
582
- @deprecate_pulse_dependency
583
572
  def control_channel(self, qubits: Iterable[int]):
584
573
  """Return the secondary drive channel for the given qubit
585
574
 
@@ -25,13 +25,10 @@ from qiskit.circuit.controlflow import CONTROL_FLOW_OP_NAMES
25
25
  from qiskit.providers.models.pulsedefaults import PulseDefaults
26
26
  from qiskit.providers.options import Options
27
27
  from qiskit.providers.exceptions import BackendPropertyError
28
- from qiskit.utils.deprecate_pulse import deprecate_pulse_arg, deprecate_pulse_dependency
29
-
30
28
 
31
29
  logger = logging.getLogger(__name__)
32
30
 
33
31
 
34
- @deprecate_pulse_arg("defaults")
35
32
  def convert_to_target(
36
33
  configuration: BackendConfiguration,
37
34
  properties: BackendProperties = None,
@@ -49,7 +46,7 @@ def convert_to_target(
49
46
  Args:
50
47
  configuration: Backend configuration as ``BackendConfiguration``
51
48
  properties: Backend property dictionary or ``BackendProperties``
52
- defaults: DEPRECATED. Backend pulse defaults dictionary or ``PulseDefaults``
49
+ defaults: Backend pulse defaults dictionary or ``PulseDefaults``
53
50
  custom_name_mapping: A name mapping must be supplied for the operation
54
51
  not included in Qiskit Standard Gate name mapping, otherwise the operation
55
52
  will be dropped in the resulting ``Target`` object.
@@ -59,20 +56,7 @@ def convert_to_target(
59
56
  Returns:
60
57
  A ``Target`` instance.
61
58
  """
62
- return _convert_to_target(
63
- configuration, properties, defaults, custom_name_mapping, add_delay, filter_faulty
64
- )
65
-
66
59
 
67
- def _convert_to_target(
68
- configuration: BackendConfiguration,
69
- properties: BackendProperties = None,
70
- defaults: PulseDefaults = None,
71
- custom_name_mapping: Optional[Dict[str, Any]] = None,
72
- add_delay: bool = True,
73
- filter_faulty: bool = True,
74
- ):
75
- """An alternative private path to avoid pulse deprecations"""
76
60
  # importing packages where they are needed, to avoid cyclic-import.
77
61
  # pylint: disable=cyclic-import
78
62
  from qiskit.transpiler.target import (
@@ -281,7 +265,7 @@ def _convert_to_target(
281
265
 
282
266
  entry = inst_sched_map._get_calibration_entry(name, qubits)
283
267
  try:
284
- prop_name_map[name][qubits]._calibration_prop = entry
268
+ prop_name_map[name][qubits].calibration = entry
285
269
  except AttributeError:
286
270
  # if instruction properties are "None", add entry
287
271
  prop_name_map[name].update({qubits: InstructionProperties(None, None, entry)})
@@ -426,7 +410,7 @@ class BackendV2Converter(BackendV2):
426
410
  :rtype: Target
427
411
  """
428
412
  if self._target is None:
429
- self._target = _convert_to_target(
413
+ self._target = convert_to_target(
430
414
  configuration=self._config,
431
415
  properties=self._properties,
432
416
  defaults=self._defaults,
@@ -452,19 +436,15 @@ class BackendV2Converter(BackendV2):
452
436
  def meas_map(self) -> List[List[int]]:
453
437
  return self._config.meas_map
454
438
 
455
- @deprecate_pulse_dependency
456
439
  def drive_channel(self, qubit: int):
457
440
  return self._config.drive(qubit)
458
441
 
459
- @deprecate_pulse_dependency
460
442
  def measure_channel(self, qubit: int):
461
443
  return self._config.measure(qubit)
462
444
 
463
- @deprecate_pulse_dependency
464
445
  def acquire_channel(self, qubit: int):
465
446
  return self._config.acquire(qubit)
466
447
 
467
- @deprecate_pulse_dependency
468
448
  def control_channel(self, qubits: Iterable[int]):
469
449
  return self._config.control(qubits)
470
450
 
@@ -48,7 +48,6 @@ from qiskit.providers.options import Options
48
48
  from qiskit.qobj import QasmQobj, QasmQobjConfig, QasmQobjExperiment
49
49
  from qiskit.result import Result
50
50
  from qiskit.transpiler import Target
51
- from qiskit.utils.deprecation import deprecate_func
52
51
 
53
52
  from .basic_provider_job import BasicProviderJob
54
53
  from .basic_provider_tools import single_gate_matrix
@@ -213,14 +212,6 @@ class BasicSimulator(BackendV2):
213
212
  )
214
213
  return target
215
214
 
216
- @deprecate_func(
217
- since="1.3.0",
218
- removal_timeline="in Qiskit 2.0.0",
219
- additional_msg="The `BackendConfiguration` class is part of the deprecated `BackendV1` "
220
- "workflow, and no longer necessary for `BackendV2`. The individual configuration elements "
221
- "can be retrieved directly from the backend or from the contained `Target` instance "
222
- "(`backend.target)`).",
223
- )
224
215
  def configuration(self) -> BackendConfiguration:
225
216
  """Return the simulator backend configuration.
226
217
 
@@ -257,7 +248,7 @@ class BasicSimulator(BackendV2):
257
248
  backend_name=self.name,
258
249
  backend_version=self.backend_version,
259
250
  n_qubits=self.num_qubits,
260
- basis_gates=list(self.target.operation_names),
251
+ basis_gates=self.target.operation_names,
261
252
  gates=gates,
262
253
  local=True,
263
254
  simulator=True,
@@ -541,8 +532,7 @@ class BasicSimulator(BackendV2):
541
532
  "initial_statevector": np.array([1, 0, 0, 1j]) / math.sqrt(2),
542
533
  }
543
534
  """
544
- # TODO: replace assemble with new run flow. If this is not achieved before 2.0,
545
- # see removal note on `def _assemble`, L192 of qiskit/compiler/assembler.py
535
+ # TODO: replace assemble with new run flow
546
536
  from qiskit.compiler.assembler import _assemble
547
537
 
548
538
  out_options = {}
@@ -14,8 +14,6 @@
14
14
  Fake backend abstract class for mock backends supporting OpenPulse.
15
15
  """
16
16
 
17
- import warnings
18
-
19
17
  from qiskit.exceptions import QiskitError
20
18
  from qiskit.providers.models.backendconfiguration import PulseBackendConfiguration
21
19
  from qiskit.providers.models.pulsedefaults import PulseDefaults
@@ -32,10 +30,7 @@ class FakePulseBackend(FakeQasmBackend):
32
30
  def defaults(self):
33
31
  """Returns a snapshot of device defaults"""
34
32
  if not self._defaults:
35
- with warnings.catch_warnings():
36
- warnings.simplefilter(action="ignore", category=DeprecationWarning)
37
- # Filter deprecation warnings emitted from Qiskit Pulse
38
- self._set_defaults_from_json()
33
+ self._set_defaults_from_json()
39
34
  return self._defaults
40
35
 
41
36
  def _set_defaults_from_json(self):
@@ -42,7 +42,6 @@ from qiskit.qobj.converters.pulse_instruction import QobjToInstructionConverter
42
42
  from qiskit.pulse.calibration_entries import PulseQobjDef
43
43
  from qiskit.providers.models.pulsedefaults import MeasurementKernel, Discriminator
44
44
  from qiskit.qobj.pulse_qobj import QobjMeasurementOption
45
- from qiskit.utils.deprecate_pulse import deprecate_pulse_dependency, deprecate_pulse_arg
46
45
 
47
46
  # Noise default values/ranges for duration and error of supported
48
47
  # instructions. There are two possible formats:
@@ -519,8 +518,6 @@ class GenericBackendV2(BackendV2):
519
518
  transpilation.
520
519
  """
521
520
 
522
- @deprecate_pulse_arg("pulse_channels")
523
- @deprecate_pulse_arg("calibrate_instructions")
524
521
  def __init__(
525
522
  self,
526
523
  num_qubits: int,
@@ -563,7 +560,7 @@ class GenericBackendV2(BackendV2):
563
560
  control_flow: Flag to enable control flow directives on the target
564
561
  (defaults to False).
565
562
 
566
- calibrate_instructions: DEPRECATED. Instruction calibration settings, this argument
563
+ calibrate_instructions: Instruction calibration settings, this argument
567
564
  supports both boolean and :class:`.InstructionScheduleMap` as
568
565
  input types, and is ``None`` by default:
569
566
 
@@ -581,7 +578,7 @@ class GenericBackendV2(BackendV2):
581
578
 
582
579
  seed: Optional seed for generation of default values.
583
580
 
584
- pulse_channels: DEPRECATED. If true, sets default pulse channel information on the backend.
581
+ pulse_channels: If true, sets default pulse channel information on the backend.
585
582
 
586
583
  noise_info: If true, associates gates and qubits with default noise information.
587
584
  """
@@ -651,17 +648,14 @@ class GenericBackendV2(BackendV2):
651
648
  return self._target.concurrent_measurements
652
649
 
653
650
  def _build_default_channels(self) -> None:
654
- with warnings.catch_warnings():
655
- warnings.simplefilter(action="ignore", category=DeprecationWarning)
656
- # Prevent pulse deprecation warnings from being emitted
657
- channels_map = {
658
- "acquire": {(i,): [pulse.AcquireChannel(i)] for i in range(self.num_qubits)},
659
- "drive": {(i,): [pulse.DriveChannel(i)] for i in range(self.num_qubits)},
660
- "measure": {(i,): [pulse.MeasureChannel(i)] for i in range(self.num_qubits)},
661
- "control": {
662
- (edge): [pulse.ControlChannel(i)] for i, edge in enumerate(self._coupling_map)
663
- },
664
- }
651
+ channels_map = {
652
+ "acquire": {(i,): [pulse.AcquireChannel(i)] for i in range(self.num_qubits)},
653
+ "drive": {(i,): [pulse.DriveChannel(i)] for i in range(self.num_qubits)},
654
+ "measure": {(i,): [pulse.MeasureChannel(i)] for i in range(self.num_qubits)},
655
+ "control": {
656
+ (edge): [pulse.ControlChannel(i)] for i, edge in enumerate(self._coupling_map)
657
+ },
658
+ }
665
659
  setattr(self, "channels_map", channels_map)
666
660
 
667
661
  def _get_noise_defaults(self, name: str, num_qubits: int) -> tuple:
@@ -873,33 +867,27 @@ class GenericBackendV2(BackendV2):
873
867
  duration, error = (
874
868
  noise_params
875
869
  if len(noise_params) == 2
876
- else (
877
- self._rng.uniform(*noise_params[:2]),
878
- self._rng.uniform(*noise_params[2:]),
879
- )
870
+ else (self._rng.uniform(*noise_params[:2]), self._rng.uniform(*noise_params[2:]))
880
871
  )
881
- with warnings.catch_warnings():
882
- warnings.simplefilter(action="ignore", category=DeprecationWarning)
883
- # Prevent pulse deprecations from being emitted
884
- if (
885
- calibration_inst_map is not None
886
- and instruction.name not in ["reset", "delay"]
887
- and qarg in calibration_inst_map.qubits_with_instruction(instruction.name)
888
- ):
889
- # Do NOT call .get method. This parses Qobj immediately.
890
- # This operation is computationally expensive and should be bypassed.
891
- calibration_entry = calibration_inst_map._get_calibration_entry(
892
- instruction.name, qargs
893
- )
894
- else:
895
- calibration_entry = None
896
- if duration is not None and len(noise_params) > 2:
897
- # Ensure exact conversion of duration from seconds to dt
898
- dt = _QUBIT_PROPERTIES["dt"]
899
- rounded_duration = round(duration / dt) * dt
900
- # Clamp rounded duration to be between min and max values
901
- duration = max(noise_params[0], min(rounded_duration, noise_params[1]))
902
- props.update({qargs: InstructionProperties(duration, error, calibration_entry)})
872
+ if (
873
+ calibration_inst_map is not None
874
+ and instruction.name not in ["reset", "delay"]
875
+ and qarg in calibration_inst_map.qubits_with_instruction(instruction.name)
876
+ ):
877
+ # Do NOT call .get method. This parses Qobj immediately.
878
+ # This operation is computationally expensive and should be bypassed.
879
+ calibration_entry = calibration_inst_map._get_calibration_entry(
880
+ instruction.name, qargs
881
+ )
882
+ else:
883
+ calibration_entry = None
884
+ if duration is not None and len(noise_params) > 2:
885
+ # Ensure exact conversion of duration from seconds to dt
886
+ dt = _QUBIT_PROPERTIES["dt"]
887
+ rounded_duration = round(duration / dt) * dt
888
+ # Clamp rounded duration to be between min and max values
889
+ duration = max(noise_params[0], min(rounded_duration, noise_params[1]))
890
+ props.update({qargs: InstructionProperties(duration, error, calibration_entry)})
903
891
  self._target.add_instruction(instruction, props)
904
892
 
905
893
  # The "measure" instruction calibrations need to be added qubit by qubit, once the
@@ -1002,7 +990,6 @@ class GenericBackendV2(BackendV2):
1002
990
  else:
1003
991
  return BasicSimulator._default_options()
1004
992
 
1005
- @deprecate_pulse_dependency
1006
993
  def drive_channel(self, qubit: int):
1007
994
  drive_channels_map = getattr(self, "channels_map", {}).get("drive", {})
1008
995
  qubits = (qubit,)
@@ -1010,7 +997,6 @@ class GenericBackendV2(BackendV2):
1010
997
  return drive_channels_map[qubits][0]
1011
998
  return None
1012
999
 
1013
- @deprecate_pulse_dependency
1014
1000
  def measure_channel(self, qubit: int):
1015
1001
  measure_channels_map = getattr(self, "channels_map", {}).get("measure", {})
1016
1002
  qubits = (qubit,)
@@ -1018,7 +1004,6 @@ class GenericBackendV2(BackendV2):
1018
1004
  return measure_channels_map[qubits][0]
1019
1005
  return None
1020
1006
 
1021
- @deprecate_pulse_dependency
1022
1007
  def acquire_channel(self, qubit: int):
1023
1008
  acquire_channels_map = getattr(self, "channels_map", {}).get("acquire", {})
1024
1009
  qubits = (qubit,)
@@ -1026,7 +1011,6 @@ class GenericBackendV2(BackendV2):
1026
1011
  return acquire_channels_map[qubits][0]
1027
1012
  return None
1028
1013
 
1029
- @deprecate_pulse_dependency
1030
1014
  def control_channel(self, qubits: Iterable[int]):
1031
1015
  control_channels_map = getattr(self, "channels_map", {}).get("control", {})
1032
1016
  qubits = tuple(qubits)
@@ -18,7 +18,6 @@ from typing import Any, Dict, List
18
18
  from qiskit.pulse.instruction_schedule_map import InstructionScheduleMap, PulseQobjDef
19
19
  from qiskit.qobj import PulseLibraryItem, PulseQobjInstruction
20
20
  from qiskit.qobj.converters import QobjToInstructionConverter
21
- from qiskit.utils.deprecate_pulse import deprecate_pulse_dependency
22
21
 
23
22
 
24
23
  class MeasurementKernel:
@@ -170,7 +169,6 @@ class PulseDefaults:
170
169
 
171
170
  _data = {}
172
171
 
173
- @deprecate_pulse_dependency
174
172
  def __init__(
175
173
  self,
176
174
  qubit_freq_est: List[float],