\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\frac{1}{\sqrt{\log 10}} \cdot \log \left({\left(\left(\sqrt[3]{\mathsf{hypot}\left(re, im\right)} \cdot \sqrt[3]{\mathsf{hypot}\left(re, im\right)}\right) \cdot \sqrt[3]{\mathsf{hypot}\left(re, im\right)}\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)double f(double re, double im) {
double r84197 = re;
double r84198 = r84197 * r84197;
double r84199 = im;
double r84200 = r84199 * r84199;
double r84201 = r84198 + r84200;
double r84202 = sqrt(r84201);
double r84203 = log(r84202);
double r84204 = 10.0;
double r84205 = log(r84204);
double r84206 = r84203 / r84205;
return r84206;
}
double f(double re, double im) {
double r84207 = 1.0;
double r84208 = 10.0;
double r84209 = log(r84208);
double r84210 = sqrt(r84209);
double r84211 = r84207 / r84210;
double r84212 = re;
double r84213 = im;
double r84214 = hypot(r84212, r84213);
double r84215 = cbrt(r84214);
double r84216 = r84215 * r84215;
double r84217 = r84216 * r84215;
double r84218 = pow(r84217, r84211);
double r84219 = log(r84218);
double r84220 = r84211 * r84219;
return r84220;
}



Bits error versus re



Bits error versus im
Results
Initial program 31.6
rmApplied hypot-def0.6
rmApplied add-sqr-sqrt0.6
Applied pow10.6
Applied log-pow0.6
Applied times-frac0.5
rmApplied add-log-exp0.5
Simplified0.3
rmApplied add-cube-cbrt0.3
Final simplification0.3
herbie shell --seed 2020100 +o rules:numerics
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))