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
@@ -35,7 +35,7 @@ class UGate(Gate):
35
35
 
36
36
  **Circuit symbol:**
37
37
 
38
- .. code-block:: text
38
+ .. parsed-literal::
39
39
 
40
40
  ┌──────────┐
41
41
  q_0: ┤ U(ϴ,φ,λ) ├
@@ -218,7 +218,7 @@ class CUGate(ControlledGate):
218
218
 
219
219
  **Circuit symbol:**
220
220
 
221
- .. code-block:: text
221
+ .. parsed-literal::
222
222
 
223
223
  q_0: ──────■──────
224
224
  ┌─────┴──────┐
@@ -251,8 +251,7 @@ class CUGate(ControlledGate):
251
251
  which in our case would be q_1. Thus a textbook matrix for this
252
252
  gate will be:
253
253
 
254
- .. code-block:: text
255
-
254
+ .. parsed-literal::
256
255
  ┌────────────┐
257
256
  q_0: ┤ U(ϴ,φ,λ,γ) ├
258
257
  └─────┬──────┘
@@ -394,10 +393,3 @@ class CUGate(ControlledGate):
394
393
  out = super().__deepcopy__(memo)
395
394
  out._params = _copy.deepcopy(out._params, memo)
396
395
  return out
397
-
398
- def __eq__(self, other):
399
- return (
400
- isinstance(other, CUGate)
401
- and self.ctrl_state == other.ctrl_state
402
- and self._compare_parameters(other)
403
- )
@@ -34,47 +34,47 @@ class U1Gate(Gate):
34
34
 
35
35
  .. math::
36
36
 
37
- U1(\theta) = P(\theta)= U(0,0,\theta)
37
+ U1(\lambda) = P(\lambda)= U(0,0,\lambda)
38
38
 
39
39
  .. code-block:: python
40
40
 
41
41
  circuit = QuantumCircuit(1)
42
- circuit.p(lambda, 0) # or circuit.u(0, 0, lambda, 0)
42
+ circuit.p(lambda, 0) # or circuit.u(0, 0, lambda)
43
43
 
44
44
 
45
45
 
46
46
 
47
47
  **Circuit symbol:**
48
48
 
49
- .. code-block:: text
49
+ .. parsed-literal::
50
50
 
51
51
  ┌───────┐
52
- q_0: ┤ U1(θ) ├
52
+ q_0: ┤ U1(λ) ├
53
53
  └───────┘
54
54
 
55
55
  **Matrix Representation:**
56
56
 
57
57
  .. math::
58
58
 
59
- U1(\theta) =
59
+ U1(\lambda) =
60
60
  \begin{pmatrix}
61
61
  1 & 0 \\
62
- 0 & e^{i\theta}
62
+ 0 & e^{i\lambda}
63
63
  \end{pmatrix}
64
64
 
65
65
  **Examples:**
66
66
 
67
67
  .. math::
68
68
 
69
- U1(\theta = \pi) = Z
69
+ U1(\lambda = \pi) = Z
70
70
 
71
71
  .. math::
72
72
 
73
- U1(\theta = \pi/2) = S
73
+ U1(\lambda = \pi/2) = S
74
74
 
75
75
  .. math::
76
76
 
77
- U1(\theta = \pi/4) = T
77
+ U1(\lambda = \pi/4) = T
78
78
 
79
79
  .. seealso::
80
80
 
@@ -83,7 +83,7 @@ class U1Gate(Gate):
83
83
 
84
84
  .. math::
85
85
 
86
- U1(\theta) = e^{i{\theta}/2} RZ(\theta)
86
+ U1(\lambda) = e^{i{\lambda}/2} RZ(\lambda)
87
87
 
88
88
  :class:`~qiskit.circuit.library.standard_gates.U3Gate`:
89
89
  U3 is a generalization of U2 that covers all single-qubit rotations,
@@ -170,9 +170,6 @@ class U1Gate(Gate):
170
170
  lam = float(self.params[0])
171
171
  return numpy.array([[1, 0], [0, numpy.exp(1j * lam)]], dtype=dtype)
