\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\frac{\log \left(\mathsf{hypot}\left(re, im\right)\right)}{\log 10}double f(double re, double im) {
double r92299 = re;
double r92300 = r92299 * r92299;
double r92301 = im;
double r92302 = r92301 * r92301;
double r92303 = r92300 + r92302;
double r92304 = sqrt(r92303);
double r92305 = log(r92304);
double r92306 = 10.0;
double r92307 = log(r92306);
double r92308 = r92305 / r92307;
return r92308;
}
double f(double re, double im) {
double r92309 = re;
double r92310 = im;
double r92311 = hypot(r92309, r92310);
double r92312 = log(r92311);
double r92313 = 10.0;
double r92314 = log(r92313);
double r92315 = r92312 / r92314;
return r92315;
}



Bits error versus re



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