\frac{\tan^{-1}_* \frac{im}{re}}{\log 10}\mathsf{log1p}\left(\mathsf{expm1}\left(\frac{\tan^{-1}_* \frac{im}{re}}{\log 10}\right)\right)double f(double re, double im) {
double r19647 = im;
double r19648 = re;
double r19649 = atan2(r19647, r19648);
double r19650 = 10.0;
double r19651 = log(r19650);
double r19652 = r19649 / r19651;
return r19652;
}
double f(double re, double im) {
double r19653 = im;
double r19654 = re;
double r19655 = atan2(r19653, r19654);
double r19656 = 10.0;
double r19657 = log(r19656);
double r19658 = r19655 / r19657;
double r19659 = expm1(r19658);
double r19660 = log1p(r19659);
return r19660;
}



Bits error versus re



Bits error versus im
Results
Initial program 0.9
rmApplied add-sqr-sqrt0.9
Applied *-un-lft-identity0.9
Applied times-frac0.8
rmApplied log1p-expm1-u0.7
Simplified0.7
Final simplification0.7
herbie shell --seed 2019347 +o rules:numerics
(FPCore (re im)
:name "math.log10 on complex, imaginary part"
:precision binary64
(/ (atan2 im re) (log 10)))