172
172
 
173
- def __eq__(self, other):
174
- return isinstance(other, U1Gate) and self._compare_parameters(other)
175
-
176
173
 
177
174
  class CU1Gate(ControlledGate):
178
175
  r"""Controlled-U1 gate.
@@ -180,29 +177,13 @@ class CU1Gate(ControlledGate):
180
177
  This is a diagonal and symmetric gate that induces a
181
178
  phase on the state of the target qubit, depending on the control state.
182
179
 
183
- .. warning::
184
-
185
- This gate is deprecated. Instead, the :class:`.CPhaseGate` should be used
186
-
187
- .. math::
188
-
189
- CU1(\lambda) = CP(\lambda)
190
-
191
- .. code-block:: python
192
-
193
- circuit = QuantumCircuit(2)
194
- circuit.cp(lambda, 0, 1)
195
-
196
-
197
-
198
-
199
180
  **Circuit symbol:**
200
181
 
201
- .. code-block:: text
182
+ .. parsed-literal::
202
183
 
203
184
 
204
185
  q_0: ─■──
205
- │θ
186
+ │λ
206
187
  q_1: ─■──
207
188
 
208
189
 
@@ -210,13 +191,13 @@ class CU1Gate(ControlledGate):
210
191
 
211
192
  .. math::
212
193
 
213
- CU1(\theta) =
194
+ CU1(\lambda) =
214
195
  I \otimes |0\rangle\langle 0| + U1 \otimes |1\rangle\langle 1| =
215
196
  \begin{pmatrix}
216
197
  1 & 0 & 0 & 0 \\
217
198
  0 & 1 & 0 & 0 \\
218
199
  0 & 0 & 1 & 0 \\
219
- 0 & 0 & 0 & e^{i\theta}
200
+ 0 & 0 & 0 & e^{i\lambda}
220
201
  \end{pmatrix}
221
202
 
222
203
  .. seealso::
@@ -344,13 +325,6 @@ class CU1Gate(ControlledGate):
344
325
  [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, eith, 0], [0, 0, 0, 1]], dtype=dtype
345
326
  )
346
327
 
347
- def __eq__(self, other):
348
- return (
349
- isinstance(other, CU1Gate)
350
- and self.ctrl_state == other.ctrl_state
351
- and self._compare_parameters(other)
352
- )
353
-
354
328
 
355
329
  class MCU1Gate(ControlledGate):
356
330
  r"""Multi-controlled-U1 gate.
@@ -358,25 +332,9 @@ class MCU1Gate(ControlledGate):
358
332
  This is a diagonal and symmetric gate that induces a
359
333
  phase on the state of the target qubit, depending on the state of the control qubits.
360
334
 
361
- .. warning::
362
-
363
- This gate is deprecated. Instead, the following replacements should be used
364
-
365
- .. math::
366
-
367
- MCU1(\lambda) = MCP(\lambda)
368
-
369
- .. code-block:: python
370
-
371
- circuit = QuantumCircuit(5)
372
- circuit.mcp(lambda, list(range(4)), 4)
373
-
374
-
375
-
376
-
377
335
  **Circuit symbol:**
378
336
 
379
- .. code-block:: text
337
+ .. parsed-literal::
380
338
 
381
339
  q_0: ────■────
382
340
 
@@ -491,11 +449,3 @@ class MCU1Gate(ControlledGate):
491
449
  MCU1Gate: inverse gate.
