\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 r28002 = im;
double r28003 = re;
double r28004 = atan2(r28002, r28003);
double r28005 = 10.0;
double r28006 = log(r28005);
double r28007 = r28004 / r28006;
return r28007;
}
double f(double re, double im) {
double r28008 = 1.0;
double r28009 = 10.0;
double r28010 = log(r28009);
double r28011 = sqrt(r28010);
double r28012 = r28008 / r28011;
double r28013 = im;
double r28014 = re;
double r28015 = atan2(r28013, r28014);
double r28016 = r28008 / r28010;
double r28017 = sqrt(r28016);
double r28018 = r28015 * r28017;
double r28019 = r28012 * r28018;
double r28020 = expm1(r28019);
double r28021 = log1p(r28020);
return r28021;
}



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 2020049 +o rules:numerics
(FPCore (re im)
:name "math.log10 on complex, imaginary part"
:precision binary64
(/ (atan2 im re) (log 10)))