qiskit 1.3.0b1__cp39-abi3-win32.whl → 1.3.0rc2__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 (360) 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 +110 -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 +154 -2
  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/primitives/utils.py +1 -1
  196. qiskit/providers/__init__.py +3 -3
  197. qiskit/providers/backend.py +12 -1
  198. qiskit/providers/backend_compat.py +23 -3
  199. qiskit/providers/basic_provider/basic_simulator.py +12 -2
  200. qiskit/providers/fake_provider/fake_pulse_backend.py +6 -1
  201. qiskit/providers/fake_provider/generic_backend_v2.py +46 -30
  202. qiskit/providers/models/pulsedefaults.py +2 -0
  203. qiskit/pulse/builder.py +59 -18
  204. qiskit/pulse/calibration_entries.py +4 -1
  205. qiskit/pulse/channels.py +2 -0
  206. qiskit/pulse/exceptions.py +2 -0
  207. qiskit/pulse/instruction_schedule_map.py +21 -6
  208. qiskit/pulse/instructions/acquire.py +2 -0
  209. qiskit/pulse/instructions/delay.py +2 -0
  210. qiskit/pulse/instructions/directives.py +8 -0
  211. qiskit/pulse/instructions/frequency.py +3 -0
  212. qiskit/pulse/instructions/instruction.py +2 -0
  213. qiskit/pulse/instructions/phase.py +3 -0
  214. qiskit/pulse/instructions/play.py +2 -0
  215. qiskit/pulse/instructions/reference.py +2 -0
  216. qiskit/pulse/instructions/snapshot.py +2 -0
  217. qiskit/pulse/library/pulse.py +2 -0
  218. qiskit/pulse/library/symbolic_pulses.py +28 -0
  219. qiskit/pulse/library/waveform.py +2 -0
  220. qiskit/pulse/macros.py +1 -1
  221. qiskit/pulse/schedule.py +12 -13
  222. qiskit/pulse/transforms/alignments.py +5 -3
  223. qiskit/pulse/transforms/dag.py +7 -0
  224. qiskit/qasm2/export.py +5 -3
  225. qiskit/qasm2/parse.py +46 -2
  226. qiskit/qasm3/__init__.py +1 -0
  227. qiskit/qasm3/ast.py +123 -15
  228. qiskit/qasm3/exporter.py +103 -77
  229. qiskit/qobj/converters/pulse_instruction.py +6 -4
  230. qiskit/qpy/__init__.py +181 -0
  231. qiskit/qpy/binary_io/circuits.py +20 -5
  232. qiskit/qpy/binary_io/schedules.py +3 -4
  233. qiskit/qpy/binary_io/value.py +310 -13
  234. qiskit/qpy/common.py +46 -2
  235. qiskit/qpy/formats.py +7 -0
  236. qiskit/qpy/interface.py +40 -4
  237. qiskit/quantum_info/__init__.py +4 -0
  238. qiskit/quantum_info/operators/channel/transformations.py +28 -21
  239. qiskit/quantum_info/operators/dihedral/dihedral.py +1 -1
  240. qiskit/quantum_info/operators/operator.py +54 -8
  241. qiskit/quantum_info/operators/symplectic/base_pauli.py +11 -19
  242. qiskit/quantum_info/operators/symplectic/clifford.py +1 -1
  243. qiskit/quantum_info/operators/symplectic/clifford_circuits.py +1 -1
  244. qiskit/quantum_info/operators/symplectic/pauli.py +2 -0
  245. qiskit/quantum_info/operators/symplectic/pauli_list.py +4 -4
  246. qiskit/quantum_info/operators/symplectic/sparse_pauli_op.py +23 -2
  247. qiskit/quantum_info/states/densitymatrix.py +5 -5
  248. qiskit/quantum_info/states/stabilizerstate.py +1 -1
  249. qiskit/quantum_info/states/statevector.py +6 -6
  250. qiskit/result/mitigation/base_readout_mitigator.py +1 -1
  251. qiskit/result/mitigation/correlated_readout_mitigator.py +9 -1
  252. qiskit/result/mitigation/local_readout_mitigator.py +9 -1
  253. qiskit/result/mitigation/utils.py +57 -0
  254. qiskit/scheduler/config.py +2 -0
  255. qiskit/scheduler/methods/basic.py +3 -0
  256. qiskit/scheduler/schedule_circuit.py +2 -0
  257. qiskit/scheduler/sequence.py +2 -0
  258. qiskit/synthesis/__init__.py +25 -0
  259. qiskit/synthesis/arithmetic/__init__.py +16 -0
  260. qiskit/synthesis/arithmetic/adders/__init__.py +17 -0
  261. qiskit/synthesis/arithmetic/adders/cdkm_ripple_carry_adder.py +154 -0
  262. qiskit/synthesis/arithmetic/adders/draper_qft_adder.py +103 -0
  263. qiskit/synthesis/arithmetic/adders/vbe_ripple_carry_adder.py +161 -0
  264. qiskit/synthesis/arithmetic/multipliers/__init__.py +16 -0
  265. qiskit/synthesis/arithmetic/multipliers/hrs_cumulative_multiplier.py +102 -0
  266. qiskit/synthesis/arithmetic/multipliers/rg_qft_multiplier.py +99 -0
  267. qiskit/synthesis/clifford/clifford_decompose_bm.py +1 -2
  268. qiskit/synthesis/clifford/clifford_decompose_greedy.py +3 -2
  269. qiskit/synthesis/clifford/clifford_decompose_layers.py +2 -1
  270. qiskit/synthesis/evolution/__init__.py +1 -0
  271. qiskit/synthesis/evolution/lie_trotter.py +16 -42
  272. qiskit/synthesis/evolution/pauli_network.py +80 -0
  273. qiskit/synthesis/evolution/product_formula.py +165 -238
  274. qiskit/synthesis/evolution/qdrift.py +36 -29
  275. qiskit/synthesis/evolution/suzuki_trotter.py +87 -27
  276. qiskit/synthesis/multi_controlled/__init__.py +1 -0
  277. qiskit/synthesis/multi_controlled/mcmt_vchain.py +52 -0
  278. qiskit/synthesis/qft/qft_decompose_full.py +19 -1
  279. qiskit/synthesis/qft/qft_decompose_lnn.py +2 -1
  280. qiskit/synthesis/stabilizer/stabilizer_decompose.py +2 -1
  281. qiskit/synthesis/two_qubit/two_qubit_decompose.py +4 -63
  282. qiskit/synthesis/unitary/qsd.py +5 -5
  283. qiskit/transpiler/__init__.py +21 -14
  284. qiskit/transpiler/basepasses.py +1 -1
  285. qiskit/transpiler/passes/__init__.py +2 -0
  286. qiskit/transpiler/passes/basis/basis_translator.py +9 -565
  287. qiskit/transpiler/passes/basis/decompose.py +45 -12
  288. qiskit/transpiler/passes/basis/unroll_3q_or_more.py +1 -1
  289. qiskit/transpiler/passes/basis/unroll_custom_definitions.py +1 -1
  290. qiskit/transpiler/passes/calibration/pulse_gate.py +4 -2
  291. qiskit/transpiler/passes/calibration/rx_builder.py +11 -7
  292. qiskit/transpiler/passes/calibration/rzx_builder.py +46 -30
  293. qiskit/transpiler/passes/layout/disjoint_utils.py +15 -13
  294. qiskit/transpiler/passes/layout/sabre_layout.py +7 -2
  295. qiskit/transpiler/passes/layout/sabre_pre_layout.py +5 -0
  296. qiskit/transpiler/passes/optimization/__init__.py +1 -0
  297. qiskit/transpiler/passes/optimization/collect_cliffords.py +19 -3
  298. qiskit/transpiler/passes/optimization/collect_linear_functions.py +1 -1
  299. qiskit/transpiler/passes/optimization/collect_multiqubit_blocks.py +2 -2
  300. qiskit/transpiler/passes/optimization/commutative_inverse_cancellation.py +1 -1
  301. qiskit/transpiler/passes/optimization/consolidate_blocks.py +48 -131
  302. qiskit/transpiler/passes/optimization/echo_rzx_weyl_decomposition.py +4 -2
  303. qiskit/transpiler/passes/optimization/elide_permutations.py +9 -32
  304. qiskit/transpiler/passes/optimization/optimize_1q_decomposition.py +5 -11
  305. qiskit/transpiler/passes/optimization/optimize_1q_gates.py +1 -1
  306. qiskit/transpiler/passes/optimization/optimize_swap_before_measure.py +1 -1
  307. qiskit/transpiler/passes/optimization/remove_identity_equiv.py +69 -0
  308. qiskit/transpiler/passes/optimization/template_matching/backward_match.py +5 -5
  309. qiskit/transpiler/passes/optimization/template_matching/forward_match.py +4 -4
  310. qiskit/transpiler/passes/optimization/template_matching/template_substitution.py +2 -2
  311. qiskit/transpiler/passes/routing/commuting_2q_gate_routing/commuting_2q_gate_router.py +1 -1
  312. qiskit/transpiler/passes/routing/commuting_2q_gate_routing/swap_strategy.py +1 -1
  313. qiskit/transpiler/passes/routing/sabre_swap.py +7 -3
  314. qiskit/transpiler/passes/routing/star_prerouting.py +2 -2
  315. qiskit/transpiler/passes/scheduling/alap.py +1 -1
  316. qiskit/transpiler/passes/scheduling/alignments/align_measures.py +2 -2
  317. qiskit/transpiler/passes/scheduling/alignments/check_durations.py +1 -1
  318. qiskit/transpiler/passes/scheduling/alignments/pulse_gate_validation.py +2 -0
  319. qiskit/transpiler/passes/scheduling/alignments/reschedule.py +2 -2
  320. qiskit/transpiler/passes/scheduling/asap.py +1 -1
  321. qiskit/transpiler/passes/scheduling/base_scheduler.py +14 -12
  322. qiskit/transpiler/passes/scheduling/dynamical_decoupling.py +9 -4
  323. qiskit/transpiler/passes/scheduling/padding/base_padding.py +1 -1
  324. qiskit/transpiler/passes/scheduling/padding/dynamical_decoupling.py +16 -5
  325. qiskit/transpiler/passes/scheduling/padding/pad_delay.py +4 -1
  326. qiskit/transpiler/passes/scheduling/scheduling/base_scheduler.py +6 -2
  327. qiskit/transpiler/passes/scheduling/time_unit_conversion.py +9 -4
  328. qiskit/transpiler/passes/synthesis/high_level_synthesis.py +262 -99
  329. qiskit/transpiler/passes/synthesis/hls_plugins.py +637 -7
  330. qiskit/transpiler/passes/synthesis/solovay_kitaev_synthesis.py +3 -3
  331. qiskit/transpiler/passes/synthesis/unitary_synthesis.py +55 -34
  332. qiskit/transpiler/passes/utils/barrier_before_final_measurements.py +2 -56
  333. qiskit/transpiler/passes/utils/convert_conditions_to_if_ops.py +5 -0
  334. qiskit/transpiler/passes/utils/gate_direction.py +12 -275
  335. qiskit/transpiler/passes/utils/gates_basis.py +7 -30
  336. qiskit/transpiler/passes/utils/merge_adjacent_barriers.py +2 -1
  337. qiskit/transpiler/passmanager_config.py +22 -4
  338. qiskit/transpiler/preset_passmanagers/builtin_plugins.py +40 -14
  339. qiskit/transpiler/preset_passmanagers/common.py +5 -3
  340. qiskit/transpiler/preset_passmanagers/generate_preset_pass_manager.py +125 -42
  341. qiskit/transpiler/preset_passmanagers/plugin.py +1 -1
  342. qiskit/transpiler/target.py +74 -16
  343. qiskit/utils/deprecate_pulse.py +119 -0
  344. qiskit/visualization/circuit/_utils.py +2 -2
  345. qiskit/visualization/circuit/circuit_visualization.py +3 -2
  346. qiskit/visualization/circuit/matplotlib.py +1 -1
  347. qiskit/visualization/dag_visualization.py +1 -1
  348. qiskit/visualization/pass_manager_visualization.py +3 -14
  349. qiskit/visualization/pulse_v2/interface.py +3 -1
  350. qiskit/visualization/timeline/core.py +25 -2
  351. qiskit/visualization/timeline/interface.py +12 -0
  352. {qiskit-1.3.0b1.dist-info → qiskit-1.3.0rc2.dist-info}/METADATA +9 -8
  353. {qiskit-1.3.0b1.dist-info → qiskit-1.3.0rc2.dist-info}/RECORD +357 -346
  354. {qiskit-1.3.0b1.dist-info → qiskit-1.3.0rc2.dist-info}/WHEEL +1 -1
  355. {qiskit-1.3.0b1.dist-info → qiskit-1.3.0rc2.dist-info}/entry_points.txt +19 -0
  356. qiskit/circuit/library/data_preparation/zz_feature_map.py +0 -118
  357. qiskit/synthesis/two_qubit/weyl.py +0 -97
  358. qiskit/transpiler/passes/synthesis/qubit_tracker.py +0 -132
  359. {qiskit-1.3.0b1.dist-info → qiskit-1.3.0rc2.dist-info}/LICENSE.txt +0 -0
  360. {qiskit-1.3.0b1.dist-info → qiskit-1.3.0rc2.dist-info}/top_level.txt +0 -0