492
450
  """
493
451
  return MCU1Gate(-self.params[0], self.num_ctrl_qubits)
494
-
495
- def __eq__(self, other):
496
- return (
497
- isinstance(other, MCU1Gate)
498
- and self.num_ctrl_qubits == other.num_ctrl_qubits
499
- and self.ctrl_state == other.ctrl_state
500
- and self._compare_parameters(other)
501
- )
@@ -43,7 +43,7 @@ class U2Gate(Gate):
43
43
 
44
44
  **Circuit symbol:**
45
45
 
46
- .. code-block:: text
46
+ .. parsed-literal::
47
47
 
48
48
  ┌─────────┐
49
49
  q_0: ┤ U2(φ,λ) ├
@@ -144,6 +144,3 @@ class U2Gate(Gate):
144
144
  ],
145
145
  dtype=dtype or complex,
146
146
  )
147
-
148
- def __eq__(self, other):
149
- return isinstance(other, U2Gate) and self._compare_parameters(other)
@@ -43,7 +43,7 @@ class U3Gate(Gate):
43
43
 
44
44
  **Circuit symbol:**
45
45
 
46
- .. code-block:: text
46
+ .. parsed-literal::
47
47
 
48
48
  ┌───────────┐
49
49
  q_0: ┤ U3(ϴ,φ,λ) ├
@@ -178,9 +178,6 @@ class U3Gate(Gate):
178
178
  dtype=dtype or complex,
179
179
  )
180
180
 
181
- def __eq__(self, other):
182
- return isinstance(other, U3Gate) and self._compare_parameters(other)
183
-
184
181
 
185
182
  class CU3Gate(ControlledGate):
186
183
  r"""Controlled-U3 gate (3-parameter two-qubit gate).
@@ -189,26 +186,9 @@ class CU3Gate(ControlledGate):
189
186
  It is restricted to 3 parameters, and so cannot cover generic two-qubit
190
187
  controlled gates).
191
188
 
192
- .. warning::
193
-
194
- This gate is deprecated. Instead, the :class:`.CUGate` should be used
195
-
196
- .. math::
197
-
198
- CU3(\theta, \phi, \lambda) = CU(\theta, \phi, \lambda, 0)
199
-
200
- .. code-block:: python
201
-
202
- circuit = QuantumCircuit(2)
203
- gamma = 0
204
- circuit.cu(theta, phi, lambda, gamma, 0, 1)
205
-
206
-
207
-
208
-
209
189
  **Circuit symbol:**
210
190
 
211
- .. code-block:: text
191
+ .. parsed-literal::
212
192
 
213
193
  q_0: ──────■──────
214
194
  ┌─────┴─────┐
@@ -239,8 +219,7 @@ class CU3Gate(ControlledGate):
239
219
  which in our case would be q_1. Thus a textbook matrix for this
240
220
  gate will be:
241
221
 
242
- .. code-block:: text
243
-
222
+ .. parsed-literal::
244
223
  ┌───────────┐
245
224
  q_0: ┤ U3(ϴ,φ,λ) ├
246
225
  └─────┬─────┘
@@ -372,13 +351,6 @@ class CU3Gate(ControlledGate):
372
351
  dtype=dtype or complex,
373
352
  )
374
353
 
375
- def __eq__(self, other):
376
- return (
377
- isinstance(other, CU3Gate)
378
- and self.ctrl_state == other.ctrl_state
379
- and self._compare_parameters(other)
380
- )
381
-
382
354
 
383
355
  def _generate_gray_code(num_bits):
384
356
  """Generate the gray code for ``num_bits`` bits."""
@@ -44,7 +44,7 @@ class XGate(SingletonGate):
44
44
 
45
45
  **Circuit symbol:**
46
46
 
47
- .. code-block:: text
47
+ .. parsed-literal::
48
48
 
49
49
  ┌───┐
50
50
  q_0: ┤ X ├
@@ -163,7 +163,7 @@ class CXGate(SingletonControlledGate):
163
163
 
164
164
  **Circuit symbol:**
165
165
 
166
- .. code-block:: text
166
+ .. parsed-literal::
167
167
 
168
168
  q_0: ──■──
169
169
  ┌─┴─┐
@@ -191,8 +191,7 @@ class CXGate(SingletonControlledGate):
191
191
  which in our case would be q_1. Thus a textbook matrix for this
192
192
  gate will be:
193
193
 
194
- .. code-block:: text
195
-
194
+ .. parsed-literal::
196
195
  ┌───┐
197
196
  q_0: ┤ X ├
198
197
  └─┬─┘
