\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\frac{1}{\sqrt{\log 10}} \cdot \left(\frac{1}{\sqrt{\log 10}} \cdot \log \left(\sqrt{re^2 + im^2}^*\right)\right)double f(double re, double im) {
double r1298762 = re;
double r1298763 = r1298762 * r1298762;
double r1298764 = im;
double r1298765 = r1298764 * r1298764;
double r1298766 = r1298763 + r1298765;
double r1298767 = sqrt(r1298766);
double r1298768 = log(r1298767);
double r1298769 = 10.0;
double r1298770 = log(r1298769);
double r1298771 = r1298768 / r1298770;
return r1298771;
}
double f(double re, double im) {
double r1298772 = 1.0;
double r1298773 = 10.0;
double r1298774 = log(r1298773);
double r1298775 = sqrt(r1298774);
double r1298776 = r1298772 / r1298775;
double r1298777 = re;
double r1298778 = im;
double r1298779 = hypot(r1298777, r1298778);
double r1298780 = log(r1298779);
double r1298781 = r1298776 * r1298780;
double r1298782 = r1298776 * r1298781;
return r1298782;
}



Bits error versus re



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