change to store Qn_real and Qn_imag rather than Qn and Qn_psi to avoid million times of evaluation of sin and cos functions