arg throws away common parts of re and im parts
atan2 recognizes imaginary arguments