Another possibility that occurs to me is to redefine the == equality
comparison. Currently this is defined as
==(z::Complex, w::Complex) = (real(z) == real(w)) & (imag(z) == imag(w))
but for some purposes it may be sufficient to redefine this as
==(z::Complex, w::Complex) = if isinf(z) && isinf(w)
return true
else
return (real(z) == real(w)) & (imag(z) == imag(w))
end
to model the topology of the Riemann sphere.
With this redefinition:
julia> Complex(Inf, 0.0) == Complex(Inf, NaN)
true
julia> Complex(Inf, 0.0) == Complex(Inf, 2.0)
true