quri_parts.circuit.clifford_gate module#

is_clifford(gate, rtol=1e-05, atol=1e-08)#

Returns True if the input gate is Clifford, otherwise False. In the case of a rotation gate, whether it is a Clifford gate or not is determined by whether the rotation angle is in the Clifford angle set \(\{\pi n /2| n\in\mathbb{Z}\}\) or not. This can be applied only to the gates in the set CLIFFORD_GATE_NAMES and currently implemented rotation gates: {RX, RY, RZ, U1, U2, U3, PauliRotation}. Since newly defined gates (e.g. U’(a, b) = RZ(2*a)RY(a+2b)) may return the wrong result, in this case this function currently returns a NotImplementedError.

Parameters:
  • gate (QuantumGate) – A gate to be checked whether Clifford or not.

  • rtol (float) – The relative tolerance parameter determines how close the angle of rotation is to the angle in the Clifford angle set.

  • atol (float) – The absolute tolerance parameter determines how close the angle of rotation is to the angle in the Clifford angle set.

Return type:

bool