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
@@ -35,7 +35,7 @@ class UGate(Gate):
35
35
 
36
36
  **Circuit symbol:**
37
37
 
38
- .. parsed-literal::
38
+ .. code-block:: text
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
- .. parsed-literal::
221
+ .. code-block:: text
222
222
 
223
223
  q_0: ──────■──────
224
224
  ┌─────┴──────┐
@@ -251,7 +251,8 @@ 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
- .. parsed-literal::
254
+ .. code-block:: text
255
+
255
256
  ┌────────────┐
256
257
  q_0: ┤ U(ϴ,φ,λ,γ) ├
257
258
  └─────┬──────┘
@@ -393,3 +394,10 @@ class CUGate(ControlledGate):
393
394
  out = super().__deepcopy__(memo)
394
395
  out._params = _copy.deepcopy(out._params, memo)
395
396
  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(\lambda) = P(\lambda)= U(0,0,\lambda)
37
+ U1(\theta) = P(\theta)= U(0,0,\theta)
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)
42
+ circuit.p(lambda, 0) # or circuit.u(0, 0, lambda, 0)
43
43
 
44
44
 
45
45
 
46
46
 
47
47
  **Circuit symbol:**
48
48
 
49
- .. parsed-literal::
49
+ .. code-block:: text
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(\lambda) =
59
+ U1(\theta) =
60
60
  \begin{pmatrix}
61
61
  1 & 0 \\
62
- 0 & e^{i\lambda}
62
+ 0 & e^{i\theta}
63
63
  \end{pmatrix}
64
64
 
65
65
  **Examples:**
66
66
 
67
67
  .. math::
68
68
 
69
- U1(\lambda = \pi) = Z
69
+ U1(\theta = \pi) = Z
70
70
 
71
71
  .. math::
72
72
 
73
- U1(\lambda = \pi/2) = S
73
+ U1(\theta = \pi/2) = S
74
74
 
75
75
  .. math::
76
76
 
77
- U1(\lambda = \pi/4) = T
77
+ U1(\theta = \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(\lambda) = e^{i{\lambda}/2} RZ(\lambda)
86
+ U1(\theta) = e^{i{\theta}/2} RZ(\theta)
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,6 +170,9 @@ 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
+
173
176
 
174
177
  class CU1Gate(ControlledGate):
175
178
  r"""Controlled-U1 gate.
@@ -177,13 +180,29 @@ class CU1Gate(ControlledGate):
177
180
  This is a diagonal and symmetric gate that induces a
178
181
  phase on the state of the target qubit, depending on the control state.
179
182
 
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
+
180
199
  **Circuit symbol:**
181
200
 
182
- .. parsed-literal::
201
+ .. code-block:: text
183
202
 
184
203
 
185
204
  q_0: ─■──
186
- │λ
205
+ │θ
187
206
  q_1: ─■──
188
207
 
189
208
 
@@ -191,13 +210,13 @@ class CU1Gate(ControlledGate):
191
210
 
192
211
  .. math::
193
212
 
194
- CU1(\lambda) =
213
+ CU1(\theta) =
195
214
  I \otimes |0\rangle\langle 0| + U1 \otimes |1\rangle\langle 1| =
196
215
  \begin{pmatrix}
197
216
  1 & 0 & 0 & 0 \\
198
217
  0 & 1 & 0 & 0 \\
199
218
  0 & 0 & 1 & 0 \\
200
- 0 & 0 & 0 & e^{i\lambda}
219
+ 0 & 0 & 0 & e^{i\theta}
201
220
  \end{pmatrix}
202
221
 
203
222
  .. seealso::
@@ -325,6 +344,13 @@ class CU1Gate(ControlledGate):
325
344
  [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, eith, 0], [0, 0, 0, 1]], dtype=dtype
326
345
  )
327
346
 
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
+
328
354
 
329
355
  class MCU1Gate(ControlledGate):
330
356
  r"""Multi-controlled-U1 gate.
@@ -332,9 +358,25 @@ class MCU1Gate(ControlledGate):
332
358
  This is a diagonal and symmetric gate that induces a
333
359
  phase on the state of the target qubit, depending on the state of the control qubits.
334
360
 
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
+
335
377
  **Circuit symbol:**
336
378
 
337
- .. parsed-literal::
379
+ .. code-block:: text
338
380
 
339
381
  q_0: ────■────
340
382
 
@@ -449,3 +491,11 @@ class MCU1Gate(ControlledGate):
449
491
  MCU1Gate: inverse gate.
450
492
  """
451
493
  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
- .. parsed-literal::
46
+ .. code-block:: text
47
47
 
48
48
  ┌─────────┐
49
49
  q_0: ┤ U2(φ,λ) ├
@@ -144,3 +144,6 @@ 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
- .. parsed-literal::
46
+ .. code-block:: text
47
47
 
48
48
  ┌───────────┐
49
49
  q_0: ┤ U3(ϴ,φ,λ) ├
@@ -178,6 +178,9 @@ 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
+
181
184
 
182
185
  class CU3Gate(ControlledGate):
183
186
  r"""Controlled-U3 gate (3-parameter two-qubit gate).
@@ -186,9 +189,26 @@ class CU3Gate(ControlledGate):
186
189
  It is restricted to 3 parameters, and so cannot cover generic two-qubit
187
190
  controlled gates).
