qiskit 1.3.0b1__cp39-abi3-win32.whl → 1.3.0rc1__cp39-abi3-win32.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (359) hide show
  1. qiskit/VERSION.txt +1 -1
  2. qiskit/__init__.py +20 -1
  3. qiskit/_accelerate.pyd +0 -0
  4. qiskit/assembler/assemble_schedules.py +2 -0
  5. qiskit/circuit/__init__.py +44 -1
  6. qiskit/circuit/_standard_gates_commutations.py +585 -0
  7. qiskit/circuit/barrier.py +2 -0
  8. qiskit/circuit/controlflow/builder.py +3 -3
  9. qiskit/circuit/controlflow/if_else.py +13 -5
  10. qiskit/circuit/controlflow/while_loop.py +10 -2
  11. qiskit/circuit/delay.py +20 -3
  12. qiskit/circuit/equivalence.py +13 -214
  13. qiskit/circuit/gate.py +3 -1
  14. qiskit/circuit/instruction.py +32 -11
  15. qiskit/circuit/instructionset.py +2 -0
  16. qiskit/circuit/library/__init__.py +83 -14
  17. qiskit/circuit/library/arithmetic/__init__.py +9 -2
  18. qiskit/circuit/library/arithmetic/adders/__init__.py +1 -0
  19. qiskit/circuit/library/arithmetic/adders/adder.py +153 -1
  20. qiskit/circuit/library/arithmetic/adders/cdkm_ripple_carry_adder.py +20 -56
  21. qiskit/circuit/library/arithmetic/adders/draper_qft_adder.py +14 -1
  22. qiskit/circuit/library/arithmetic/adders/vbe_ripple_carry_adder.py +21 -91
  23. qiskit/circuit/library/arithmetic/linear_pauli_rotations.py +1 -1
  24. qiskit/circuit/library/arithmetic/multipliers/__init__.py +1 -0
  25. qiskit/circuit/library/arithmetic/multipliers/hrs_cumulative_multiplier.py +8 -1
  26. qiskit/circuit/library/arithmetic/multipliers/multiplier.py +94 -3
  27. qiskit/circuit/library/arithmetic/multipliers/rg_qft_multiplier.py +8 -1
  28. qiskit/circuit/library/arithmetic/weighted_adder.py +1 -1
  29. qiskit/circuit/library/basis_change/qft.py +20 -38
  30. qiskit/circuit/library/blueprintcircuit.py +64 -0
  31. qiskit/circuit/library/boolean_logic/__init__.py +4 -4
  32. qiskit/circuit/library/boolean_logic/inner_product.py +81 -4
  33. qiskit/circuit/library/boolean_logic/quantum_and.py +107 -4
  34. qiskit/circuit/library/boolean_logic/quantum_or.py +107 -3
  35. qiskit/circuit/library/boolean_logic/quantum_xor.py +97 -3
  36. qiskit/circuit/library/data_preparation/__init__.py +6 -3
  37. qiskit/circuit/library/data_preparation/{z_feature_map.py → _z_feature_map.py} +45 -34
  38. qiskit/circuit/library/data_preparation/_zz_feature_map.py +150 -0
  39. qiskit/circuit/library/data_preparation/pauli_feature_map.py +342 -29
  40. qiskit/circuit/library/fourier_checking.py +72 -11
  41. qiskit/circuit/library/generalized_gates/__init__.py +1 -1
  42. qiskit/circuit/library/generalized_gates/diagonal.py +45 -51
  43. qiskit/circuit/library/generalized_gates/gms.py +67 -14
  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 +12 -6
  47. qiskit/circuit/library/generalized_gates/mcmt.py +167 -107
  48. qiskit/circuit/library/generalized_gates/permutation.py +8 -6
  49. qiskit/circuit/library/generalized_gates/rv.py +8 -9
  50. qiskit/circuit/library/graph_state.py +93 -10
  51. qiskit/circuit/library/grover_operator.py +270 -2
  52. qiskit/circuit/library/hidden_linear_function.py +83 -20
  53. qiskit/circuit/library/iqp.py +99 -20
  54. qiskit/circuit/library/n_local/__init__.py +19 -7
  55. qiskit/circuit/library/n_local/efficient_su2.py +118 -5
  56. qiskit/circuit/library/n_local/evolved_operator_ansatz.py +259 -0
  57. qiskit/circuit/library/n_local/excitation_preserving.py +130 -6
  58. qiskit/circuit/library/n_local/n_local.py +406 -5
  59. qiskit/circuit/library/n_local/pauli_two_design.py +106 -4
  60. qiskit/circuit/library/n_local/qaoa_ansatz.py +80 -1
  61. qiskit/circuit/library/n_local/real_amplitudes.py +127 -7
  62. qiskit/circuit/library/n_local/two_local.py +14 -7
  63. qiskit/circuit/library/overlap.py +91 -26
  64. qiskit/circuit/library/pauli_evolution.py +17 -15
  65. qiskit/circuit/library/phase_estimation.py +80 -4
  66. qiskit/circuit/library/quantum_volume.py +72 -20
  67. qiskit/circuit/library/standard_gates/__init__.py +20 -1
  68. qiskit/circuit/library/standard_gates/dcx.py +2 -1
  69. qiskit/circuit/library/standard_gates/ecr.py +2 -2
  70. qiskit/circuit/library/standard_gates/h.py +4 -3
  71. qiskit/circuit/library/standard_gates/i.py +2 -1
  72. qiskit/circuit/library/standard_gates/iswap.py +2 -2
  73. qiskit/circuit/library/standard_gates/p.py +20 -12
  74. qiskit/circuit/library/standard_gates/r.py +1 -1
  75. qiskit/circuit/library/standard_gates/rx.py +4 -3
  76. qiskit/circuit/library/standard_gates/rxx.py +2 -2
  77. qiskit/circuit/library/standard_gates/ry.py +4 -3
  78. qiskit/circuit/library/standard_gates/ryy.py +2 -2
  79. qiskit/circuit/library/standard_gates/rz.py +13 -12
  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 +4 -3
  85. qiskit/circuit/library/standard_gates/t.py +2 -2
  86. qiskit/circuit/library/standard_gates/u.py +11 -3
  87. qiskit/circuit/library/standard_gates/u1.py +65 -15
  88. qiskit/circuit/library/standard_gates/u2.py +4 -1
  89. qiskit/circuit/library/standard_gates/u3.py +31 -3
  90. qiskit/circuit/library/standard_gates/x.py +7 -5
  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 +4 -3
  94. qiskit/circuit/library/standard_gates/z.py +3 -3
  95. qiskit/circuit/library/templates/clifford/clifford_2_1.py +9 -8
  96. qiskit/circuit/library/templates/clifford/clifford_2_2.py +10 -9
  97. qiskit/circuit/library/templates/clifford/clifford_2_3.py +9 -7
  98. qiskit/circuit/library/templates/clifford/clifford_2_4.py +9 -8
  99. qiskit/circuit/library/templates/clifford/clifford_3_1.py +9 -8
  100. qiskit/circuit/library/templates/clifford/clifford_4_1.py +10 -9
  101. qiskit/circuit/library/templates/clifford/clifford_4_2.py +10 -9
  102. qiskit/circuit/library/templates/clifford/clifford_4_3.py +10 -9
  103. qiskit/circuit/library/templates/clifford/clifford_4_4.py +10 -9
  104. qiskit/circuit/library/templates/clifford/clifford_5_1.py +10 -9
  105. qiskit/circuit/library/templates/clifford/clifford_6_1.py +10 -9
  106. qiskit/circuit/library/templates/clifford/clifford_6_2.py +10 -9
  107. qiskit/circuit/library/templates/clifford/clifford_6_3.py +10 -9
  108. qiskit/circuit/library/templates/clifford/clifford_6_4.py +9 -8
  109. qiskit/circuit/library/templates/clifford/clifford_6_5.py +10 -9
  110. qiskit/circuit/library/templates/clifford/clifford_8_1.py +10 -9
  111. qiskit/circuit/library/templates/clifford/clifford_8_2.py +10 -9
  112. qiskit/circuit/library/templates/clifford/clifford_8_3.py +10 -9
  113. qiskit/circuit/library/templates/nct/template_nct_2a_1.py +9 -7
  114. qiskit/circuit/library/templates/nct/template_nct_2a_2.py +10 -8
  115. qiskit/circuit/library/templates/nct/template_nct_2a_3.py +12 -10
  116. qiskit/circuit/library/templates/nct/template_nct_4a_1.py +16 -14
  117. qiskit/circuit/library/templates/nct/template_nct_4a_2.py +14 -12
  118. qiskit/circuit/library/templates/nct/template_nct_4a_3.py +12 -10
  119. qiskit/circuit/library/templates/nct/template_nct_4b_1.py +14 -12
  120. qiskit/circuit/library/templates/nct/template_nct_4b_2.py +12 -10
  121. qiskit/circuit/library/templates/nct/template_nct_5a_1.py +12 -10
  122. qiskit/circuit/library/templates/nct/template_nct_5a_2.py +12 -10
  123. qiskit/circuit/library/templates/nct/template_nct_5a_3.py +12 -10
  124. qiskit/circuit/library/templates/nct/template_nct_5a_4.py +11 -9
  125. qiskit/circuit/library/templates/nct/template_nct_6a_1.py +11 -9
  126. qiskit/circuit/library/templates/nct/template_nct_6a_2.py +12 -10
  127. qiskit/circuit/library/templates/nct/template_nct_6a_3.py +12 -10
  128. qiskit/circuit/library/templates/nct/template_nct_6a_4.py +12 -10
  129. qiskit/circuit/library/templates/nct/template_nct_6b_1.py +12 -10
  130. qiskit/circuit/library/templates/nct/template_nct_6b_2.py +12 -10
  131. qiskit/circuit/library/templates/nct/template_nct_6c_1.py +12 -10
  132. qiskit/circuit/library/templates/nct/template_nct_7a_1.py +13 -11
  133. qiskit/circuit/library/templates/nct/template_nct_7b_1.py +13 -11
  134. qiskit/circuit/library/templates/nct/template_nct_7c_1.py +13 -11
  135. qiskit/circuit/library/templates/nct/template_nct_7d_1.py +13 -11
  136. qiskit/circuit/library/templates/nct/template_nct_7e_1.py +13 -11
  137. qiskit/circuit/library/templates/nct/template_nct_9a_1.py +13 -11
  138. qiskit/circuit/library/templates/nct/template_nct_9c_1.py +11 -9
  139. qiskit/circuit/library/templates/nct/template_nct_9c_10.py +12 -10
  140. qiskit/circuit/library/templates/nct/template_nct_9c_11.py +12 -10
  141. qiskit/circuit/library/templates/nct/template_nct_9c_12.py +12 -10
  142. qiskit/circuit/library/templates/nct/template_nct_9c_2.py +12 -10
  143. qiskit/circuit/library/templates/nct/template_nct_9c_3.py +12 -10
  144. qiskit/circuit/library/templates/nct/template_nct_9c_4.py +12 -10
  145. qiskit/circuit/library/templates/nct/template_nct_9c_5.py +12 -10
  146. qiskit/circuit/library/templates/nct/template_nct_9c_6.py +12 -10
  147. qiskit/circuit/library/templates/nct/template_nct_9c_7.py +12 -10
  148. qiskit/circuit/library/templates/nct/template_nct_9c_8.py +12 -10
  149. qiskit/circuit/library/templates/nct/template_nct_9c_9.py +12 -10
  150. qiskit/circuit/library/templates/nct/template_nct_9d_1.py +11 -9
  151. qiskit/circuit/library/templates/nct/template_nct_9d_10.py +12 -10
  152. qiskit/circuit/library/templates/nct/template_nct_9d_2.py +12 -10
  153. qiskit/circuit/library/templates/nct/template_nct_9d_3.py +12 -10
  154. qiskit/circuit/library/templates/nct/template_nct_9d_4.py +12 -10
  155. qiskit/circuit/library/templates/nct/template_nct_9d_5.py +12 -10
  156. qiskit/circuit/library/templates/nct/template_nct_9d_6.py +12 -10
  157. qiskit/circuit/library/templates/nct/template_nct_9d_7.py +12 -10
  158. qiskit/circuit/library/templates/nct/template_nct_9d_8.py +12 -10
  159. qiskit/circuit/library/templates/nct/template_nct_9d_9.py +12 -10
  160. qiskit/circuit/library/templates/rzx/rzx_cy.py +11 -10
  161. qiskit/circuit/library/templates/rzx/rzx_xz.py +16 -15
  162. qiskit/circuit/library/templates/rzx/rzx_yz.py +12 -10
  163. qiskit/circuit/library/templates/rzx/rzx_zz1.py +22 -20
  164. qiskit/circuit/library/templates/rzx/rzx_zz2.py +16 -15
  165. qiskit/circuit/library/templates/rzx/rzx_zz3.py +17 -15
  166. qiskit/circuit/parameter.py +4 -0
  167. qiskit/circuit/parameterexpression.py +167 -34
  168. qiskit/circuit/quantumcircuit.py +162 -126
  169. qiskit/circuit/singleton.py +2 -0
  170. qiskit/circuit/store.py +2 -0
  171. qiskit/circuit/twirling.py +145 -0
  172. qiskit/compiler/assembler.py +17 -4
  173. qiskit/compiler/scheduler.py +2 -0
  174. qiskit/compiler/sequencer.py +2 -0
  175. qiskit/compiler/transpiler.py +81 -26
  176. qiskit/converters/circuit_to_dag.py +2 -2
  177. qiskit/converters/circuit_to_dagdependency.py +1 -1
  178. qiskit/converters/circuit_to_dagdependency_v2.py +1 -1
  179. qiskit/converters/circuit_to_instruction.py +1 -1
  180. qiskit/converters/dag_to_circuit.py +7 -5
  181. qiskit/converters/dag_to_dagdependency.py +1 -1
  182. qiskit/converters/dag_to_dagdependency_v2.py +1 -1
  183. qiskit/converters/dagdependency_to_circuit.py +5 -1
  184. qiskit/converters/dagdependency_to_dag.py +6 -1
  185. qiskit/dagcircuit/collect_blocks.py +3 -3
  186. qiskit/dagcircuit/dagdependency.py +18 -5
  187. qiskit/dagcircuit/dagdependency_v2.py +1 -1
  188. qiskit/dagcircuit/dagnode.py +2 -2
  189. qiskit/passmanager/__init__.py +2 -2
  190. qiskit/primitives/backend_estimator.py +5 -2
  191. qiskit/primitives/backend_sampler_v2.py +61 -18
  192. qiskit/primitives/base/base_estimator.py +2 -2
  193. qiskit/primitives/containers/data_bin.py +9 -1
  194. qiskit/primitives/statevector_sampler.py +1 -1
  195. qiskit/providers/__init__.py +1 -1
  196. qiskit/providers/backend.py +12 -1
  197. qiskit/providers/backend_compat.py +23 -3
  198. qiskit/providers/basic_provider/basic_simulator.py +12 -2
  199. qiskit/providers/fake_provider/fake_pulse_backend.py +6 -1
  200. qiskit/providers/fake_provider/generic_backend_v2.py +46 -30
  201. qiskit/providers/models/pulsedefaults.py +2 -0
  202. qiskit/pulse/builder.py +59 -18
  203. qiskit/pulse/calibration_entries.py +4 -1
  204. qiskit/pulse/channels.py +2 -0
  205. qiskit/pulse/exceptions.py +2 -0
  206. qiskit/pulse/instruction_schedule_map.py +21 -6
  207. qiskit/pulse/instructions/acquire.py +2 -0
  208. qiskit/pulse/instructions/delay.py +2 -0
  209. qiskit/pulse/instructions/directives.py +8 -0
  210. qiskit/pulse/instructions/frequency.py +3 -0
  211. qiskit/pulse/instructions/instruction.py +2 -0
  212. qiskit/pulse/instructions/phase.py +3 -0
  213. qiskit/pulse/instructions/play.py +2 -0
  214. qiskit/pulse/instructions/reference.py +2 -0
  215. qiskit/pulse/instructions/snapshot.py +2 -0
  216. qiskit/pulse/library/pulse.py +2 -0
  217. qiskit/pulse/library/symbolic_pulses.py +28 -0
  218. qiskit/pulse/library/waveform.py +2 -0
  219. qiskit/pulse/macros.py +1 -1
  220. qiskit/pulse/schedule.py +12 -13
  221. qiskit/pulse/transforms/alignments.py +5 -3
  222. qiskit/pulse/transforms/dag.py +7 -0
  223. qiskit/qasm2/export.py +5 -3
  224. qiskit/qasm2/parse.py +46 -2
  225. qiskit/qasm3/__init__.py +1 -0
  226. qiskit/qasm3/ast.py +123 -15
  227. qiskit/qasm3/exporter.py +103 -77
  228. qiskit/qobj/converters/pulse_instruction.py +6 -4
  229. qiskit/qpy/__init__.py +181 -0
  230. qiskit/qpy/binary_io/circuits.py +20 -5
  231. qiskit/qpy/binary_io/schedules.py +3 -4
  232. qiskit/qpy/binary_io/value.py +310 -13
  233. qiskit/qpy/common.py +46 -2
  234. qiskit/qpy/formats.py +7 -0
  235. qiskit/qpy/interface.py +40 -4
  236. qiskit/quantum_info/__init__.py +4 -0
  237. qiskit/quantum_info/operators/channel/transformations.py +28 -21
  238. qiskit/quantum_info/operators/dihedral/dihedral.py +1 -1
  239. qiskit/quantum_info/operators/operator.py +54 -8
  240. qiskit/quantum_info/operators/symplectic/base_pauli.py +11 -19
  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 +2 -0
  244. qiskit/quantum_info/operators/symplectic/pauli_list.py +4 -4
  245. qiskit/quantum_info/operators/symplectic/sparse_pauli_op.py +23 -2
  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 +5 -5
  249. qiskit/result/mitigation/base_readout_mitigator.py +1 -1
  250. qiskit/result/mitigation/correlated_readout_mitigator.py +9 -1
  251. qiskit/result/mitigation/local_readout_mitigator.py +9 -1
  252. qiskit/result/mitigation/utils.py +57 -0
  253. qiskit/scheduler/config.py +2 -0
  254. qiskit/scheduler/methods/basic.py +3 -0
  255. qiskit/scheduler/schedule_circuit.py +2 -0
  256. qiskit/scheduler/sequence.py +2 -0
  257. qiskit/synthesis/__init__.py +25 -0
  258. qiskit/synthesis/arithmetic/__init__.py +16 -0
  259. qiskit/synthesis/arithmetic/adders/__init__.py +17 -0
  260. qiskit/synthesis/arithmetic/adders/cdkm_ripple_carry_adder.py +154 -0
  261. qiskit/synthesis/arithmetic/adders/draper_qft_adder.py +103 -0
  262. qiskit/synthesis/arithmetic/adders/vbe_ripple_carry_adder.py +161 -0
  263. qiskit/synthesis/arithmetic/multipliers/__init__.py +16 -0
  264. qiskit/synthesis/arithmetic/multipliers/hrs_cumulative_multiplier.py +102 -0
  265. qiskit/synthesis/arithmetic/multipliers/rg_qft_multiplier.py +99 -0
  266. qiskit/synthesis/clifford/clifford_decompose_bm.py +1 -2
  267. qiskit/synthesis/clifford/clifford_decompose_greedy.py +3 -2
  268. qiskit/synthesis/clifford/clifford_decompose_layers.py +2 -1
  269. qiskit/synthesis/evolution/__init__.py +1 -0
  270. qiskit/synthesis/evolution/lie_trotter.py +16 -42
  271. qiskit/synthesis/evolution/pauli_network.py +80 -0
  272. qiskit/synthesis/evolution/product_formula.py +165 -238
  273. qiskit/synthesis/evolution/qdrift.py +36 -29
  274. qiskit/synthesis/evolution/suzuki_trotter.py +87 -27
  275. qiskit/synthesis/multi_controlled/__init__.py +1 -0
  276. qiskit/synthesis/multi_controlled/mcmt_vchain.py +52 -0
  277. qiskit/synthesis/qft/qft_decompose_full.py +19 -1
  278. qiskit/synthesis/qft/qft_decompose_lnn.py +2 -1
  279. qiskit/synthesis/stabilizer/stabilizer_decompose.py +2 -1
  280. qiskit/synthesis/two_qubit/two_qubit_decompose.py +4 -63
  281. qiskit/synthesis/unitary/qsd.py +5 -5
  282. qiskit/transpiler/__init__.py +21 -14
  283. qiskit/transpiler/basepasses.py +1 -1
  284. qiskit/transpiler/passes/__init__.py +2 -0
  285. qiskit/transpiler/passes/basis/basis_translator.py +9 -565
  286. qiskit/transpiler/passes/basis/decompose.py +45 -12
  287. qiskit/transpiler/passes/basis/unroll_3q_or_more.py +1 -1
  288. qiskit/transpiler/passes/basis/unroll_custom_definitions.py +1 -1
  289. qiskit/transpiler/passes/calibration/pulse_gate.py +4 -2
  290. qiskit/transpiler/passes/calibration/rx_builder.py +11 -7
  291. qiskit/transpiler/passes/calibration/rzx_builder.py +46 -30
  292. qiskit/transpiler/passes/layout/disjoint_utils.py +15 -13
  293. qiskit/transpiler/passes/layout/sabre_layout.py +7 -2
  294. qiskit/transpiler/passes/layout/sabre_pre_layout.py +5 -0
  295. qiskit/transpiler/passes/optimization/__init__.py +1 -0
  296. qiskit/transpiler/passes/optimization/collect_cliffords.py +19 -3
  297. qiskit/transpiler/passes/optimization/collect_linear_functions.py +1 -1
  298. qiskit/transpiler/passes/optimization/collect_multiqubit_blocks.py +2 -2
  299. qiskit/transpiler/passes/optimization/commutative_inverse_cancellation.py +1 -1
  300. qiskit/transpiler/passes/optimization/consolidate_blocks.py +40 -130
  301. qiskit/transpiler/passes/optimization/echo_rzx_weyl_decomposition.py +4 -2
  302. qiskit/transpiler/passes/optimization/elide_permutations.py +9 -32
  303. qiskit/transpiler/passes/optimization/optimize_1q_decomposition.py +5 -11
  304. qiskit/transpiler/passes/optimization/optimize_1q_gates.py +1 -1
  305. qiskit/transpiler/passes/optimization/optimize_swap_before_measure.py +1 -1
  306. qiskit/transpiler/passes/optimization/remove_identity_equiv.py +69 -0
  307. qiskit/transpiler/passes/optimization/template_matching/backward_match.py +5 -5
  308. qiskit/transpiler/passes/optimization/template_matching/forward_match.py +4 -4
  309. qiskit/transpiler/passes/optimization/template_matching/template_substitution.py +2 -2
  310. qiskit/transpiler/passes/routing/commuting_2q_gate_routing/commuting_2q_gate_router.py +1 -1
  311. qiskit/transpiler/passes/routing/commuting_2q_gate_routing/swap_strategy.py +1 -1
  312. qiskit/transpiler/passes/routing/sabre_swap.py +7 -3
  313. qiskit/transpiler/passes/routing/star_prerouting.py +2 -2
  314. qiskit/transpiler/passes/scheduling/alap.py +1 -1
  315. qiskit/transpiler/passes/scheduling/alignments/align_measures.py +2 -2
  316. qiskit/transpiler/passes/scheduling/alignments/check_durations.py +1 -1
  317. qiskit/transpiler/passes/scheduling/alignments/pulse_gate_validation.py +2 -0
  318. qiskit/transpiler/passes/scheduling/alignments/reschedule.py +2 -2
  319. qiskit/transpiler/passes/scheduling/asap.py +1 -1
  320. qiskit/transpiler/passes/scheduling/base_scheduler.py +14 -12
  321. qiskit/transpiler/passes/scheduling/dynamical_decoupling.py +9 -4
  322. qiskit/transpiler/passes/scheduling/padding/base_padding.py +1 -1
  323. qiskit/transpiler/passes/scheduling/padding/dynamical_decoupling.py +16 -5
  324. qiskit/transpiler/passes/scheduling/padding/pad_delay.py +4 -1
  325. qiskit/transpiler/passes/scheduling/scheduling/base_scheduler.py +6 -2
  326. qiskit/transpiler/passes/scheduling/time_unit_conversion.py +9 -4
  327. qiskit/transpiler/passes/synthesis/high_level_synthesis.py +257 -93
  328. qiskit/transpiler/passes/synthesis/hls_plugins.py +637 -7
  329. qiskit/transpiler/passes/synthesis/solovay_kitaev_synthesis.py +3 -3
  330. qiskit/transpiler/passes/synthesis/unitary_synthesis.py +55 -34
  331. qiskit/transpiler/passes/utils/barrier_before_final_measurements.py +2 -56
  332. qiskit/transpiler/passes/utils/convert_conditions_to_if_ops.py +5 -0
  333. qiskit/transpiler/passes/utils/gate_direction.py +12 -275
  334. qiskit/transpiler/passes/utils/gates_basis.py +7 -30
  335. qiskit/transpiler/passes/utils/merge_adjacent_barriers.py +2 -1
  336. qiskit/transpiler/passmanager_config.py +22 -4
  337. qiskit/transpiler/preset_passmanagers/builtin_plugins.py +40 -14
  338. qiskit/transpiler/preset_passmanagers/common.py +5 -3
  339. qiskit/transpiler/preset_passmanagers/generate_preset_pass_manager.py +124 -42
  340. qiskit/transpiler/preset_passmanagers/plugin.py +1 -1
  341. qiskit/transpiler/target.py +74 -16
  342. qiskit/utils/deprecate_pulse.py +119 -0
  343. qiskit/visualization/circuit/_utils.py +2 -2
  344. qiskit/visualization/circuit/circuit_visualization.py +3 -2
  345. qiskit/visualization/circuit/matplotlib.py +1 -1
  346. qiskit/visualization/dag_visualization.py +1 -1
  347. qiskit/visualization/pass_manager_visualization.py +3 -14
  348. qiskit/visualization/pulse_v2/interface.py +3 -1
  349. qiskit/visualization/timeline/core.py +25 -2
  350. qiskit/visualization/timeline/interface.py +12 -0
  351. {qiskit-1.3.0b1.dist-info → qiskit-1.3.0rc1.dist-info}/METADATA +3 -2
  352. {qiskit-1.3.0b1.dist-info → qiskit-1.3.0rc1.dist-info}/RECORD +356 -345
  353. {qiskit-1.3.0b1.dist-info → qiskit-1.3.0rc1.dist-info}/WHEEL +1 -1
  354. {qiskit-1.3.0b1.dist-info → qiskit-1.3.0rc1.dist-info}/entry_points.txt +19 -0
  355. qiskit/circuit/library/data_preparation/zz_feature_map.py +0 -118
  356. qiskit/synthesis/two_qubit/weyl.py +0 -97
  357. qiskit/transpiler/passes/synthesis/qubit_tracker.py +0 -132
  358. {qiskit-1.3.0b1.dist-info → qiskit-1.3.0rc1.dist-info}/LICENSE.txt +0 -0
  359. {qiskit-1.3.0b1.dist-info → qiskit-1.3.0rc1.dist-info}/top_level.txt +0 -0