@@ -311,7 +310,7 @@ class CCXGate(SingletonControlledGate):
311
310
 
312
311
  **Circuit symbol:**
313
312
 
314
- .. code-block:: text
313
+ .. parsed-literal::
315
314
 
316
315
  q_0: ──■──
317
316
 
@@ -345,8 +344,7 @@ class CCXGate(SingletonControlledGate):
345
344
  which in our case would be q_2 and q_1. Thus a textbook matrix for this
346
345
  gate will be:
347
346
 
348
- .. code-block:: text
349
-
347
+ .. parsed-literal::
350
348
  ┌───┐
351
349
  q_0: ┤ X ├
352
350
  └─┬─┘
@@ -41,7 +41,7 @@ class XXMinusYYGate(Gate):
41
41
 
42
42
  **Circuit Symbol:**
43
43
 
44
- .. code-block:: text
44
+ .. parsed-literal::
45
45
 
46
46
  ┌───────────────┐
47
47
  q_0: ┤0 ├
@@ -73,7 +73,7 @@ class XXMinusYYGate(Gate):
73
73
  phase is added on q_0. If :math:`\beta` is set to its default value
74
74
  of :math:`0`, the gate is equivalent in big and little endian.
75
75
 
76
- .. code-block:: text
76
+ .. parsed-literal::
77
77
 
78
78
  ┌───────────────┐
79
79
  q_0: ┤1 ├
@@ -35,7 +35,7 @@ class XXPlusYYGate(Gate):
35
35
 
36
36
  **Circuit Symbol:**
37
37
 
38
- .. code-block:: text
38
+ .. parsed-literal::
39
39
 
40
40
  ┌───────────────┐
41
41
  q_0: ┤0 ├
@@ -67,7 +67,7 @@ class XXPlusYYGate(Gate):
67
67
  phase is added on q_1. If :math:`\beta` is set to its default value
68
68
  of :math:`0`, the gate is equivalent in big and little endian.
69
69
 
70
- .. code-block:: text
70
+ .. parsed-literal::
71
71
 
72
72
  ┌───────────────┐
73
73
  q_0: ┤1 ├
@@ -42,7 +42,7 @@ class YGate(SingletonGate):
42
42
 
43
43
  **Circuit symbol:**
44
44
 
45
- .. code-block:: text
45
+ .. parsed-literal::
46
46
 
47
47
  ┌───┐
48
48
  q_0: ┤ Y ├
@@ -152,7 +152,7 @@ class CYGate(SingletonControlledGate):
152
152
 
153
153
  **Circuit symbol:**
154
154
 
155
- .. code-block:: text
155
+ .. parsed-literal::
156
156
 
157
157
  q_0: ──■──
158
158
  ┌─┴─┐
@@ -181,8 +181,7 @@ class CYGate(SingletonControlledGate):
181
181
  which in our case would be q_1. Thus a textbook matrix for this
182
182
  gate will be:
183
183
 
184
- .. code-block:: text
185
-
184
+ .. parsed-literal::
186
185
  ┌───┐
187
186
  q_0: ┤ Y ├
188
187
  └─┬─┘
@@ -45,7 +45,7 @@ class ZGate(SingletonGate):
45
45
 
46
46
  **Circuit symbol:**
47
47
 
48
- .. code-block:: text
48
+ .. parsed-literal::
49
49
 
50
50
  ┌───┐
51
51
  q_0: ┤ Z ├
@@ -161,7 +161,7 @@ class CZGate(SingletonControlledGate):
161
161
 
162
162
  **Circuit symbol:**
163
163
 
164
- .. code-block:: text
164
+ .. parsed-literal::
165
165
 
166
166
  q_0: ─■─
167
167
 
@@ -257,7 +257,7 @@ class CCZGate(SingletonControlledGate):
257
257
 
258
258
  **Circuit symbol:**
259
259
 
260
- .. code-block:: text
260
+ .. parsed-literal::
261
261
 
262
262
  q_0: ─■─
263
263
 
@@ -10,21 +10,20 @@
10
10
  # copyright notice, and modified files need to carry a notice indicating
