\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\frac{2}{\sqrt{\log 10}} \cdot \left(\frac{1}{\sqrt{\log 10}} \cdot \log \left(\sqrt{\mathsf{hypot}\left(re, im\right)}\right)\right)double f(double re, double im) {
double r1188795 = re;
double r1188796 = r1188795 * r1188795;
double r1188797 = im;
double r1188798 = r1188797 * r1188797;
double r1188799 = r1188796 + r1188798;
double r1188800 = sqrt(r1188799);
double r1188801 = log(r1188800);
double r1188802 = 10.0;
double r1188803 = log(r1188802);
double r1188804 = r1188801 / r1188803;
return r1188804;
}
double f(double re, double im) {
double r1188805 = 2.0;
double r1188806 = 10.0;
double r1188807 = log(r1188806);
double r1188808 = sqrt(r1188807);
double r1188809 = r1188805 / r1188808;
double r1188810 = 1.0;
double r1188811 = r1188810 / r1188808;
double r1188812 = re;
double r1188813 = im;
double r1188814 = hypot(r1188812, r1188813);
double r1188815 = sqrt(r1188814);
double r1188816 = log(r1188815);
double r1188817 = r1188811 * r1188816;
double r1188818 = r1188809 * r1188817;
return r1188818;
}



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
Final simplification0.4
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)))