\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\sqrt{\frac{1}{\sqrt{\log 10}}} \cdot \left(\sqrt{\frac{1}{\sqrt{\log 10}}} \cdot \left(\frac{1}{\sqrt{\log 10}} \cdot \log \left(\mathsf{hypot}\left(re, im\right)\right)\right)\right)double f(double re, double im) {
double r632816 = re;
double r632817 = r632816 * r632816;
double r632818 = im;
double r632819 = r632818 * r632818;
double r632820 = r632817 + r632819;
double r632821 = sqrt(r632820);
double r632822 = log(r632821);
double r632823 = 10.0;
double r632824 = log(r632823);
double r632825 = r632822 / r632824;
return r632825;
}
double f(double re, double im) {
double r632826 = 1.0;
double r632827 = 10.0;
double r632828 = log(r632827);
double r632829 = sqrt(r632828);
double r632830 = r632826 / r632829;
double r632831 = sqrt(r632830);
double r632832 = re;
double r632833 = im;
double r632834 = hypot(r632832, r632833);
double r632835 = log(r632834);
double r632836 = r632830 * r632835;
double r632837 = r632831 * r632836;
double r632838 = r632831 * r632837;
return r632838;
}



Bits error versus re



Bits error versus im
Results
Initial program 30.9
Simplified0.6
rmApplied add-sqr-sqrt0.6
Applied *-un-lft-identity0.6
Applied times-frac0.5
rmApplied div-inv0.4
rmApplied add-sqr-sqrt0.4
Applied associate-*l*0.5
Final simplification0.5
herbie shell --seed 2019139 +o rules:numerics
(FPCore (re im)
:name "math.log10 on complex, real part"
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))