\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\log \left(\sqrt{\mathsf{hypot}\left(re, im\right)}\right) \cdot \frac{\frac{2}{\sqrt{\log 10}}}{\sqrt{\log 10}}double f(double re, double im) {
double r1076775 = re;
double r1076776 = r1076775 * r1076775;
double r1076777 = im;
double r1076778 = r1076777 * r1076777;
double r1076779 = r1076776 + r1076778;
double r1076780 = sqrt(r1076779);
double r1076781 = log(r1076780);
double r1076782 = 10.0;
double r1076783 = log(r1076782);
double r1076784 = r1076781 / r1076783;
return r1076784;
}
double f(double re, double im) {
double r1076785 = re;
double r1076786 = im;
double r1076787 = hypot(r1076785, r1076786);
double r1076788 = sqrt(r1076787);
double r1076789 = log(r1076788);
double r1076790 = 2.0;
double r1076791 = 10.0;
double r1076792 = log(r1076791);
double r1076793 = sqrt(r1076792);
double r1076794 = r1076790 / r1076793;
double r1076795 = r1076794 / r1076793;
double r1076796 = r1076789 * r1076795;
return r1076796;
}



Bits error versus re



Bits error versus im
Results
Initial program 30.4
Simplified0.6
rmApplied add-sqr-sqrt0.6
rmApplied add-sqr-sqrt0.6
Applied pow10.6
Applied pow10.6
Applied pow-prod-up0.6
Applied log-pow0.6
Applied times-frac0.6
Simplified0.6
rmApplied div-inv0.4
Applied associate-*r*0.4
rmApplied *-commutative0.4
Applied associate-*l*0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019158 +o rules:numerics
(FPCore (re im)
:name "math.log10 on complex, real part"
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))