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
@@ -12,14 +12,11 @@
12
12
 
13
13
  """Quantum Volume model circuit."""
14
14
 
15
- from __future__ import annotations
16
-
17
15
  from typing import Optional, Union
18
16
 
19
17
  import numpy as np
20
18
  from qiskit.circuit import QuantumCircuit, CircuitInstruction
21
19
  from qiskit.circuit.library.generalized_gates import PermutationGate, UnitaryGate
22
- from qiskit._accelerate.circuit_library import quantum_volume as qv_rs
23
20
 
24
21
 
25
22
  class QuantumVolume(QuantumCircuit):
@@ -83,85 +80,36 @@ class QuantumVolume(QuantumCircuit):
83
80
  depth = depth or num_qubits # how many layers of SU(4)
84
81
  width = num_qubits // 2 # how many SU(4)s fit in each layer
85
82
  rng = seed if isinstance(seed, np.random.Generator) else np.random.default_rng(seed)
86
- seed_name = seed
87
- if seed_name is None:
83
+ if seed is None:
88
84
  # Get the internal entropy used to seed the default RNG, if no seed was given. This
89
85
  # stays in the output name, so effectively stores a way of regenerating the circuit.
90
86
  # This is just best-effort only, for backwards compatibility, and isn't critical (if
91
87
  # someone needs full reproducibility, they should be manually controlling the seeding).
92
- seed_name = getattr(getattr(rng.bit_generator, "seed_seq", None), "entropy", None)
88
+ seed = getattr(getattr(rng.bit_generator, "seed_seq", None), "entropy", None)
93
89
 
94
90
  super().__init__(
95
- num_qubits,
96
- name="quantum_volume_" + str([num_qubits, depth, seed_name]).replace(" ", ""),
91
+ num_qubits, name="quantum_volume_" + str([num_qubits, depth, seed]).replace(" ", "")
97
92
  )
98
- if classical_permutation:
99
- if seed is not None:
100
- max_value = np.iinfo(np.int64).max
101
- seed = rng.integers(max_value, dtype=np.int64)
102
- qv_circ = quantum_volume(num_qubits, depth, seed)
103
- qv_circ.name = self.name
104
- if flatten:
105
- self.compose(qv_circ, inplace=True)
93
+ base = self if flatten else QuantumCircuit(num_qubits, name=self.name)
94
+
95
+ # For each layer, generate a permutation of qubits
96
+ # Then generate and apply a Haar-random SU(4) to each pair
97
+ unitaries = scipy.stats.unitary_group.rvs(4, depth * width, rng).reshape(depth, width, 4, 4)
98
+ qubits = tuple(base.qubits)
99
+ for row in unitaries:
100
+ perm = rng.permutation(num_qubits)
101
+ if classical_permutation:
102
+ for w, unitary in enumerate(row):
103
+ gate = UnitaryGate(unitary, check_input=False, num_qubits=2)
104
+ qubit = 2 * w
105
+ base._append(
106
+ CircuitInstruction(gate, (qubits[perm[qubit]], qubits[perm[qubit + 1]]))
107
+ )
106
108
  else:
107
- self._append(CircuitInstruction(qv_circ.to_instruction(), tuple(self.qubits)))
108
- else:
109
- if seed is None:
110
- seed = seed_name
111
-
112
- base = self if flatten else QuantumCircuit(num_qubits, name=self.name)
113
-
114
- # For each layer, generate a permutation of qubits
115
- # Then generate and apply a Haar-random SU(4) to each pair
116
- unitaries = scipy.stats.unitary_group.rvs(4, depth * width, rng).reshape(
117
- depth, width, 4, 4
118
- )
119
- qubits = tuple(base.qubits)
120
- for row in unitaries:
121
- perm = rng.permutation(num_qubits)
122
109
  base._append(CircuitInstruction(PermutationGate(perm), qubits))
123
110
  for w, unitary in enumerate(row):
124
111
  gate = UnitaryGate(unitary, check_input=False, num_qubits=2)
125
112
  qubit = 2 * w
126
113
  base._append(CircuitInstruction(gate, qubits[qubit : qubit + 2]))
