\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\frac{1}{\sqrt{\log 10}} \cdot \log \left({\left({\left(\mathsf{hypot}\left(re, im\right)\right)}^{\frac{1}{2}} \cdot {\left(\mathsf{hypot}\left(re, im\right)\right)}^{\frac{1}{2}}\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)double f(double re, double im) {
double r45148 = re;
double r45149 = r45148 * r45148;
double r45150 = im;
double r45151 = r45150 * r45150;
double r45152 = r45149 + r45151;
double r45153 = sqrt(r45152);
double r45154 = log(r45153);
double r45155 = 10.0;
double r45156 = log(r45155);
double r45157 = r45154 / r45156;
return r45157;
}
double f(double re, double im) {
double r45158 = 1.0;
double r45159 = 10.0;
double r45160 = log(r45159);
double r45161 = sqrt(r45160);
double r45162 = r45158 / r45161;
double r45163 = re;
double r45164 = im;
double r45165 = hypot(r45163, r45164);
double r45166 = 0.5;
double r45167 = pow(r45165, r45166);
double r45168 = r45167 * r45167;
double r45169 = pow(r45168, r45162);
double r45170 = log(r45169);
double r45171 = r45162 * r45170;
return r45171;
}



Bits error versus re



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