Implements a single-qubit operation with a PhasedXZ gate.

Used in the notebooks

Used in the tutorials

Under the hood, this uses deconstruct_single_qubit_matrix_into_angles which converts the given matrix to a series of three rotations around the Z, Y, Z axes. This is then converted to a phased X rotation followed by a Z, in the form of a single PhasedXZ gate.

mat The 2x2 unitary matrix of the operation to implement.
atol A limit on the amount of error introduced by the construction.

A PhasedXZ gate that implements the given matrix, or None if it is close to identity (trace distance <= atol).