188
191
 
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
+
189
209
  **Circuit symbol:**
190
210
 
191
- .. parsed-literal::
211
+ .. code-block:: text
192
212
 
193
213
  q_0: ──────■──────
194
214
  ┌─────┴─────┐
@@ -219,7 +239,8 @@ class CU3Gate(ControlledGate):
219
239
  which in our case would be q_1. Thus a textbook matrix for this
220
240
  gate will be:
221
241
 
222
- .. parsed-literal::
242
+ .. code-block:: text
243
+
223
244
  ┌───────────┐
224
245
  q_0: ┤ U3(ϴ,φ,λ) ├
225
246
  └─────┬─────┘
@@ -351,6 +372,13 @@ class CU3Gate(ControlledGate):
351
372
  dtype=dtype or complex,
352
373
  )
353
374
 
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
+
354
382
 
355
383
  def _generate_gray_code(num_bits):
356
384
  """Generate the gray code for ``num_bits`` bits."""
@@ -44,7 +44,7 @@ class XGate(SingletonGate):
44
44
 
45
45
  **Circuit symbol:**
46
46
 
47
- .. parsed-literal::
47
+ .. code-block:: text
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
- .. parsed-literal::
166
+ .. code-block:: text
167
167
 
168
168
  q_0: ──■──
169
169
  ┌─┴─┐
@@ -191,7 +191,8 @@ 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
- .. parsed-literal::
194
+ .. code-block:: text
195
+
195
196
  ┌───┐
196
197
  q_0: ┤ X ├
197
198
  └─┬─┘
@@ -310,7 +311,7 @@ class CCXGate(SingletonControlledGate):
310
311
 
311
312
  **Circuit symbol:**
312
313
 
313
- .. parsed-literal::
314
+ .. code-block:: text
314
315
 
315
316
  q_0: ──■──
316
317
 
@@ -344,7 +345,8 @@ class CCXGate(SingletonControlledGate):
344
345
  which in our case would be q_2 and q_1. Thus a textbook matrix for this
345
346
  gate will be:
346
347
 
347
- .. parsed-literal::
348
+ .. code-block:: text
349
+
348
350
  ┌───┐
349
351
  q_0: ┤ X ├
350
352
  └─┬─┘
@@ -41,7 +41,7 @@ class XXMinusYYGate(Gate):
41
41
 
42
42
  **Circuit Symbol:**
43
43
 
