\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\sqrt{\frac{1}{\sqrt{\log 10}}} \cdot \left(\sqrt{\sqrt[3]{\frac{1}{\sqrt{\log 10}}}} \cdot \left(\log \left(\mathsf{hypot}\left(re, im\right)\right) \cdot \left(\left|\sqrt[3]{\frac{1}{\sqrt{\log 10}}}\right| \cdot \frac{1}{\sqrt{\log 10}}\right)\right)\right)double f(double re, double im) {
double r1196832 = re;
double r1196833 = r1196832 * r1196832;
double r1196834 = im;
double r1196835 = r1196834 * r1196834;
double r1196836 = r1196833 + r1196835;
double r1196837 = sqrt(r1196836);
double r1196838 = log(r1196837);
double r1196839 = 10.0;
double r1196840 = log(r1196839);
double r1196841 = r1196838 / r1196840;
return r1196841;
}
double f(double re, double im) {
double r1196842 = 1.0;
double r1196843 = 10.0;
double r1196844 = log(r1196843);
double r1196845 = sqrt(r1196844);
double r1196846 = r1196842 / r1196845;
double r1196847 = sqrt(r1196846);
double r1196848 = cbrt(r1196846);
double r1196849 = sqrt(r1196848);
double r1196850 = re;
double r1196851 = im;
double r1196852 = hypot(r1196850, r1196851);
double r1196853 = log(r1196852);
double r1196854 = fabs(r1196848);
double r1196855 = r1196854 * r1196846;
double r1196856 = r1196853 * r1196855;
double r1196857 = r1196849 * r1196856;
double r1196858 = r1196847 * r1196857;
return r1196858;
}



Bits error versus re



Bits error versus im
Results
Initial program 31.1
Simplified0.6
rmApplied add-sqr-sqrt0.6
Applied pow10.6
Applied log-pow0.6
Applied times-frac0.6
rmApplied div-inv0.4
Applied associate-*r*0.4
rmApplied add-sqr-sqrt0.4
Applied associate-*r*0.5
rmApplied add-cube-cbrt0.5
Applied sqrt-prod1.0
Applied associate-*r*0.8
Simplified0.5
Final simplification0.5
herbie shell --seed 2019163 +o rules:numerics
(FPCore (re im)
:name "math.log10 on complex, real part"
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))