Cmplx if else

some dispatch es and return types were incorrect in complex if else causin issue #761
this commit fixes them