44
- .. parsed-literal::
44
+ .. code-block:: text
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
- .. parsed-literal::
76
+ .. code-block:: text
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
- .. parsed-literal::
38
+ .. code-block:: text
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
- .. parsed-literal::
70
+ .. code-block:: text
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
- .. parsed-literal::
45
+ .. code-block:: text
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
- .. parsed-literal::
155
+ .. code-block:: text
156
156
 
157
157
  q_0: ──■──
158
158
  ┌─┴─┐
@@ -181,7 +181,8 @@ 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
- .. parsed-literal::
184
+ .. code-block:: text
185
+
185
186
  ┌───┐
186
187
  q_0: ┤ Y ├
187
188
  └─┬─┘
@@ -45,7 +45,7 @@ class ZGate(SingletonGate):
45
45
 
46
46
  **Circuit symbol:**
47
47
 
48
- .. parsed-literal::
48
+ .. code-block:: text
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
- .. parsed-literal::
164
+ .. code-block:: text
165
165
 
166
166
  q_0: ─■─
167
167
 
@@ -257,7 +257,7 @@ class CCZGate(SingletonControlledGate):
257
257
 
258
258
  **Circuit symbol:**
259
259
 
260
- .. parsed-literal::
260
+ .. code-block:: text
261
261
 
262
262
  q_0: ─■─
263
263
 
@@ -10,20 +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
- """
14
- Clifford template 2_1:
15
- .. parsed-literal::
16
-
17
- q_0: ─■──■─
18
- │ │
19
- q_1: ─■──■─
20
- """
13
+ # pylint: disable=missing-module-docstring
21
14
 
22
15
  from qiskit.circuit.quantumcircuit import QuantumCircuit
23
16
 
24
17
 
25
18
  def clifford_2_1():
26
19
  """
20
+ Clifford template 2_1:
21
+
22
+ .. code-block:: text
23
+
24
+ q_0: ─■──■─
25
+ │ │
26
+ q_1: ─■──■─
27
+
27
28
  Returns:
28
29
  QuantumCircuit: template as a quantum circuit.
29
30
  """
@@ -10,21 +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
- """
14
- Clifford template 2_2:
15
- .. parsed-literal::
16
-
17
- q_0: ──■────■──
18
- ┌─┴─┐┌─┴─┐
19
- q_1: ┤ X ├┤ X ├
20
- └───┘└───┘
21
- """
13
+ # pylint: disable=missing-module-docstring
22
14
 
23
15
  from qiskit.circuit.quantumcircuit import QuantumCircuit
24
16
 
25
17
 
26
18
  def clifford_2_2():
27
19
  """
20
+ Clifford template 2_2:
21
+
22
+ .. code-block:: text
23
+
24
+ q_0: ──■────■──
25
+ ┌─┴─┐┌─┴─┐
26
+ q_1: ┤ X ├┤ X ├
27
+ └───┘└───┘
28
+
28
29
  Returns:
29
30
  QuantumCircuit: template as a quantum circuit.
30
31
  """
@@ -10,19 +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
- """
14
- Clifford template 2_3:
15
- .. parsed-literal::
16
- ┌───┐┌───┐
17
- q_0: ┤ H ├┤ H ├
18
- └───┘└───┘
19
- """
13
+ # pylint: disable=missing-module-docstring
20
14
 
21
15
  from qiskit.circuit.quantumcircuit import QuantumCircuit
22
16
 
23
17
 
24
18
  def clifford_2_3():
25
19
  """
20
+ Clifford template 2_3:
21
+
22
+ .. code-block:: text
23
+
24
+ ┌───┐┌───┐
25
+ q_0: ┤ H ├┤ H ├
26
+ └───┘└───┘
27
+
26
28
  Returns:
27
29
  QuantumCircuit: template as a quantum circuit.
28
30
  """
@@ -10,20 +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
- """
14
- Clifford template 2_4:
15
- .. parsed-literal::
16
-
17
- q_0: ─X──X─
18
- │ │
19
- q_1: ─X──X─
20
- """
13
+ # pylint: disable=missing-module-docstring
21
14
 
