code: def PSWAP(angle, q1, q2):
      
      return Gate(name="PSWAP", params=[angle], qubits=[unpack_qubit(q) for q in (q1, q2)])
docs: Produces a parameterized SWAP gate::
  
          PSWAP(phi) = [[1, 0,             0,             0],
                        [0, 0,             exp(1j * phi), 0],
                        [0, exp(1j * phi), 0,             0],
                        [0, 0,             0,             1]]
  
  
      :param angle: The angle of the phase to apply to the swapped states. This phase is applied to
          q1 when it is in the 1 state and to q2 when it is in the 0 state.
      :param q1: Qubit 1.
      :param q2: Qubit 2.
      :returns: A Gate object.