double f(double re, double im) {
double r796478 = re;
double r796479 = r796478 * r796478;
double r796480 = im;
double r796481 = r796480 * r796480;
double r796482 = r796479 + r796481;
double r796483 = sqrt(r796482);
double r796484 = log(r796483);
double r796485 = 10.0;
double r796486 = log(r796485);
double r796487 = r796484 / r796486;
return r796487;
}
double f(double re, double im) {
double r796488 = 1.0;
double r796489 = 10.0;
double r796490 = log(r796489);
double r796491 = sqrt(r796490);
double r796492 = r796488 / r796491;
double r796493 = re;
double r796494 = im;
double r796495 = hypot(r796493, r796494);
double r796496 = cbrt(r796495);
double r796497 = log(r796496);
double r796498 = r796492 * r796497;
double r796499 = r796496 * r796496;
double r796500 = log(r796499);
double r796501 = r796492 * r796500;
double r796502 = r796498 + r796501;
double r796503 = r796502 * r796492;
return r796503;
}
\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\left(\frac{1}{\sqrt{\log 10}} \cdot \log \left(\sqrt[3]{\sqrt{re^2 + im^2}^*}\right) + \frac{1}{\sqrt{\log 10}} \cdot \log \left(\sqrt[3]{\sqrt{re^2 + im^2}^*} \cdot \sqrt[3]{\sqrt{re^2 + im^2}^*}\right)\right) \cdot \frac{1}{\sqrt{\log 10}}


Bits error versus re



Bits error versus im
Initial program 31.0
Simplified0.6
rmApplied add-sqr-sqrt0.6
Applied pow10.6
Applied log-pow0.6
Applied times-frac0.5
rmApplied div-inv0.4
Applied associate-*r*0.4
rmApplied add-cube-cbrt0.4
Applied log-prod0.4
Applied distribute-lft-in0.4
Final simplification0.4
herbie shell --seed 2019102 +o rules:numerics
(FPCore (re im)
:name "math.log10 on complex, real part"
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))