qiskit/VERSION.txt CHANGED
@@ -1 +1 @@
1
- 1.3.0b1
1
+ 1.3.0rc1
qiskit/__init__.py CHANGED
@@ -53,10 +53,15 @@ import qiskit._numpy_compat
53
53
  # and not have to rely on attribute access. No action needed for top-level extension packages.
54
54
  sys.modules["qiskit._accelerate.circuit"] = _accelerate.circuit
55
55
  sys.modules["qiskit._accelerate.circuit_library"] = _accelerate.circuit_library
56
+ sys.modules["qiskit._accelerate.basis"] = _accelerate.basis
57
+ sys.modules["qiskit._accelerate.basis.basis_translator"] = _accelerate.basis.basis_translator
56
58
  sys.modules["qiskit._accelerate.converters"] = _accelerate.converters
57
- sys.modules["qiskit._accelerate.convert_2q_block_matrix"] = _accelerate.convert_2q_block_matrix
59
+ sys.modules["qiskit._accelerate.basis"] = _accelerate.basis
60
+ sys.modules["qiskit._accelerate.basis.basis_translator"] = _accelerate.basis.basis_translator
58
61
  sys.modules["qiskit._accelerate.dense_layout"] = _accelerate.dense_layout
62
+ sys.modules["qiskit._accelerate.equivalence"] = _accelerate.equivalence
59
63
  sys.modules["qiskit._accelerate.error_map"] = _accelerate.error_map