127
- if not flatten:
128
- self._append(CircuitInstruction(base.to_instruction(), tuple(self.qubits)))
129
-
130
-
131
- def quantum_volume(
132
- num_qubits: int,
133
- depth: int | None = None,
134
- seed: int | np.random.Generator | None = None,
135
- ) -> QuantumCircuit:
136
- """A quantum volume model circuit.
137
-
138
- The model circuits are random instances of circuits used to measure
139
- the Quantum Volume metric, as introduced in [1].
140
-
141
- The model circuits consist of layers of Haar random
142
- elements of SU(4) applied between corresponding pairs
143
- of qubits in a random bipartition.
144
-
145
- This function is multithreaded and will launch a thread pool with threads equal to the number
146
- of CPUs by default. You can tune the number of threads with the ``RAYON_NUM_THREADS``
147
- environment variable. For example, setting ``RAYON_NUM_THREADS=4`` would limit the thread pool
148
- to 4 threads.
149
-
150
- **Reference Circuit:**
151
-
152
- .. plot::
153
-
154
- from qiskit.circuit.library import quantum_volume
155
- circuit = quantum_volume(5, 6, seed=10)
156
- circuit.draw('mpl')
157
-
158
- **References:**
159
-
160
- [1] A. Cross et al. Validating quantum computers using
161
- randomized model circuits, Phys. Rev. A 100, 032328 (2019).
162
- `arXiv:1811.12926 <https://arxiv.org/abs/1811.12926>`__
163
- """
164
- if isinstance(seed, np.random.Generator):
165
- seed = seed.integers(0, dtype=np.uint64)
166
- depth = depth or num_qubits
167
- return QuantumCircuit._from_circuit_data(qv_rs(num_qubits, depth, seed))
114
+ if not flatten:
115
+ self._append(CircuitInstruction(base.to_instruction(), tuple(self.qubits)))
@@ -48,26 +48,7 @@ from .multi_control_rotation_gates import mcrx, mcry, mcrz
48
48
 
49
49
  def get_standard_gate_name_mapping():
