docs: def bogoliubov_trans(p, q, theta):
      r"""The 2-mode Bogoliubov transformation is mapped to two-qubit operations.
       We use the identity X S^\dag X S X = Y X S^\dag Y S X = X to transform
       the Hamiltonian XY+YX to XX+YY type. The time evolution of the XX + YY
       Hamiltonian can be expressed as a power of the iSWAP gate.
  
      Args:
          p: the first qubit
          q: the second qubit
          theta: The rotational angle that specifies the Bogoliubov
          transformation, which is a function of the kinetic energy and
          the superconducting gap.
      """
  
      # The iSWAP gate corresponds to evolve under the Hamiltonian XX+YY for
      # time -pi/4.
      expo = -4 * theta / np.pi
  
      yield cirq.X(p)
      yield cirq.S(p)
      yield cirq.ISWAP(p, q)**expo
      yield cirq.S(p) ** 1.5
      yield cirq.X(p)