improving readability
using abs() instead of sqrt(real**2+imag**2)
using np.sin/np.cos explicitly