in tensorflow_quantum/python/util.py [0:0]
def _channel_approx_eq(op_true, op_deser, atol=1e-5):
if isinstance(op_true, cirq.DepolarizingChannel):
if isinstance(op_deser, cirq.DepolarizingChannel):
return abs(op_true.p - op_deser.p) < atol
if isinstance(op_true, cirq.AsymmetricDepolarizingChannel):
if isinstance(op_deser, cirq.AsymmetricDepolarizingChannel):
return abs(op_true.p_x - op_deser.p_x) < atol and \
abs(op_true.p_y - op_deser.p_y) < atol and \
abs(op_true.p_z - op_deser.p_z) < atol
if isinstance(op_true, cirq.GeneralizedAmplitudeDampingChannel):
if isinstance(op_deser, cirq.GeneralizedAmplitudeDampingChannel):
return abs(op_true.p - op_deser.p) < atol and \
abs(op_true.gamma - op_deser.gamma) < atol
if isinstance(op_true, cirq.AmplitudeDampingChannel):
if isinstance(op_deser, cirq.AmplitudeDampingChannel):
return abs(op_true.gamma - op_deser.gamma) < atol
if isinstance(op_true, cirq.ResetChannel):
if isinstance(op_deser, cirq.ResetChannel):
return True
if isinstance(op_true, cirq.PhaseDampingChannel):
if isinstance(op_deser, cirq.PhaseDampingChannel):
return abs(op_true.gamma - op_deser.gamma) < atol
if isinstance(op_true, cirq.PhaseFlipChannel):
if isinstance(op_deser, cirq.PhaseFlipChannel):
return abs(op_true.p - op_deser.p) < atol
if isinstance(op_true, cirq.BitFlipChannel):
if isinstance(op_deser, cirq.BitFlipChannel):
return abs(op_true.p - op_deser.p) < atol
return False