22
15
  from qiskit.circuit.quantumcircuit import QuantumCircuit
23
16
 
24
17
 
25
18
  def clifford_2_4():
26
19
  """
20
+ Clifford template 2_4:
21
+
22
+ .. code-block:: text
23
+
24
+ q_0: ─X──X─
25
+ │ │
26
+ q_1: ─X──X─
27
+
27
28
  Returns:
28
29
  QuantumCircuit: template as a quantum circuit.
29
30
  """
@@ -10,20 +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
- """
14
- Clifford template 3_1:
15
- .. parsed-literal::
16
-
17
- ┌───┐┌───┐┌───┐
18
- q_0: ┤ S ├┤ S ├┤ Z ├
19
- └───┘└───┘└───┘
20
- """
13
+ # pylint: disable=missing-module-docstring
21
14
 
22
15
  from qiskit.circuit.quantumcircuit import QuantumCircuit
23
16
 
24
17
 
25
18
  def clifford_3_1():
26
19
  """
20
+ Clifford template 3_1:
21
+
22
+ .. code-block:: text
23
+
24
+ ┌───┐┌───┐┌───┐
25
+ q_0: ┤ S ├┤ S ├┤ Z ├
26
+ └───┘└───┘└───┘
27
+
27
28
  Returns:
28
29
  QuantumCircuit: template as a quantum circuit.
29
30
  """
@@ -10,22 +10,23 @@
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
- """
14
- Clifford template 4_1:
15
- .. parsed-literal::
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
16
23
 
17
24
  ┌───┐
18
25
  q_0: ──■──┤ X ├──■───X─
19
26
  ┌─┴─┐└─┬─┘┌─┴─┐ │
20
27
  q_1: ┤ X ├──■──┤ X ├─X─
21
28
  └───┘ └───┘
22
- """
23
-
24
- from qiskit.circuit.quantumcircuit import QuantumCircuit
25
29
 
26
-
27
- def clifford_4_1():
28
- """
29
30
  Returns:
30
31
  QuantumCircuit: template as a quantum circuit.
31
32
  """
@@ -10,21 +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
- """
14
- Clifford template 4_2:
15
- .. parsed-literal::
16
-
17
- q_0: ───────■────────■─
18
- ┌───┐┌─┴─┐┌───┐ │
19
- q_1: ┤ H ├┤ X ├┤ H ├─■─
20
- └───┘└───┘└───┘
21
- """
13
+ # pylint: disable=missing-module-docstring
22
14
 
23
15
  from qiskit.circuit.quantumcircuit import QuantumCircuit
24
16
 
25
17
 
26
18
  def clifford_4_2():
27
19
  """
20
+ Clifford template 4_2:
21
+
22
+ .. code-block:: text
23
+
24
+ q_0: ───────■────────■─
25
+ ┌───┐┌─┴─┐┌───┐ │
26
+ q_1: ┤ H ├┤ X ├┤ H ├─■─
27
+ └───┘└───┘└───┘
28
+
28
29
  Returns:
29
30
  QuantumCircuit: template as a quantum circuit.
30
31
  """
@@ -10,22 +10,23 @@
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
- """
14
- Clifford template 4_3:
15
- .. parsed-literal::
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
16
23
 
17
24
  ┌───┐ ┌─────┐
18
25
  q_0: ┤ S ├──■──┤ SDG ├──■──
19
26
  └───┘┌─┴─┐└─────┘┌─┴─┐
20
27
  q_1: ─────┤ X ├───────┤ X ├
21
28
  └───┘ └───┘
22
- """
23
-
24
- from qiskit.circuit.quantumcircuit import QuantumCircuit
25
29
 
26
-
27
- def clifford_4_3():
28
- """
29
30
  Returns:
30
31
  QuantumCircuit: template as a quantum circuit.
31
32
  """