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_

val Source object for approximate comparison.
other Target object for approximate comparison.
atol The minimum absolute tolerance. This places an upper bound on the differences in magnitudes of two compared complex numbers.

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