64
+ sys.modules["qiskit._accelerate.gates_in_basis"] = _accelerate.gates_in_basis
60
65
  sys.modules["qiskit._accelerate.isometry"] = _accelerate.isometry
61
66
  sys.modules["qiskit._accelerate.uc_gate"] = _accelerate.uc_gate
62
67
  sys.modules["qiskit._accelerate.euler_one_qubit_decomposer"] = (
@@ -73,24 +78,38 @@ sys.modules["qiskit._accelerate.remove_diagonal_gates_before_measure"] = (
73
78
  sys.modules["qiskit._accelerate.results"] = _accelerate.results
74
79
  sys.modules["qiskit._accelerate.sabre"] = _accelerate.sabre
75
80
  sys.modules["qiskit._accelerate.sampled_exp_val"] = _accelerate.sampled_exp_val
81
+ sys.modules["qiskit._accelerate.sparse_observable"] = _accelerate.sparse_observable
76
82
  sys.modules["qiskit._accelerate.sparse_pauli_op"] = _accelerate.sparse_pauli_op
77
83
  sys.modules["qiskit._accelerate.star_prerouting"] = _accelerate.star_prerouting
78
84
  sys.modules["qiskit._accelerate.stochastic_swap"] = _accelerate.stochastic_swap
85
+ sys.modules["qiskit._accelerate.elide_permutations"] = _accelerate.elide_permutations
79
86
  sys.modules["qiskit._accelerate.target"] = _accelerate.target
80
87
  sys.modules["qiskit._accelerate.two_qubit_decompose"] = _accelerate.two_qubit_decompose
88
+ sys.modules["qiskit._accelerate.unitary_synthesis"] = _accelerate.unitary_synthesis
81
89
  sys.modules["qiskit._accelerate.vf2_layout"] = _accelerate.vf2_layout
82
90
  sys.modules["qiskit._accelerate.synthesis.permutation"] = _accelerate.synthesis.permutation
83
91
  sys.modules["qiskit._accelerate.synthesis.linear"] = _accelerate.synthesis.linear
84
92
  sys.modules["qiskit._accelerate.synthesis.clifford"] = _accelerate.synthesis.clifford
93
+ sys.modules["qiskit._accelerate.barrier_before_final_measurement"] = (
94
+ _accelerate.barrier_before_final_measurement
95
+ )
85
96
  sys.modules["qiskit._accelerate.commutation_checker"] = _accelerate.commutation_checker
86
97
  sys.modules["qiskit._accelerate.commutation_analysis"] = _accelerate.commutation_analysis
87
98
  sys.modules["qiskit._accelerate.commutation_cancellation"] = _accelerate.commutation_cancellation
99
+ sys.modules["qiskit._accelerate.consolidate_blocks"] = _accelerate.consolidate_blocks
88
100
  sys.modules["qiskit._accelerate.synthesis.linear_phase"] = _accelerate.synthesis.linear_phase
101
+ sys.modules["qiskit._accelerate.synthesis.evolution"] = _accelerate.synthesis.evolution
102
+ sys.modules["qiskit._accelerate.synthesis.multi_controlled"] = (
103
+ _accelerate.synthesis.multi_controlled
104
+ )
89
105
  sys.modules["qiskit._accelerate.split_2q_unitaries"] = _accelerate.split_2q_unitaries
90
106
  sys.modules["qiskit._accelerate.gate_direction"] = _accelerate.gate_direction
91
107
  sys.modules["qiskit._accelerate.inverse_cancellation"] = _accelerate.inverse_cancellation
92
108
  sys.modules["qiskit._accelerate.check_map"] = _accelerate.check_map
93
109
  sys.modules["qiskit._accelerate.filter_op_nodes"] = _accelerate.filter_op_nodes
110
+ sys.modules["qiskit._accelerate.twirling"] = _accelerate.twirling
111
+ sys.modules["qiskit._accelerate.high_level_synthesis"] = _accelerate.high_level_synthesis
112
+ sys.modules["qiskit._accelerate.remove_identity_equiv"] = _accelerate.remove_identity_equiv
94
113
 
95
114
  from qiskit.exceptions import QiskitError, MissingOptionalLibraryError
96
115
 
qiskit/_accelerate.pyd CHANGED
Binary file
@@ -22,8 +22,10 @@ from qiskit.exceptions import QiskitError
22
22
  from qiskit.pulse import instructions, transforms, library, schedule, channels
23
23
  from qiskit.qobj import utils as qobj_utils, converters
24
24
  from qiskit.qobj.converters.pulse_instruction import ParametricPulseShapes
25
+ from qiskit.utils.deprecate_pulse import deprecate_pulse_dependency
25
26
 
26
27
 
28
+ @deprecate_pulse_dependency
27
29
  def assemble_schedules(
28
30
  schedules: List[
29
31
  Union[
@@ -454,7 +454,7 @@ attempt to "close over" outer circuit registers, or use hidden parameters inside
454
454
  :class:`Instruction`\ s can be related to other circuits to provide a decompositions by using
455
455
  their :attr:`Instruction.definition` attribute, which provides a local, one-off decomposition. This
456
456
  can be in whatever basis set of operations is most convenient to you, as long as the definitions of
457
- all contained gates have some topological order; that is, you cannot use a gate in a definition it
457
+ all contained gates have some topological order; that is, you cannot use a gate in a definition if
458
458
  its own definition depends on the parent. If the :class:`Instruction` should be considered entirely
459
459
  opaque to optimizers, its :attr:`~Instruction.definition` can be ``None``. See
460
460
  :ref:`circuit-custom-gates` for more detail.
@@ -778,6 +778,30 @@ automatically.
778
778
  Consult :ref:`the control-flow construction documentation <circuit-control-flow-methods>` for more
779
779
  information on how to build circuits with control flow.
780
780
 
781
+ Investigating commutation relations
782
+ -----------------------------------
783
+
784
+ If two operations in a circuit commute, we can swap the order in which they are applied.
785
+ This can allow for optimizations and simplifications, for example, if it allows to merge
786
+ or cancel gates:
787
+
788
+ .. code-block:: text
789
+
790
+ ┌─────────┐ ┌─────────┐ ┌─────────┐
791
+ q_0: ┤ Rz(0.5) ├──■──┤ Rz(1.2) ├──■── q_0: ┤ Rz(1.7) ├
792
+ └─────────┘┌─┴─┐└──┬───┬──┘┌─┴─┐ = └──┬───┬──┘
793
+ q_1: ───────────┤ X ├───┤ X ├───┤ X ├ q_1: ───┤ X ├───
794
+ └───┘ └───┘ └───┘ └───┘
795
+
796
+ Performing these optimizations are part of the transpiler, but the tools to investigate commutations
797
+ are available in the :class:`CommutationChecker`.
798
+
799
+ .. autosummary::
800
+ :toctree: ../stubs/
801
+
802
+ CommutationChecker
803
+
804
+
781
805
  .. _circuit-custom-gates:
782
806
 
783
807
  Creating custom instructions
@@ -1023,6 +1047,24 @@ Generating random circuits
1023
1047
  .. autofunction:: random_circuit
1024
1048
  .. currentmodule:: qiskit.circuit
1025
1049
 
1050
+ Apply Pauli twirling to a circuit
1051
+ ---------------------------------
1052
+
1053
+ There are two primary types of noise when executing quantum circuits. The first is stochastic,
1054
+ or incoherent, noise that is mainly due to the unwanted interaction between the quantum processor
1055
+ and the external environment in which it resides. The second is known as coherent error, and these
1056
+ errors arise due to imperfect control of a quantum system. This can be unwanted terms in a system
1057
+ Hamiltonian, i.e. incorrect unitary evolution, or errors from incorrect temporal control of the
1058
+ quantum system, which includes things like incorrect pulse-shapes for gates.
1059
+
1060
+ Pauli twirling is a quantum error suppression technique that uses randomization to shape coherent
1061
+ error into stochastic errors by combining the results from many random, but logically equivalent
1062
+ circuits, together. Qiskit provides a function to apply Pauli twirling to a given circuit for
1063
+ standard two qubit gates. For more details you can refer to the documentation of the function
1064
+ below:
1065
+
1066
+ .. autofunction:: qiskit.circuit.pauli_twirl_2q_gates
1067
+
1026
1068
 
1027
1069
  Exceptions
1028
1070
  ==========
@@ -1268,3 +1310,4 @@ from .controlflow import (
1268
1310
  )
1269
1311
 
1270
1312
  from .annotated_operation import AnnotatedOperation, InverseModifier, ControlModifier, PowerModifier
1313
+ from .twirling import pauli_twirl_2q_gates