diagonal_in_z_basis = {'CCZ', 'CRZ', 'CZ', 'ControlledPhaseShift', 'DiagonalQubitUnitary', 'IsingZZ', 'MultiRZ', 'PCPhase', 'PauliZ', 'PhaseShift', 'RZ', 'S', 'T'}

Operations that are diagonal in the computational basis.

For such operations, the eigenvalues provide all necessary information to construct the matrix representation in the computational basis.

Note: Currently all gates with this attribute need to explicitly define an eigenvalue representation. The reason is that if this method is missing, eigenvalues are computed from the matrix representation using np.linalg.eigvals, which fails for some tensor types that the matrix may be cast in on backpropagation devices.