\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10.0}\begin{array}{l}
\mathbf{if}\;re \le -8.915974928248364 \cdot 10^{+114}:\\
\;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10.0}} \cdot \left(\left(\sqrt{\frac{1}{\log 10.0}} \cdot \log \left(\frac{-1}{re}\right)\right) \cdot -2\right)\\
\mathbf{elif}\;re \le -4.892315061161181 \cdot 10^{-257}:\\
\;\;\;\;\left(\frac{\sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt[3]{\log 10.0}}} \cdot \frac{\log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10.0}}\right) \cdot \frac{\sqrt[3]{\frac{1}{2}} \cdot \sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt[3]{\log 10.0} \cdot \sqrt[3]{\log 10.0}}}\\
\mathbf{elif}\;re \le 1.475790091087918 \cdot 10^{-158}:\\
\;\;\;\;\sqrt{\frac{\frac{1}{2}}{\sqrt{\log 10.0}}} \cdot \left(\sqrt{\frac{\frac{1}{2}}{\sqrt{\log 10.0}}} \cdot \frac{2 \cdot \log im}{\sqrt{\log 10.0}}\right)\\
\mathbf{elif}\;re \le 2.2624206856873828 \cdot 10^{+105}:\\
\;\;\;\;\left(\frac{\sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt[3]{\log 10.0}}} \cdot \frac{\log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10.0}}\right) \cdot \frac{\sqrt[3]{\frac{1}{2}} \cdot \sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt[3]{\log 10.0} \cdot \sqrt[3]{\log 10.0}}}\\
\mathbf{else}:\\
\;\;\;\;\left(\left(\log re \cdot \sqrt{\frac{1}{\log 10.0}}\right) \cdot 2\right) \cdot \frac{\frac{1}{2}}{\sqrt{\log 10.0}}\\
\end{array}double f(double re, double im) {
double r1286645 = re;
double r1286646 = r1286645 * r1286645;
double r1286647 = im;
double r1286648 = r1286647 * r1286647;
double r1286649 = r1286646 + r1286648;
double r1286650 = sqrt(r1286649);
double r1286651 = log(r1286650);
double r1286652 = 10.0;
double r1286653 = log(r1286652);
double r1286654 = r1286651 / r1286653;
return r1286654;
}
double f(double re, double im) {
double r1286655 = re;
double r1286656 = -8.915974928248364e+114;
bool r1286657 = r1286655 <= r1286656;
double r1286658 = 0.5;
double r1286659 = 10.0;
double r1286660 = log(r1286659);
double r1286661 = sqrt(r1286660);
double r1286662 = r1286658 / r1286661;
double r1286663 = 1.0;
double r1286664 = r1286663 / r1286660;
double r1286665 = sqrt(r1286664);
double r1286666 = -1.0;
double r1286667 = r1286666 / r1286655;
double r1286668 = log(r1286667);
double r1286669 = r1286665 * r1286668;
double r1286670 = -2.0;
double r1286671 = r1286669 * r1286670;
double r1286672 = r1286662 * r1286671;
double r1286673 = -4.892315061161181e-257;
bool r1286674 = r1286655 <= r1286673;
double r1286675 = cbrt(r1286658);
double r1286676 = cbrt(r1286660);
double r1286677 = sqrt(r1286676);
double r1286678 = r1286675 / r1286677;
double r1286679 = r1286655 * r1286655;
double r1286680 = im;
double r1286681 = r1286680 * r1286680;
double r1286682 = r1286679 + r1286681;
double r1286683 = log(r1286682);
double r1286684 = r1286683 / r1286661;
double r1286685 = r1286678 * r1286684;
double r1286686 = r1286675 * r1286675;
double r1286687 = r1286676 * r1286676;
double r1286688 = sqrt(r1286687);
double r1286689 = r1286686 / r1286688;
double r1286690 = r1286685 * r1286689;
double r1286691 = 1.475790091087918e-158;
bool r1286692 = r1286655 <= r1286691;
double r1286693 = sqrt(r1286662);
double r1286694 = 2.0;
double r1286695 = log(r1286680);
double r1286696 = r1286694 * r1286695;
double r1286697 = r1286696 / r1286661;
double r1286698 = r1286693 * r1286697;
double r1286699 = r1286693 * r1286698;
double r1286700 = 2.2624206856873828e+105;
bool r1286701 = r1286655 <= r1286700;
double r1286702 = log(r1286655);
double r1286703 = r1286702 * r1286665;
double r1286704 = r1286703 * r1286694;
double r1286705 = r1286704 * r1286662;
double r1286706 = r1286701 ? r1286690 : r1286705;
double r1286707 = r1286692 ? r1286699 : r1286706;
double r1286708 = r1286674 ? r1286690 : r1286707;
double r1286709 = r1286657 ? r1286672 : r1286708;
return r1286709;
}



Bits error versus re



Bits error versus im
Results
if re < -8.915974928248364e+114Initial program 54.0
rmApplied add-sqr-sqrt54.0
Applied pow1/254.0
Applied log-pow54.0
Applied times-frac54.0
Taylor expanded around -inf 9.6
if -8.915974928248364e+114 < re < -4.892315061161181e-257 or 1.475790091087918e-158 < re < 2.2624206856873828e+105Initial program 18.6
rmApplied add-sqr-sqrt18.6
Applied pow1/218.6
Applied log-pow18.6
Applied times-frac18.6
rmApplied add-cube-cbrt19.1
Applied sqrt-prod19.1
Applied add-cube-cbrt18.6
Applied times-frac18.6
Applied associate-*l*18.5
if -4.892315061161181e-257 < re < 1.475790091087918e-158Initial program 31.0
rmApplied add-sqr-sqrt31.0
Applied pow1/231.0
Applied log-pow31.0
Applied times-frac31.0
rmApplied add-sqr-sqrt31.0
Applied associate-*l*30.9
Taylor expanded around 0 35.5
if 2.2624206856873828e+105 < re Initial program 52.5
rmApplied add-sqr-sqrt52.5
Applied pow1/252.5
Applied log-pow52.5
Applied times-frac52.5
Taylor expanded around inf 9.3
Simplified9.3
Final simplification18.4
herbie shell --seed 2019165
(FPCore (re im)
:name "math.log10 on complex, real part"
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10.0)))