11
11
  # that they have been altered from the originals.
12
12
 
13
- # pylint: disable=missing-module-docstring
13
+ """
14
+ Clifford template 2_1:
15
+ .. parsed-literal::
16
+
17
+ q_0: ─■──■─
18
+ │ │
19
+ q_1: ─■──■─
20
+ """
14
21
 
15
22
  from qiskit.circuit.quantumcircuit import QuantumCircuit
16
23
 
17
24
 
18
25
  def clifford_2_1():
19
26
  """
20
- Clifford template 2_1:
21
-
22
- .. code-block:: text
23
-
24
- q_0: ─■──■─
25
- │ │
26
- q_1: ─■──■─
27
-
28
27
  Returns:
29
28
  QuantumCircuit: template as a quantum circuit.
30
29
  """
@@ -10,22 +10,21 @@
10
10
  # copyright notice, and modified files need to carry a notice indicating
11
11
  # that they have been altered from the originals.
12
12
 
13
- # pylint: disable=missing-module-docstring
14
-
15
- from qiskit.circuit.quantumcircuit import QuantumCircuit
16
-
17
-
18
- def clifford_2_2():
19
- """
20
- Clifford template 2_2:
21
-
22
- .. code-block:: text
13
+ """
14
+ Clifford template 2_2:
15
+ .. parsed-literal::
23
16
 
24
17
  q_0: ──■────■──
25
18
  ┌─┴─┐┌─┴─┐
26
19
  q_1: ┤ X ├┤ X ├
27
20
  └───┘└───┘
21
+ """
22
+
23
+ from qiskit.circuit.quantumcircuit import QuantumCircuit
28
24
 
25
+
26
+ def clifford_2_2():
27
+ """
29
28
  Returns:
30
29
  QuantumCircuit: template as a quantum circuit.
31
30
  """
@@ -10,21 +10,19 @@
10
10
  # copyright notice, and modified files need to carry a notice indicating
11
11
  # that they have been altered from the originals.
12
12
 
13
- # pylint: disable=missing-module-docstring
13
+ """
14
+ Clifford template 2_3:
15
+ .. parsed-literal::
16
+ ┌───┐┌───┐
17
+ q_0: ┤ H ├┤ H ├
18
+ └───┘└───┘
19
+ """
14
20
 
15
21
  from qiskit.circuit.quantumcircuit import QuantumCircuit
16
22
 
17
23
 
18
24
  def clifford_2_3():
19
25
  """
20
- Clifford template 2_3:
21
-
22
- .. code-block:: text
23
-
24
- ┌───┐┌───┐
25
- q_0: ┤ H ├┤ H ├
26
- └───┘└───┘
27
-
28
26
  Returns:
29
27
  QuantumCircuit: template as a quantum circuit.
30
28
  """
@@ -10,21 +10,20 @@
10
10
  # copyright notice, and modified files need to carry a notice indicating
11
11
  # that they have been altered from the originals.
12
12
 
13
- # pylint: disable=missing-module-docstring
13
+ """
14
+ Clifford template 2_4:
15
+ .. parsed-literal::
16
+
17
+ q_0: ─X──X─
18
+ │ │
19
+ q_1: ─X──X─
20
+ """
14
21
 
15
22
  from qiskit.circuit.quantumcircuit import QuantumCircuit
16
23
 
17
24
 
18
25
  def clifford_2_4():
19
26
  """
20
- Clifford template 2_4:
21
-
22
- .. code-block:: text
23
-
24
- q_0: ─X──X─
25
- │ │
26
- q_1: ─X──X─
27
-
28
27
  Returns:
29
28
  QuantumCircuit: template as a quantum circuit.
30
29
  """
@@ -10,21 +10,20 @@
10
10
  # copyright notice, and modified files need to carry a notice indicating
11
11
  # that they have been altered from the originals.
12
12
 
13
- # pylint: disable=missing-module-docstring
13
+ """
14
+ Clifford template 3_1:
15
+ .. parsed-literal::
16
+
17
+ ┌───┐┌───┐┌───┐
18
+ q_0: ┤ S ├┤ S ├┤ Z ├
19
+ └───┘└───┘└───┘
20
+ """
14
21
 
15
22
  from qiskit.circuit.quantumcircuit import QuantumCircuit
16
23
 
17
24
 
18
25
  def clifford_3_1():
19
26
  """