@@ -47,6 +47,7 @@ on the zeroth qubit of the first cx but the zeroth qubit of the second gate over
47
47
  first cx.
48
48
  """
49
49
 
50
+
50
51
  standard_gates_commutations = {
51
52
  ("id", "id"): True,
52
53
  ("id", "sx"): True,
@@ -70,6 +71,10 @@ standard_gates_commutations = {
70
71
  ("id", "iswap"): True,
71
72
  ("id", "sxdg"): True,
72
73
  ("id", "tdg"): True,
74
+ ("id", "rxx"): True,
75
+ ("id", "ryy"): True,
76
+ ("id", "rzz"): True,
77
+ ("id", "rzx"): True,
73
78
  ("sx", "sx"): True,
74
79
  ("sx", "cx"): {
75
80
  (0,): False,
@@ -109,6 +114,13 @@ standard_gates_commutations = {
109
114
  ("sx", "iswap"): False,
110
115
  ("sx", "sxdg"): True,
111
116
  ("sx", "tdg"): False,
117
+ ("sx", "rxx"): True,
118
+ ("sx", "ryy"): False,
119
+ ("sx", "rzz"): False,
120
+ ("sx", "rzx"): {
121
+ (0,): False,
122
+ (1,): True,
123
+ },
112
124
  ("x", "id"): True,
113
125
  ("x", "sx"): True,
114
126
  ("x", "x"): True,
@@ -152,6 +164,13 @@ standard_gates_commutations = {
152
164
  ("x", "tdg"): False,
153
165
  ("x", "y"): False,
154
166
  ("x", "z"): False,
167
+ ("x", "rxx"): True,
168
+ ("x", "ryy"): False,
169
+ ("x", "rzz"): False,
170
+ ("x", "rzx"): {
171
+ (0,): False,
172
+ (1,): True,
173
+ },
155
174
  ("cx", "cx"): {
156
175
  (0, 1): True,
157
176
  (0, None): True,
@@ -303,6 +322,31 @@ standard_gates_commutations = {
303
322
  },
304
323
  ("cx", "swap"): False,
305
324
  ("cx", "iswap"): False,
325
+ ("cx", "rxx"): {
326
+ (0, 1): False,
327
+ (0, None): False,
328
+ (1, 0): False,
329
+ (1, None): False,
330
+ (None, 0): True,
331
+ (None, 1): True,
332
+ },
333
+ ("cx", "ryy"): False,
334
+ ("cx", "rzz"): {
335
+ (0, 1): False,
336
+ (0, None): True,
337
+ (1, 0): False,
338
+ (1, None): True,
339
+ (None, 0): False,
340
+ (None, 1): False,
341
+ },
342
+ ("cx", "rzx"): {
343
+ (0, 1): True,
344
+ (0, None): True,
345
+ (1, 0): False,
346
+ (1, None): False,
347
+ (None, 0): False,
348
+ (None, 1): True,
349
+ },
306
350
  ("c3sx", "c3sx"): {
307
351
  (0, 1, 2, 3): True,
308
352
  (0, 1, 2, None): True,
@@ -1029,6 +1073,10 @@ standard_gates_commutations = {
1029
1073
  ("dcx", "csdg"): False,
1030
1074
  ("dcx", "swap"): False,
1031
1075
  ("dcx", "iswap"): False,
1076
+ ("dcx", "rxx"): False,
1077
+ ("dcx", "ryy"): False,
1078
+ ("dcx", "rzz"): False,
1079
+ ("dcx", "rzx"): False,
1032
1080
  ("ch", "cx"): {
1033
1081
  (0, 1): False,
1034
1082
  (0, None): True,
@@ -1189,6 +1237,24 @@ standard_gates_commutations = {
1189
1237
  },
1190
1238
  ("ch", "swap"): False,
1191
1239
  ("ch", "iswap"): False,
1240
+ ("ch", "rxx"): False,
1241
+ ("ch", "ryy"): False,
1242
+ ("ch", "rzz"): {
1243
+ (0, 1): False,
1244
+ (0, None): True,
1245
+ (1, 0): False,
1246
+ (1, None): True,
1247
+ (None, 0): False,
1248
+ (None, 1): False,
1249
+ },
1250
+ ("ch", "rzx"): {
1251
+ (0, 1): False,
1252
+ (0, None): True,
1253
+ (1, 0): False,
1254
+ (1, None): False,
1255
+ (None, 0): False,
1256
+ (None, 1): False,
1257
+ },
1192
1258
  ("cswap", "c3sx"): {
1193
1259
  (0, 1, 2): True,
1194
1260
  (0, 1, 3): False,
@@ -1499,6 +1565,31 @@ standard_gates_commutations = {
1499
1565
  },
1500
1566
  ("csx", "swap"): False,
1501
1567
  ("csx", "iswap"): False,
1568
+ ("csx", "rxx"): {
1569
+ (0, 1): False,
1570
+ (0, None): False,
1571
+ (1, 0): False,
1572
+ (1, None): False,
1573
+ (None, 0): True,
1574
+ (None, 1): True,
1575
+ },
1576
+ ("csx", "ryy"): False,
1577
+ ("csx", "rzz"): {
1578
+ (0, 1): False,
1579
+ (0, None): True,
1580
+ (1, 0): False,
1581
+ (1, None): True,
1582
+ (None, 0): False,
1583
+ (None, 1): False,
1584
+ },
1585
+ ("csx", "rzx"): {
1586
+ (0, 1): True,
1587
+ (0, None): True,
1588
+ (1, 0): False,
1589
+ (1, None): False,
1590
+ (None, 0): False,
1591
+ (None, 1): True,
1592
+ },
1502
1593
  ("cy", "c3sx"): {
1503
1594
  (0, 1): False,
1504
1595
  (0, 2): False,
@@ -1635,6 +1726,31 @@ standard_gates_commutations = {
1635
1726
  },
1636
1727
  ("cy", "swap"): False,
1637
1728
  ("cy", "iswap"): False,
1729
+ ("cy", "rxx"): False,
1730
+ ("cy", "ryy"): {
1731
+ (0, 1): False,
1732
+ (0, None): False,
1733
+ (1, 0): False,
1734
+ (1, None): False,
1735
+ (None, 0): True,
1736
+ (None, 1): True,
1737
+ },
1738
+ ("cy", "rzz"): {
1739
+ (0, 1): False,
1740
+ (0, None): True,
1741
+ (1, 0): False,
1742
+ (1, None): True,
1743
+ (None, 0): False,
1744
+ (None, 1): False,
1745
+ },
1746
+ ("cy", "rzx"): {
1747
+ (0, 1): False,
1748
+ (0, None): True,
1749
+ (1, 0): False,
1750
+ (1, None): False,
1751
+ (None, 0): False,
1752
+ (None, 1): False,
1753
+ },
1638
1754
  ("cz", "c3sx"): {
1639
1755
  (0, 1): True,
1640
1756
  (0, 2): True,
@@ -1750,6 +1866,17 @@ standard_gates_commutations = {
1750
1866
  (None, 0): False,
1751
1867
  (None, 1): False,
1752
1868
  },
1869
+ ("cz", "rxx"): False,
1870
+ ("cz", "ryy"): False,
1871
+ ("cz", "rzz"): True,
1872
+ ("cz", "rzx"): {
1873
+ (0, 1): False,
1874
+ (0, None): True,
1875
+ (1, 0): False,
1876
+ (1, None): False,
1877
+ (None, 0): True,
1878
+ (None, 1): False,
1879
+ },
1753
1880
  ("ccz", "c3sx"): {
1754
1881
  (0, 1, 2): True,
1755
1882
  (0, 1, 3): False,
@@ -2000,6 +2127,10 @@ standard_gates_commutations = {
2000
2127
  ("h", "tdg"): False,
2001
2128
  ("h", "y"): False,
2002
2129
  ("h", "z"): False,
2130
+ ("h", "rxx"): False,
2131
+ ("h", "ryy"): False,
2132
+ ("h", "rzz"): False,
2133
+ ("h", "rzx"): False,
2003
2134
  ("rccx", "c3sx"): {
2004
2135
  (0, 1, 2): False,
2005
2136
  (0, 1, 3): False,
@@ -2479,6 +2610,24 @@ standard_gates_commutations = {
2479
2610
  ("ecr", "csdg"): False,
2480
2611
  ("ecr", "swap"): False,
2481
2612
  ("ecr", "iswap"): False,
2613
+ ("ecr", "rxx"): {
2614
+ (0, 1): False,
2615
+ (0, None): False,
2616
+ (1, 0): False,
2617
+ (1, None): False,
2618
+ (None, 0): True,
2619
+ (None, 1): True,
2620
+ },
2621
+ ("ecr", "ryy"): False,
2622
+ ("ecr", "rzz"): False,
2623
+ ("ecr", "rzx"): {
2624
+ (0, 1): False,
2625
+ (0, None): False,
2626
+ (1, 0): True,
2627
+ (1, None): False,
2628
+ (None, 0): False,
2629
+ (None, 1): True,
2630
+ },
2482
2631
  ("s", "id"): True,
2483
2632
  ("s", "sx"): False,
2484
2633
  ("s", "x"): False,
@@ -2540,6 +2689,13 @@ standard_gates_commutations = {
2540
2689
  ("s", "tdg"): True,
2541
2690
  ("s", "y"): False,
2542
2691
  ("s", "z"): True,
2692
+ ("s", "rxx"): False,
2693
+ ("s", "ryy"): False,
2694
+ ("s", "rzz"): True,
2695
+ ("s", "rzx"): {
2696
+ (0,): True,
2697
+ (1,): False,
2698
+ },
2543
2699
  ("sdg", "cx"): {
2544
2700
  (0,): True,
2545
2701
  (1,): False,
@@ -2594,6 +2750,13 @@ standard_gates_commutations = {
2594
2750
  ("sdg", "iswap"): False,
2595
2751
  ("sdg", "sxdg"): False,
2596
2752
  ("sdg", "tdg"): True,
2753
+ ("sdg", "rxx"): False,
2754
+ ("sdg", "ryy"): False,
2755
+ ("sdg", "rzz"): True,
2756
+ ("sdg", "rzx"): {
2757
+ (0,): True,
2758
+ (1,): False,
2759
+ },
2597
2760
  ("cs", "cx"): {
2598
2761
  (0, 1): False,
2599
2762
  (0, None): True,
@@ -2726,6 +2889,17 @@ standard_gates_commutations = {
2726
2889
  (None, 0): False,
2727
2890
  (None, 1): False,
2728
2891
  },
2892
+ ("cs", "rxx"): False,
2893
+ ("cs", "ryy"): False,
2894
+ ("cs", "rzz"): True,
2895
+ ("cs", "rzx"): {
2896
+ (0, 1): False,
2897
+ (0, None): True,
2898
+ (1, 0): False,
2899
+ (1, None): False,
2900
+ (None, 0): True,
2901
+ (None, 1): False,
2902
+ },
2729
2903
  ("csdg", "c3sx"): {
2730
2904
  (0, 1): True,
2731
2905
  (0, 2): True,
@@ -3064,6 +3238,13 @@ standard_gates_commutations = {
3064
3238
  ("sxdg", "swap"): False,
3065
3239
  ("sxdg", "iswap"): False,
3066
3240
  ("sxdg", "sxdg"): True,
3241
+ ("sxdg", "rxx"): True,
3242
+ ("sxdg", "ryy"): False,
3243
+ ("sxdg", "rzz"): False,
3244
+ ("sxdg", "rzx"): {
3245
+ (0,): False,
3246
+ (1,): True,
3247
+ },
3067
3248
  ("t", "id"): True,
3068
3249
  ("t", "sx"): False,
3069
3250
  ("t", "x"): False,
@@ -3124,6 +3305,13 @@ standard_gates_commutations = {
3124
3305
  ("t", "tdg"): True,
3125
3306
  ("t", "y"): False,
3126
3307
  ("t", "z"): True,
3308
+ ("t", "rxx"): False,
3309
+ ("t", "ryy"): False,
3310
+ ("t", "rzz"): True,
3311
+ ("t", "rzx"): {
3312
+ (0,): True,
3313
+ (1,): False,
3314
+ },
3127
3315
  ("tdg", "cx"): {
3128
3316
  (0,): True,
3129
3317
  (1,): False,
@@ -3177,6 +3365,13 @@ standard_gates_commutations = {
3177
3365
  ("tdg", "iswap"): False,
3178
3366
  ("tdg", "sxdg"): False,
3179
3367
  ("tdg", "tdg"): True,
3368
+ ("tdg", "rxx"): False,
3369
+ ("tdg", "ryy"): False,
3370
+ ("tdg", "rzz"): True,
3371
+ ("tdg", "rzx"): {
3372
+ (0,): True,
3373
+ (1,): False,
3374
+ },
3180
3375
  ("y", "id"): True,
3181
3376
  ("y", "sx"): False,
3182
3377
  ("y", "cx"): False,
@@ -3204,6 +3399,10 @@ standard_gates_commutations = {
3204
3399
  ("y", "tdg"): False,
3205
3400
  ("y", "y"): True,
3206
3401
  ("y", "z"): False,
3402
+ ("y", "rxx"): False,
3403
+ ("y", "ryy"): True,
3404
+ ("y", "rzz"): False,
3405
+ ("y", "rzx"): False,
3207
3406
  ("z", "id"): True,
3208
3407
  ("z", "sx"): False,
3209
3408
  ("z", "cx"): {
@@ -3261,4 +3460,390 @@ standard_gates_commutations = {
3261
3460
  ("z", "sxdg"): False,
3262
3461
  ("z", "tdg"): True,
3263
3462
  ("z", "z"): True,
3463
+ ("z", "rxx"): False,
3464
+ ("z", "ryy"): False,
3465
+ ("z", "rzz"): True,
3466
+ ("z", "rzx"): {
3467
+ (0,): True,
3468
+ (1,): False,
3469
+ },
3470
+ ("rxx", "c3sx"): {
3471
+ (0, 1): False,
3472
+ (0, 2): False,
3473
+ (0, 3): False,
3474
+ (0, None): False,
3475
+ (1, 0): False,
3476
+ (1, 2): False,
3477
+ (1, 3): False,
3478
+ (1, None): False,
3479
+ (2, 0): False,
3480
+ (2, 1): False,
3481
+ (2, 3): False,
3482
+ (2, None): False,
3483
+ (3, 0): False,
3484
+ (3, 1): False,
3485
+ (3, 2): False,
3486
+ (3, None): True,
3487
+ (None, 0): False,
3488
+ (None, 1): False,
3489
+ (None, 2): False,
3490
+ (None, 3): True,
3491
+ },
3492
+ ("rxx", "ccx"): {
3493
+ (0, 1): False,
3494
+ (0, 2): False,
3495
+ (0, None): False,
3496
+ (1, 0): False,
3497
+ (1, 2): False,
3498
+ (1, None): False,
3499
+ (2, 0): False,
3500
+ (2, 1): False,
3501
+ (2, None): True,
3502
+ (None, 0): False,
3503
+ (None, 1): False,
3504
+ (None, 2): True,
3505
+ },
3506
+ ("rxx", "cswap"): {
3507
+ (0, 1): False,
3508
+ (0, 2): False,
3509
+ (0, None): False,
3510
+ (1, 0): False,
3511
+ (1, 2): True,
3512
+ (1, None): False,
3513
+ (2, 0): False,
3514
+ (2, 1): True,
3515
+ (2, None): False,
3516
+ (None, 0): False,
3517
+ (None, 1): False,
3518
+ (None, 2): False,
3519
+ },
3520
+ ("rxx", "ccz"): False,
3521
+ ("rxx", "rccx"): False,
3522
+ ("rxx", "rcccx"): False,
3523
+ ("rxx", "csdg"): False,
3524
+ ("rxx", "swap"): {
3525
+ (0, 1): True,
3526
+ (0, None): False,
3527
+ (1, 0): True,
3528
+ (1, None): False,
3529
+ (None, 0): False,
3530
+ (None, 1): False,
3531
+ },
3532
+ ("rxx", "iswap"): {
3533
+ (0, 1): True,
3534
+ (0, None): False,
3535
+ (1, 0): True,
3536
+ (1, None): False,
3537
+ (None, 0): False,
3538
+ (None, 1): False,
3539
+ },
3540
+ ("rxx", "rxx"): True,
3541
+ ("rxx", "ryy"): {
3542
+ (0, 1): True,
3543
+ (0, None): False,
3544
+ (1, 0): True,
3545
+ (1, None): False,
3546
+ (None, 0): False,
3547
+ (None, 1): False,
3548
+ },
3549
+ ("rxx", "rzz"): {
3550
+ (0, 1): True,
3551
+ (0, None): False,
3552
+ (1, 0): True,
3553
+ (1, None): False,
3554
+ (None, 0): False,
3555
+ (None, 1): False,
3556
+ },
3557
+ ("rxx", "rzx"): {
3558
+ (0, 1): False,
3559
+ (0, None): False,
3560
+ (1, 0): False,
3561
+ (1, None): True,
3562
+ (None, 0): False,
3563
+ (None, 1): True,
3564
+ },
3565
+ ("ryy", "c3sx"): False,
3566
+ ("ryy", "ccx"): False,
3567
+ ("ryy", "cswap"): {
3568
+ (0, 1): False,
3569
+ (0, 2): False,
3570
+ (0, None): False,
3571
+ (1, 0): False,
3572
+ (1, 2): True,
3573
+ (1, None): False,
3574
+ (2, 0): False,
3575
+ (2, 1): True,
3576
+ (2, None): False,
3577
+ (None, 0): False,
3578
+ (None, 1): False,
3579
+ (None, 2): False,
3580
+ },
3581
+ ("ryy", "ccz"): False,
3582
+ ("ryy", "rccx"): False,
3583
+ ("ryy", "rcccx"): False,
3584
+ ("ryy", "csdg"): False,
3585
+ ("ryy", "swap"): {
3586
+ (0, 1): True,
3587
+ (0, None): False,
3588
+ (1, 0): True,
3589
+ (1, None): False,
3590
+ (None, 0): False,
3591
+ (None, 1): False,
3592
+ },
3593
+ ("ryy", "iswap"): {
3594
+ (0, 1): True,
3595
+ (0, None): False,
3596
+ (1, 0): True,
3597
+ (1, None): False,
3598
+ (None, 0): False,
3599
+ (None, 1): False,
3600
+ },
3601
+ ("ryy", "ryy"): True,
3602
+ ("ryy", "rzz"): {
3603
+ (0, 1): True,
3604
+ (0, None): False,
3605
+ (1, 0): True,
3606
+ (1, None): False,
3607
+ (None, 0): False,
3608
+ (None, 1): False,
3609
+ },
3610
+ ("ryy", "rzx"): {
3611
+ (0, 1): True,
3612
+ (0, None): False,
3613
+ (1, 0): True,
3614
+ (1, None): False,
3615
+ (None, 0): False,
3616
+ (None, 1): False,
3617
+ },
3618
+ ("rzz", "c3sx"): {
3619
+ (0, 1): True,
3620
+ (0, 2): True,
3621
+ (0, 3): False,
3622
+ (0, None): True,
3623
+ (1, 0): True,
3624
+ (1, 2): True,
3625
+ (1, 3): False,
3626
+ (1, None): True,
3627
+ (2, 0): True,
3628
+ (2, 1): True,
3629
+ (2, 3): False,
3630
+ (2, None): True,
3631
+ (3, 0): False,
3632
+ (3, 1): False,
3633
+ (3, 2): False,
3634
+ (3, None): False,
3635
+ (None, 0): True,
3636
+ (None, 1): True,
3637
+ (None, 2): True,
3638
+ (None, 3): False,
3639
+ },
3640
+ ("rzz", "ccx"): {
3641
+ (0, 1): True,
3642
+ (0, 2): False,
3643
+ (0, None): True,
3644
+ (1, 0): True,
3645
+ (1, 2): False,
3646
+ (1, None): True,
3647
+ (2, 0): False,
3648
+ (2, 1): False,
3649
+ (2, None): False,
3650
+ (None, 0): True,
3651
+ (None, 1): True,
3652
+ (None, 2): False,
3653
+ },
3654
+ ("rzz", "cswap"): {
3655
+ (0, 1): False,
3656
+ (0, 2): False,
3657
+ (0, None): True,
3658
+ (1, 0): False,
3659
+ (1, 2): True,
3660
+ (1, None): False,
3661
+ (2, 0): False,
3662
+ (2, 1): True,
3663
+ (2, None): False,
3664
+ (None, 0): True,
3665
+ (None, 1): False,
3666
+ (None, 2): False,
3667
+ },
3668
+ ("rzz", "ccz"): True,
3669
+ ("rzz", "rccx"): {
3670
+ (0, 1): True,
3671
+ (0, 2): False,
3672
+ (0, None): True,
3673
+ (1, 0): True,
3674
+ (1, 2): False,
3675
+ (1, None): True,
3676
+ (2, 0): False,
3677
+ (2, 1): False,
3678
+ (2, None): False,
3679
+ (None, 0): True,
3680
+ (None, 1): True,
3681
+ (None, 2): False,
3682
+ },
3683
+ ("rzz", "rcccx"): {
3684
+ (0, 1): True,
3685
+ (0, 2): True,
3686
+ (0, 3): False,
3687
+ (0, None): True,
3688
+ (1, 0): True,
3689
+ (1, 2): True,
3690
+ (1, 3): False,
3691
+ (1, None): True,
3692
+ (2, 0): True,
3693
+ (2, 1): True,
3694
+ (2, 3): False,
3695
+ (2, None): True,
3696
+ (3, 0): False,
3697
+ (3, 1): False,
3698
+ (3, 2): False,
3699
+ (3, None): False,
3700
+ (None, 0): True,
3701
+ (None, 1): True,
3702
+ (None, 2): True,
3703
+ (None, 3): False,
3704
+ },
3705
+ ("rzz", "csdg"): True,
3706
+ ("rzz", "swap"): {
3707
+ (0, 1): True,
3708
+ (0, None): False,
3709
+ (1, 0): True,
3710
+ (1, None): False,
3711
+ (None, 0): False,
3712
+ (None, 1): False,
3713
+ },
3714
+ ("rzz", "iswap"): {
3715
+ (0, 1): True,
3716
+ (0, None): False,
3717
+ (1, 0): True,
3718
+ (1, None): False,
3719
+ (None, 0): False,
3720
+ (None, 1): False,
3721
+ },
3722
+ ("rzz", "rzz"): True,
3723
+ ("rzx", "c3sx"): {
3724
+ (0, 1): False,
3725
+ (0, 2): False,
3726
+ (0, 3): True,
3727
+ (0, None): True,
3728
+ (1, 0): False,
3729
+ (1, 2): False,
3730
+ (1, 3): True,
3731
+ (1, None): True,
3732
+ (2, 0): False,
3733
+ (2, 1): False,
3734
+ (2, 3): True,
3735
+ (2, None): True,
3736
+ (3, 0): False,
3737
+ (3, 1): False,
3738
+ (3, 2): False,
3739
+ (3, None): False,
3740
+ (None, 0): False,
3741
+ (None, 1): False,
3742
+ (None, 2): False,
3743
+ (None, 3): True,
3744
+ },
3745
+ ("rzx", "ccx"): {
3746
+ (0, 1): False,
3747
+ (0, 2): True,
3748
+ (0, None): True,
3749
+ (1, 0): False,
3750
+ (1, 2): True,
3751
+ (1, None): True,
3752
+ (2, 0): False,
3753
+ (2, 1): False,
3754
+ (2, None): False,
3755
+ (None, 0): False,
3756
+ (None, 1): False,
3757
+ (None, 2): True,
3758
+ },
3759
+ ("rzx", "cswap"): {
3760
+ (0, 1): False,
3761
+ (0, 2): False,
3762
+ (0, None): True,
3763
+ (1, 0): False,
3764
+ (1, 2): False,
3765
+ (1, None): False,
3766
+ (2, 0): False,
3767
+ (2, 1): False,
3768
+ (2, None): False,
3769
+ (None, 0): False,
3770
+ (None, 1): False,
3771
+ (None, 2): False,
3772
+ },
3773
+ ("rzx", "ccz"): {
3774
+ (0, 1): False,
3775
+ (0, 2): False,
3776
+ (0, None): True,
3777
+ (1, 0): False,
3778
+ (1, 2): False,
3779
+ (1, None): True,
3780
+ (2, 0): False,
3781
+ (2, 1): False,
3782
+ (2, None): True,
3783
+ (None, 0): False,
3784
+ (None, 1): False,
3785
+ (None, 2): False,
3786
+ },
3787
+ ("rzx", "rccx"): {
3788
+ (0, 1): False,
3789
+ (0, 2): False,
3790
+ (0, None): True,
3791
+ (1, 0): False,
3792
+ (1, 2): False,
3793
+ (1, None): True,
3794
+ (2, 0): False,
3795
+ (2, 1): False,
3796
+ (2, None): False,
3797
+ (None, 0): False,
3798
+ (None, 1): False,
3799
+ (None, 2): False,
3800
+ },
3801
+ ("rzx", "rcccx"): {
3802
+ (0, 1): False,
3803
+ (0, 2): False,
3804
+ (0, 3): False,
3805
+ (0, None): True,
3806
+ (1, 0): False,
3807
+ (1, 2): False,
3808
+ (1, 3): False,
3809
+ (1, None): True,
3810
+ (2, 0): False,
3811
+ (2, 1): False,
3812
+ (2, 3): False,
3813
+ (2, None): True,
3814
+ (3, 0): False,
3815
+ (3, 1): False,
3816
+ (3, 2): False,
3817
+ (3, None): False,
3818
+ (None, 0): False,
3819
+ (None, 1): False,
3820
+ (None, 2): False,
3821
+ (None, 3): False,
3822
+ },
3823
+ ("rzx", "csdg"): {
3824
+ (0, 1): False,
3825
+ (0, None): True,
3826
+ (1, 0): False,
3827
+ (1, None): True,
3828
+ (None, 0): False,
3829
+ (None, 1): False,
3830
+ },
3831
+ ("rzx", "swap"): False,
3832
+ ("rzx", "iswap"): False,
3833
+ ("rzx", "rzz"): {
3834
+ (0, 1): False,
3835
+ (0, None): True,
3836
+ (1, 0): False,
3837
+ (1, None): True,
3838
+ (None, 0): False,
3839
+ (None, 1): False,
3840
+ },
3841
+ ("rzx", "rzx"): {
3842
+ (0, 1): True,
3843
+ (0, None): True,
3844
+ (1, 0): True,
3845
+ (1, None): False,
3846
+ (None, 0): False,
3847
+ (None, 1): True,
3848
+ },
3264
3849
  }