\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\left(\sqrt{\frac{1}{\sqrt{\log 10}}} \cdot \left(\frac{1}{\sqrt{\log 10}} \cdot \log \left(\sqrt[3]{\mathsf{hypot}\left(re, im\right)} \cdot \left(\sqrt[3]{\mathsf{hypot}\left(re, im\right)} \cdot \sqrt[3]{\mathsf{hypot}\left(re, im\right)}\right)\right)\right)\right) \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}double f(double re, double im) {
double r826537 = re;
double r826538 = r826537 * r826537;
double r826539 = im;
double r826540 = r826539 * r826539;
double r826541 = r826538 + r826540;
double r826542 = sqrt(r826541);
double r826543 = log(r826542);
double r826544 = 10.0;
double r826545 = log(r826544);
double r826546 = r826543 / r826545;
return r826546;
}
double f(double re, double im) {
double r826547 = 1.0;
double r826548 = 10.0;
double r826549 = log(r826548);
double r826550 = sqrt(r826549);
double r826551 = r826547 / r826550;
double r826552 = sqrt(r826551);
double r826553 = re;
double r826554 = im;
double r826555 = hypot(r826553, r826554);
double r826556 = cbrt(r826555);
double r826557 = r826556 * r826556;
double r826558 = r826556 * r826557;
double r826559 = log(r826558);
double r826560 = r826551 * r826559;
double r826561 = r826552 * r826560;
double r826562 = r826561 * r826552;
return r826562;
}



Bits error versus re



Bits error versus im
Results
Initial program 31.0
Simplified0.6
rmApplied add-sqr-sqrt0.6
Applied *-un-lft-identity0.6
Applied times-frac0.6
rmApplied div-inv0.4
rmApplied add-sqr-sqrt0.4
Applied associate-*l*0.5
rmApplied add-cube-cbrt0.5
Final simplification0.5
herbie shell --seed 2019134 +o rules:numerics
(FPCore (re im)
:name "math.log10 on complex, real part"
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))