20
- Clifford template 3_1:
21
-
22
- .. code-block:: text
23
-
24
- ┌───┐┌───┐┌───┐
25
- q_0: ┤ S ├┤ S ├┤ Z ├
26
- └───┘└───┘└───┘
27
-
28
27
  Returns:
29
28
  QuantumCircuit: template as a quantum circuit.
30
29
  """
@@ -10,23 +10,22 @@
10
10
  # copyright notice, and modified files need to carry a notice indicating
11
11
  # that they have been altered from the originals.
12
12
 
13
- # pylint: disable=missing-module-docstring
14
-
15
- from qiskit.circuit.quantumcircuit import QuantumCircuit
16
-
17
-
18
- def clifford_4_1():
19
- """
20
- Clifford template 4_1:
21
-
22
- .. code-block:: text
13
+ """
14
+ Clifford template 4_1:
15
+ .. parsed-literal::
23
16
 
24
17
  ┌───┐
25
18
  q_0: ──■──┤ X ├──■───X─
26
19
  ┌─┴─┐└─┬─┘┌─┴─┐ │
27
20
  q_1: ┤ X ├──■──┤ X ├─X─
28
21
  └───┘ └───┘
22
+ """
23
+
24
+ from qiskit.circuit.quantumcircuit import QuantumCircuit
29
25
 
26
+
27
+ def clifford_4_1():
28
+ """
30
29
  Returns:
31
30
  QuantumCircuit: template as a quantum circuit.
32
31
  """
@@ -10,22 +10,21 @@
10
10
  # copyright notice, and modified files need to carry a notice indicating
11
11
  # that they have been altered from the originals.
12
12
 
13
- # pylint: disable=missing-module-docstring
14
-
15
- from qiskit.circuit.quantumcircuit import QuantumCircuit
16
-
17
-
18
- def clifford_4_2():
19
- """
20
- Clifford template 4_2:
21
-
22
- .. code-block:: text
13
+ """
14
+ Clifford template 4_2:
15
+ .. parsed-literal::
23
16
 
24
17
  q_0: ───────■────────■─
25
18
  ┌───┐┌─┴─┐┌───┐ │
26
19
  q_1: ┤ H ├┤ X ├┤ H ├─■─
27
20
  └───┘└───┘└───┘
21
+ """
22
+
23
+ from qiskit.circuit.quantumcircuit import QuantumCircuit
28
24
 
25
+
26
+ def clifford_4_2():
27
+ """
29
28
  Returns:
30
29
  QuantumCircuit: template as a quantum circuit.
31
30
  """
@@ -10,23 +10,22 @@
10
10
  # copyright notice, and modified files need to carry a notice indicating
11
11
  # that they have been altered from the originals.
12
12
 
13
- # pylint: disable=missing-module-docstring
14
-
15
- from qiskit.circuit.quantumcircuit import QuantumCircuit
16
-
17
-
18
- def clifford_4_3():
19
- """
20
- Clifford template 4_3:
21
-
22
- .. code-block:: text
13
+ """
14
+ Clifford template 4_3:
15
+ .. parsed-literal::
23
16
 
24
17
  ┌───┐ ┌─────┐
25
18
  q_0: ┤ S ├──■──┤ SDG ├──■──
26
19
  └───┘┌─┴─┐└─────┘┌─┴─┐
27
20
  q_1: ─────┤ X ├───────┤ X ├
28
21
  └───┘ └───┘
22
+ """
23
+
24
+ from qiskit.circuit.quantumcircuit import QuantumCircuit
29
25
 
26
+
27
+ def clifford_4_3():
28
+ """
30
29
  Returns:
31
30
  QuantumCircuit: template as a quantum circuit.
32
31
  """