We're celebrating World Quantum Day 2022! Join us

cirq.transformers.two_qubit_matrix_to_diagonal_and_operations

THIS FUNCTION IS DEPRECATED.

IT WILL BE REMOVED IN cirq v0.15.

Please use cirq.two_qubit_matrix_to_diagonal_and_cz_operations

Decomposes a 2-qubit unitary to a diagonal and the remaining operations.

For a 2-qubit unitary V, return ops, a list of operations and
D diagonal unitary, so that:
    V = cirq.Circuit(ops) @ D

Args:
    q0: The first qubit being operated on.
    q1: The other qubit being operated on.
    mat: the input unitary
    allow_partial_czs: Enables the use of Partial-CZ gates.
    atol: A limit on the amount of absolute error introduced by the
        construction.
    clean_operations: Enables optimizing resulting operation list by
        merging operations and ejecting phased Paulis and Z operations.
Returns:
    tuple(ops,D): operations `ops`, and the diagonal `D`