\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\frac{1}{\sqrt{\log 10}} \cdot \log \left({\left(\mathsf{hypot}\left(re, im\right)\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)double f(double re, double im) {
double r36990 = re;
double r36991 = r36990 * r36990;
double r36992 = im;
double r36993 = r36992 * r36992;
double r36994 = r36991 + r36993;
double r36995 = sqrt(r36994);
double r36996 = log(r36995);
double r36997 = 10.0;
double r36998 = log(r36997);
double r36999 = r36996 / r36998;
return r36999;
}
double f(double re, double im) {
double r37000 = 1.0;
double r37001 = 10.0;
double r37002 = log(r37001);
double r37003 = sqrt(r37002);
double r37004 = r37000 / r37003;
double r37005 = re;
double r37006 = im;
double r37007 = hypot(r37005, r37006);
double r37008 = pow(r37007, r37004);
double r37009 = log(r37008);
double r37010 = r37004 * r37009;
return r37010;
}



Bits error versus re



Bits error versus im
Results
Initial program 32.3
rmApplied *-un-lft-identity32.3
Applied sqrt-prod32.3
Simplified32.3
Simplified0.6
rmApplied add-sqr-sqrt0.6
Applied pow10.6
Applied pow10.6
Applied pow-prod-down0.6
Applied log-pow0.6
Applied times-frac0.5
rmApplied add-log-exp0.5
Simplified0.3
Final simplification0.3
herbie shell --seed 2020083 +o rules:numerics
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))