\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 r90037 = re;
double r90038 = r90037 * r90037;
double r90039 = im;
double r90040 = r90039 * r90039;
double r90041 = r90038 + r90040;
double r90042 = sqrt(r90041);
double r90043 = log(r90042);
double r90044 = 10.0;
double r90045 = log(r90044);
double r90046 = r90043 / r90045;
return r90046;
}
double f(double re, double im) {
double r90047 = 1.0;
double r90048 = 10.0;
double r90049 = log(r90048);
double r90050 = sqrt(r90049);
double r90051 = r90047 / r90050;
double r90052 = re;
double r90053 = im;
double r90054 = hypot(r90052, r90053);
double r90055 = pow(r90054, r90051);
double r90056 = log(r90055);
double r90057 = r90051 * r90056;
return r90057;
}



Bits error versus re



Bits error versus im
Results
Initial program 32.4
rmApplied *-un-lft-identity32.4
Applied sqrt-prod32.4
Simplified32.4
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.6
rmApplied add-log-exp0.6
Simplified0.3
Final simplification0.3
herbie shell --seed 2020049 +o rules:numerics
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))