\frac{\tan^{-1}_* \frac{im}{re}}{\log 10}\mathsf{log1p}\left(\mathsf{expm1}\left(\frac{1}{\sqrt{\log 10}} \cdot \left(\tan^{-1}_* \frac{im}{re} \cdot \sqrt{\frac{1}{\log 10}}\right)\right)\right)double f(double re, double im) {
double r36558 = im;
double r36559 = re;
double r36560 = atan2(r36558, r36559);
double r36561 = 10.0;
double r36562 = log(r36561);
double r36563 = r36560 / r36562;
return r36563;
}
double f(double re, double im) {
double r36564 = 1.0;
double r36565 = 10.0;
double r36566 = log(r36565);
double r36567 = sqrt(r36566);
double r36568 = r36564 / r36567;
double r36569 = im;
double r36570 = re;
double r36571 = atan2(r36569, r36570);
double r36572 = r36564 / r36566;
double r36573 = sqrt(r36572);
double r36574 = r36571 * r36573;
double r36575 = r36568 * r36574;
double r36576 = expm1(r36575);
double r36577 = log1p(r36576);
return r36577;
}



Bits error versus re



Bits error versus im
Results
Initial program 0.8
rmApplied log1p-expm1-u0.7
rmApplied add-sqr-sqrt0.7
Applied *-un-lft-identity0.7
Applied times-frac0.7
Taylor expanded around 0 0.7
Final simplification0.7
herbie shell --seed 2019194 +o rules:numerics
(FPCore (re im)
:name "math.log10 on complex, imaginary part"
(/ (atan2 im re) (log 10.0)))