def swap(left, right): utensor = Tensor.swap(left.classical, right.classical)\ @ Tensor.swap(left.quantum, right.quantum)\ @ Tensor.swap(left.quantum, right.quantum) return CQMap(left @ right, right @ left, utensor=utensor)
def swap(left, right): data = Tensor.swap(left.classical, right.classical)\ @ Tensor.swap(left.quantum, right.quantum)\ @ Tensor.swap(left.quantum, right.quantum) return CQMap(left @ right, right @ left, data.array)