if (is_a<numeric>(y) && !y.info(info_flags::crational) &&
is_a<numeric>(x) && !x.info(info_flags::crational))
return atan(ex_to<numeric>(y), ex_to<numeric>(x));
if (is_a<numeric>(y) && !y.info(info_flags::crational) &&
is_a<numeric>(x) && !x.info(info_flags::crational))
return atan(ex_to<numeric>(y), ex_to<numeric>(x));