\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 r90392 = re;
double r90393 = r90392 * r90392;
double r90394 = im;
double r90395 = r90394 * r90394;
double r90396 = r90393 + r90395;
double r90397 = sqrt(r90396);
double r90398 = log(r90397);
double r90399 = 10.0;
double r90400 = log(r90399);
double r90401 = r90398 / r90400;
return r90401;
}
double f(double re, double im) {
double r90402 = 1.0;
double r90403 = 10.0;
double r90404 = log(r90403);
double r90405 = sqrt(r90404);
double r90406 = r90402 / r90405;
double r90407 = re;
double r90408 = im;
double r90409 = hypot(r90407, r90408);
double r90410 = pow(r90409, r90406);
double r90411 = log(r90410);
double r90412 = r90406 * r90411;
return r90412;
}



Bits error versus re



Bits error versus im
Results
Initial program 31.8
rmApplied *-un-lft-identity31.8
Applied sqrt-prod31.8
Simplified31.8
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.6
Simplified0.3
Final simplification0.3
herbie shell --seed 2020003 +o rules:numerics
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))