# cirq.equal_up_to_global_phase¶

cirq.equal_up_to_global_phase(val: Any, other: Any, *, atol: Union[int, float] = 1e-08) → bool[source]

Determine whether two objects are equal up to global phase.

If val implements a _equal_up_to_global_phase_ method then it is
invoked and takes precedence over all other checks:
• For complex primitive type the magnitudes of the values are compared.

• For val and other both iterable of the same length, consecutive elements are compared recursively. Types of val and other does not necessarily needs to match each other. They just need to be iterable and have the same structure.

• For all other types, fall back to _approx_eq_

Parameters
• val – Source object for approximate comparison.

• other – Target object for approximate comparison.

• atol – The minimum absolute tolerance. This places an upper bound on

• differences in magnitudes of two compared complex numbers. (the) –

Returns

True if objects are approximately equal up to phase, False otherwise.