50
50
  """Return a dictionary mapping the name of standard gates and instructions to an object for
51
- that name.
52
-
53
- Examples:
54
-
55
- .. code-block:: python
56
-
57
- from qiskit.circuit.library import get_standard_gate_name_mapping
58
-
59
- gate_name_map = get_standard_gate_name_mapping()
60
- cx_object = gate_name_map["cx"]
61
-
62
- print(cx_object)
63
- print(type(cx_object))
64
-
65
- .. code-block:: text
66
-
67
- Instruction(name='cx', num_qubits=2, num_clbits=0, params=[])
68
- _SingletonCXGate
69
- """
70
-
51
+ that name."""
71
52
  from qiskit.circuit.parameter import Parameter
72
53
  from qiskit.circuit.measure import Measure
73
54
  from qiskit.circuit.delay import Delay
@@ -28,8 +28,7 @@ class DCXGate(SingletonGate):
28
28
  Can be applied to a :class:`~qiskit.circuit.QuantumCircuit`
29
29
  with the :meth:`~qiskit.circuit.QuantumCircuit.dcx` method.
30
30
 
31
- .. code-block:: text
32
-
31
+ .. parsed-literal::
33
32
  ┌───┐
34
33
  q_0: ──■──┤ X ├
35
34
  ┌─┴─┐└─┬─┘
@@ -38,7 +38,7 @@ class ECRGate(SingletonGate):
38
38
 
39
39
  **Circuit Symbol:**
40
40
 
41
- .. code-block:: text
41
+ .. parsed-literal::
42
42
 
43
43
  ┌─────────┐ ┌────────────┐┌────────┐┌─────────────┐
44
44
  q_0: ┤0 ├ q_0: ┤0 ├┤ RX(pi) ├┤0 ├
@@ -66,7 +66,7 @@ class ECRGate(SingletonGate):
66
66
  Instead, if we apply it on (q_1, q_0), the matrix will
67
67
  be :math:`Z \otimes X`:
68
68
 
69
- .. code-block:: text
69
+ .. parsed-literal::
70
70
 
71
71
  ┌─────────┐
72
72
  q_0: ┤1 ├
@@ -38,7 +38,7 @@ class HGate(SingletonGate):
38
38
 
39
39
  **Circuit symbol:**
40
40
 
41
- .. code-block:: text
41
+ .. parsed-literal::
42
42
 
43
43
  ┌───┐
44
44
  q_0: ┤ H ├
@@ -142,7 +142,7 @@ class CHGate(SingletonControlledGate):
142
142
 
143
143
  **Circuit symbol:**
144
144
 
145
- .. code-block:: text
145
+ .. parsed-literal::
146
146
 
147
147
  q_0: ──■──
148
148
  ┌─┴─┐
@@ -170,8 +170,7 @@ class CHGate(SingletonControlledGate):
170
170
  which in our case would be q_1. Thus a textbook matrix for this
171
171
  gate will be:
172
172
 
173
- .. code-block:: text
174
-
173
+ .. parsed-literal::
175
174
  ┌───┐
176
175
  q_0: ┤ H ├
177
176
  └─┬─┘
@@ -40,8 +40,7 @@ class IGate(SingletonGate):
40
40
 
41
41
  **Circuit symbol:**
42
42
 
43
- .. code-block:: text
44
-
43
+ .. parsed-literal::
45
44
  ┌───┐
46
45
  q_0: ┤ I ├
47
46
  └───┘
@@ -38,7 +38,7 @@ class iSwapGate(SingletonGate):
38
38
 
39
39
  **Circuit Symbol:**
40
40
 
41
- .. code-block:: text
41
+ .. parsed-literal::
42
42
 
43
43
  q_0: ─⨂─
44
44
 
@@ -46,7 +46,7 @@ class iSwapGate(SingletonGate):
46
46
 
47
47
  **Reference Implementation:**
48
48
 
49
- .. code-block:: text
49
+ .. parsed-literal::
50
50
 
51
51
  ┌───┐┌───┐ ┌───┐
52
52
  q_0: ┤ S ├┤ H ├──■──┤ X ├─────
@@ -33,35 +33,35 @@ class PhaseGate(Gate):
33
33
 
34
34
  **Circuit symbol:**
35
35
 
36
- .. code-block:: text
36
+ .. parsed-literal::
37
37
 
38
38
  ┌──────┐
39
- q_0: ┤ P(θ) ├
39
+ q_0: ┤ P(λ) ├
40
40
  └──────┘
41
41
 
42
42
  **Matrix Representation:**
43
43
 
44
44
  .. math::
45
45
 
46
- P(\theta) =
46
+ P(\lambda) =
47
47
  \begin{pmatrix}
48
48
  1 & 0 \\
49
- 0 & e^{i\theta}
49
+ 0 & e^{i\lambda}
50
50
  \end{pmatrix}
51
51
 
52
52
  **Examples:**
53
53
 
54
54
  .. math::
55
55
 
56
- P(\theta = \pi) = Z
56
+ P(\lambda = \pi) = Z
57
57
 
58
58
  .. math::
59
59
 
60
- P(\theta = \pi/2) = S
60
+ P(\lambda = \pi/2) = S
61
61
 
62
62
  .. math::
63
63
 
64
- P(\theta = \pi/4) = T
64
+ P(\lambda = \pi/4) = T
65
65
 
66
66
  .. seealso::
67
67
 
@@ -70,7 +70,7 @@ class PhaseGate(Gate):
70
70
 
71
71
  .. math::
72
72
 
73
- P(\theta) = e^{i{\theta}/2} RZ(\theta)
73
+ P(\lambda) = e^{i{\lambda}/2} RZ(\lambda)
74
74
 
75
75
  Reference for virtual Z gate implementation:
76
76
  `1612.00858 <https://arxiv.org/abs/1612.00858>`_
@@ -171,11 +171,11 @@ class CPhaseGate(ControlledGate):
171
171
 
172
172
  **Circuit symbol:**
173
173
 
174
- .. code-block:: text
174
+ .. parsed-literal::
175
175
 
176
176
 
177
177
  q_0: ─■──
178
- │θ
178
+ │λ
179
179
  q_1: ─■──
180
180
 
181
181
 
@@ -189,7 +189,7 @@ class CPhaseGate(ControlledGate):
189
189
  1 & 0 & 0 & 0 \\
190
190
  0 & 1 & 0 & 0 \\
191
191
  0 & 0 & 1 & 0 \\
192
- 0 & 0 & 0 & e^{i\theta}
192
+ 0 & 0 & 0 & e^{i\lambda}
193
193
  \end{pmatrix}
194
194
 
195
195
  .. seealso::
@@ -318,7 +318,7 @@ class MCPhaseGate(ControlledGate):
318
318
 
319
319
  **Circuit symbol:**
320
320
 
321
- .. code-block:: text
321
+ .. parsed-literal::
322
322
 
323
323
  q_0: ───■────
324
324
 
@@ -431,11 +431,3 @@ class MCPhaseGate(ControlledGate):
431
431
  def inverse(self, annotated: bool = False):
432
432
  r"""Return inverted MCPhase gate (:math:`MCPhase(\lambda)^{\dagger} = MCPhase(-\lambda)`)"""
433
433
  return MCPhaseGate(-self.params[0], self.num_ctrl_qubits)
434
-
435
- def __eq__(self, other):
436
- return (
437
- isinstance(other, MCPhaseGate)
438
- and self.num_ctrl_qubits == other.num_ctrl_qubits
439
- and self.ctrl_state == other.ctrl_state
440
- and self._compare_parameters(other)
441
- )
@@ -31,7 +31,7 @@ class RGate(Gate):
31
31
 
32
32
  **Circuit symbol:**
33
33
 
34
- .. code-block:: text
34
+ .. parsed-literal::
35
35
 
36
36
  ┌──────┐
37
37
  q_0: ┤ R(ϴ) ├
@@ -34,7 +34,7 @@ class RXGate(Gate):
34
34
 
35
35
  **Circuit symbol:**
36
36
 
37
- .. code-block:: text
37
+ .. parsed-literal::
38
38
 
39
39
  ┌───────┐
40
40
  q_0: ┤ Rx(ϴ) ├
@@ -159,7 +159,7 @@ class CRXGate(ControlledGate):
159
159
 
160
160
  **Circuit symbol:**
161
161
 
162
- .. code-block:: text
162
+ .. parsed-literal::
163
163
 
164
164
  q_0: ────■────
165
165
  ┌───┴───┐
@@ -189,8 +189,7 @@ class CRXGate(ControlledGate):
189
189
  which in our case would be q_1. Thus a textbook matrix for this
190
190
  gate will be:
191
191
 
192
- .. code-block:: text
193
-
192
+ .. parsed-literal::
194
193
  ┌───────┐
195
194
  q_0: ┤ Rx(ϴ) ├
196
195
  └───┬───┘
@@ -33,7 +33,7 @@ class RXXGate(Gate):
33
33
 
34
34
  **Circuit Symbol:**
35
35
 
36
- .. code-block:: text
36
+ .. parsed-literal::
37
37
 
38
38
  ┌─────────┐
39
39
  q_0: ┤1 ├
@@ -63,7 +63,7 @@ class RXXGate(Gate):
63
63
 
64
64
  .. math::
65
65
 
66
- R_{XX}(\theta = \pi) = -i X \otimes X
66
+ R_{XX}(\theta = \pi) = i X \otimes X
67
67
 
68
68
  .. math::
69
69
 
@@ -33,7 +33,7 @@ class RYGate(Gate):
33
33
 
34
34
  **Circuit symbol:**
35
35
 
36
- .. code-block:: text
36
+ .. parsed-literal::
37
37
 
38
38
  ┌───────┐
39
39
  q_0: ┤ Ry(ϴ) ├
@@ -158,7 +158,7 @@ class CRYGate(ControlledGate):
158
158
 
159
159
  **Circuit symbol:**
160
160
 
161
- .. code-block:: text
161
+ .. parsed-literal::
162
162
 
163
163
  q_0: ────■────
164
164
  ┌───┴───┐
@@ -188,8 +188,7 @@ class CRYGate(ControlledGate):
188
188
  which in our case would be q_1. Thus a textbook matrix for this
189
189
  gate will be:
190
190
 
191
- .. code-block:: text
192
-
191
+ .. parsed-literal::
193
192
  ┌───────┐
194
193
  q_0: ┤ Ry(ϴ) ├
195
194
  └───┬───┘
@@ -33,7 +33,7 @@ class RYYGate(Gate):
33
33
 
34
34
  **Circuit Symbol:**
35
35
 
36
- .. code-block:: text
36
+ .. parsed-literal::
37
37
 
38
38
  ┌─────────┐
39
39
  q_0: ┤1 ├
@@ -63,7 +63,7 @@ class RYYGate(Gate):
63
63
 
64
64
  .. math::
65
65
 
66
- R_{YY}(\theta = \pi) = -i Y \otimes Y
66
+ R_{YY}(\theta = \pi) = i Y \otimes Y
67
67
 
68
68
  .. math::
69
69
 
@@ -34,7 +34,7 @@ class RZGate(Gate):
34
34
 
35
35
  **Circuit symbol:**
36
36
 
37
- .. code-block:: text
37
+ .. parsed-literal::
38
38
 
39
39
  ┌───────┐
40
40
  q_0: ┤ Rz(λ) ├
@@ -174,24 +174,24 @@ class CRZGate(ControlledGate):
174
174
 
175
175
  **Circuit symbol:**
176
176
 
177
- .. code-block:: text
177
+ .. parsed-literal::
178
178
 
179
179
  q_0: ────■────
180
180
  ┌───┴───┐
181
- q_1: ┤ Rz(θ) ├
181
+ q_1: ┤ Rz(λ) ├
182
182
  └───────┘
183
183
 
184
184
  **Matrix representation:**
185
185
 
186
186
  .. math::
187
187
 
188
- CRZ(\theta)\ q_0, q_1 =
189
- I \otimes |0\rangle\langle 0| + RZ(\theta) \otimes |1\rangle\langle 1| =
188
+ CRZ(\lambda)\ q_0, q_1 =
189
+ I \otimes |0\rangle\langle 0| + RZ(\lambda) \otimes |1\rangle\langle 1| =
190
190
  \begin{pmatrix}
191
191
  1 & 0 & 0 & 0 \\
192
192
  0 & e^{-i\frac{\lambda}{2}} & 0 & 0 \\
193
193
  0 & 0 & 1 & 0 \\
194
- 0 & 0 & 0 & e^{i\frac{\theta}{2}}
194
+ 0 & 0 & 0 & e^{i\frac{\lambda}{2}}
195
195
  \end{pmatrix}
196
196
 
197
197
  .. note::
@@ -202,22 +202,21 @@ class CRZGate(ControlledGate):
202
202
  which in our case would be q_1. Thus a textbook matrix for this
203
203
  gate will be:
204
204
 
205
- .. code-block:: text
206
-
205
+ .. parsed-literal::
207
206
  ┌───────┐
208
- q_0: ┤ Rz(θ) ├
207
+ q_0: ┤ Rz(λ) ├
209
208
  └───┬───┘
210
209
  q_1: ────■────
211
210
 
212
211
  .. math::
213
212
 
214
- CRZ(\theta)\ q_1, q_0 =
215
- |0\rangle\langle 0| \otimes I + |1\rangle\langle 1| \otimes RZ(\theta) =
213
+ CRZ(\lambda)\ q_1, q_0 =
214
+ |0\rangle\langle 0| \otimes I + |1\rangle\langle 1| \otimes RZ(\lambda) =
216
215
  \begin{pmatrix}
217
216
  1 & 0 & 0 & 0 \\
218
217
  0 & 1 & 0 & 0 \\
219
- 0 & 0 & e^{-i\frac{\theta}{2}} & 0 \\
220
- 0 & 0 & 0 & e^{i\frac{\theta}{2}}
218
+ 0 & 0 & e^{-i\frac{\lambda}{2}} & 0 \\
219
+ 0 & 0 & 0 & e^{i\frac{\lambda}{2}}
221
220
  \end{pmatrix}
222
221
 
223
222
  .. seealso::
@@ -35,7 +35,7 @@ class RZXGate(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 ├
@@ -65,7 +65,7 @@ class RZXGate(Gate):
65
65
  Instead, if we apply it on (q_1, q_0), the matrix will
66
66
  be :math:`Z \otimes X`:
67
67
 
68
- .. code-block:: text
68
+ .. parsed-literal::
69
69
 
70
70
  ┌─────────┐
71
71
  q_0: ┤1 ├
@@ -100,19 +100,19 @@ class RZXGate(Gate):
100
100
 
101
101
  .. math::
102
102
 
103
- R_{ZX}(\theta = 0)\ q_0, q_1 = I
103
+ R_{ZX}(\theta = 0) = I
104
104
 
105
105
  .. math::
106
106
 
107
- R_{ZX}(\theta = 2\pi)\ q_0, q_1 = -I
107
+ R_{ZX}(\theta = 2\pi) = -I
108
108
 
109
109
  .. math::
110
110
 
111
- R_{ZX}(\theta = \pi)\ q_0, q_1 = -i X \otimes Z
111
+ R_{ZX}(\theta = \pi) = -i Z \otimes X
112
112
 
113
113
  .. math::
114
114
 
115
- R_{ZX}(\theta = \frac{\pi}{2})\ q_0, q_1 = \frac{1}{\sqrt{2}}
115
+ RZX(\theta = \frac{\pi}{2}) = \frac{1}{\sqrt{2}}
116
116
  \begin{pmatrix}
117
117
  1 & 0 & -i & 0 \\
118
118
  0 & 1 & 0 & i \\
@@ -32,7 +32,7 @@ class RZZGate(Gate):
32
32
 
33
33
  **Circuit Symbol:**
34
34
 
35
- .. code-block:: text
35
+ .. parsed-literal::
36
36
 
37
37
  q_0: ───■────
38
38
  │zz(θ)
@@ -51,7 +51,7 @@ class SGate(SingletonGate):
51
51
 
52
52
  **Circuit symbol:**
53
53
 
54
- .. code-block:: text
54
+ .. parsed-literal::
55
55
 
56
56
  ┌───┐
57
57
  q_0: ┤ S ├
@@ -163,7 +163,7 @@ class SdgGate(SingletonGate):
163
163
 
164
164
  **Circuit symbol:**
165
165
 
166
- .. code-block:: text
166
+ .. parsed-literal::
167
167
 
168
168
  ┌─────┐
169
169
  q_0: ┤ Sdg ├
@@ -262,7 +262,7 @@ class CSGate(SingletonControlledGate):
262
262
 
263
263
  **Circuit symbol:**
264
264
 
265
- .. code-block:: text
265
+ .. parsed-literal::
266
266
 
267
267
  q_0: ──■──
268
268
  ┌─┴─┐
@@ -350,7 +350,7 @@ class CSdgGate(SingletonControlledGate):
350
350
 
351
351
  **Circuit symbol:**
352
352
 
353
- .. code-block:: text
353
+ .. parsed-literal::
354
354
 
355
355
  q_0: ───■───
356
356
  ┌──┴──┐
@@ -36,7 +36,7 @@ class SwapGate(SingletonGate):
36
36
 
37
37
  **Circuit symbol:**
38
38
 
39
- .. code-block:: text
39
+ .. parsed-literal::
40
40
 
41
41
  q_0: ─X─
42
42
 
@@ -150,7 +150,7 @@ class CSwapGate(SingletonControlledGate):
150
150
 
151
151
  **Circuit symbol:**
152
152
 
153
- .. code-block:: text
153
+ .. parsed-literal::
154
154
 
155
155
  q_0: ─■─
156
156
 
@@ -185,7 +185,7 @@ class CSwapGate(SingletonControlledGate):
185
185
  which in our case would be q_2. Thus a textbook matrix for this
186
186
  gate will be:
187
187
 
188
- .. code-block:: text
188
+ .. parsed-literal::
189
189
 
190
190
  q_0: ─X─
191
191
 
@@ -44,7 +44,7 @@ class SXGate(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 ├
@@ -220,7 +220,7 @@ class CSXGate(SingletonControlledGate):
220
220
 
221
221
  **Circuit symbol:**
222
222
 
223
- .. code-block:: text
223
+ .. parsed-literal::
224
224
 
225
225
  q_0: ──■──
226
226
  ┌─┴──┐
@@ -249,8 +249,7 @@ class CSXGate(SingletonControlledGate):
249
249
  which in our case would be `q_1`. Thus a textbook matrix for this
250
250
  gate will be:
251
251
 
252
- .. code-block:: text
253
-
252
+ .. parsed-literal::
254
253
  ┌────┐
255
254
  q_0: ┤ √X ├
256
255
  └─┬──┘
@@ -47,7 +47,7 @@ class TGate(SingletonGate):
47
47
 
48
48
  **Circuit symbol:**
49
49
 
50
- .. code-block:: text
50
+ .. parsed-literal::
51
51
 
52
52
  ┌───┐
53
53
  q_0: ┤ T ├
@@ -124,7 +124,7 @@ class TdgGate(SingletonGate):
124
124
 
125
125
  **Circuit symbol:**
126
126
 
127
- .. code-block:: text
127
+ .. parsed-literal::
128
128
 
129
129
  ┌─────┐
130
130
  q_0: ┤ Tdg ├