added complex dot product return value functions