modify mul is_* routines and as_real_imag [skip ci]