\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(\mathsf{hypot}\left(re, im\right)\right)\right)double f(double re, double im) {
double r451766 = re;
double r451767 = r451766 * r451766;
double r451768 = im;
double r451769 = r451768 * r451768;
double r451770 = r451767 + r451769;
double r451771 = sqrt(r451770);
double r451772 = log(r451771);
double r451773 = 10.0;
double r451774 = log(r451773);
double r451775 = r451772 / r451774;
return r451775;
}
double f(double re, double im) {
double r451776 = 1.0;
double r451777 = 10.0;
double r451778 = log(r451777);
double r451779 = sqrt(r451778);
double r451780 = r451776 / r451779;
double r451781 = re;
double r451782 = im;
double r451783 = hypot(r451781, r451782);
double r451784 = log(r451783);
double r451785 = r451780 * r451784;
double r451786 = r451780 * r451785;
return r451786;
}



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
Applied associate-*r*0.4
Final simplification0.4
herbie shell --seed 2019151 +o rules:numerics
(FPCore (re im)
:name "math.log10 on complex, real part"
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))