\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -3.1849016560059546 \cdot 10^{+58}:\\
\;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(\left(\sqrt{\frac{1}{\log 10}} \cdot \log \left(\frac{-1}{re}\right)\right) \cdot -2\right)\\
\mathbf{elif}\;re \le -1.55388712844443 \cdot 10^{-164}:\\
\;\;\;\;\frac{\log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10}} \cdot \frac{\frac{1}{2}}{\sqrt{\log 10}}\\
\mathbf{elif}\;re \le 2.2710614939339266 \cdot 10^{-237}:\\
\;\;\;\;\left(2 \cdot \left(\log im \cdot \sqrt{\frac{1}{\log 10}}\right)\right) \cdot \frac{\frac{1}{2}}{\sqrt{\log 10}}\\
\mathbf{elif}\;re \le 3.0514418349359322 \cdot 10^{+122}:\\
\;\;\;\;\frac{\log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10}} \cdot \frac{\frac{1}{2}}{\sqrt{\log 10}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt[3]{\frac{1}{2}} \cdot \sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \left(\frac{2 \cdot \log re}{\sqrt{\log 10}} \cdot \frac{\sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}}\right)\\
\end{array}double f(double re, double im) {
double r1066750 = re;
double r1066751 = r1066750 * r1066750;
double r1066752 = im;
double r1066753 = r1066752 * r1066752;
double r1066754 = r1066751 + r1066753;
double r1066755 = sqrt(r1066754);
double r1066756 = log(r1066755);
double r1066757 = 10.0;
double r1066758 = log(r1066757);
double r1066759 = r1066756 / r1066758;
return r1066759;
}
double f(double re, double im) {
double r1066760 = re;
double r1066761 = -3.1849016560059546e+58;
bool r1066762 = r1066760 <= r1066761;
double r1066763 = 0.5;
double r1066764 = 10.0;
double r1066765 = log(r1066764);
double r1066766 = sqrt(r1066765);
double r1066767 = r1066763 / r1066766;
double r1066768 = 1.0;
double r1066769 = r1066768 / r1066765;
double r1066770 = sqrt(r1066769);
double r1066771 = -1.0;
double r1066772 = r1066771 / r1066760;
double r1066773 = log(r1066772);
double r1066774 = r1066770 * r1066773;
double r1066775 = -2.0;
double r1066776 = r1066774 * r1066775;
double r1066777 = r1066767 * r1066776;
double r1066778 = -1.55388712844443e-164;
bool r1066779 = r1066760 <= r1066778;
double r1066780 = r1066760 * r1066760;
double r1066781 = im;
double r1066782 = r1066781 * r1066781;
double r1066783 = r1066780 + r1066782;
double r1066784 = log(r1066783);
double r1066785 = r1066784 / r1066766;
double r1066786 = r1066785 * r1066767;
double r1066787 = 2.2710614939339266e-237;
bool r1066788 = r1066760 <= r1066787;
double r1066789 = 2.0;
double r1066790 = log(r1066781);
double r1066791 = r1066790 * r1066770;
double r1066792 = r1066789 * r1066791;
double r1066793 = r1066792 * r1066767;
double r1066794 = 3.0514418349359322e+122;
bool r1066795 = r1066760 <= r1066794;
double r1066796 = cbrt(r1066763);
double r1066797 = r1066796 * r1066796;
double r1066798 = sqrt(r1066766);
double r1066799 = r1066797 / r1066798;
double r1066800 = log(r1066760);
double r1066801 = r1066789 * r1066800;
double r1066802 = r1066801 / r1066766;
double r1066803 = r1066796 / r1066798;
double r1066804 = r1066802 * r1066803;
double r1066805 = r1066799 * r1066804;
double r1066806 = r1066795 ? r1066786 : r1066805;
double r1066807 = r1066788 ? r1066793 : r1066806;
double r1066808 = r1066779 ? r1066786 : r1066807;
double r1066809 = r1066762 ? r1066777 : r1066808;
return r1066809;
}



Bits error versus re



Bits error versus im
Results
if re < -3.1849016560059546e+58Initial program 44.4
rmApplied add-sqr-sqrt44.4
Applied pow1/244.4
Applied log-pow44.4
Applied times-frac44.4
Taylor expanded around -inf 11.3
if -3.1849016560059546e+58 < re < -1.55388712844443e-164 or 2.2710614939339266e-237 < re < 3.0514418349359322e+122Initial program 18.7
rmApplied add-sqr-sqrt18.7
Applied pow1/218.7
Applied log-pow18.7
Applied times-frac18.6
rmApplied *-commutative18.6
if -1.55388712844443e-164 < re < 2.2710614939339266e-237Initial program 30.0
rmApplied add-sqr-sqrt30.0
Applied pow1/230.0
Applied log-pow30.0
Applied times-frac29.9
Taylor expanded around 0 33.3
if 3.0514418349359322e+122 < re Initial program 53.2
rmApplied add-sqr-sqrt53.2
Applied pow1/253.2
Applied log-pow53.2
Applied times-frac53.2
rmApplied add-sqr-sqrt53.2
Applied sqrt-prod53.3
Applied add-cube-cbrt53.2
Applied times-frac53.2
Applied associate-*l*53.2
Taylor expanded around inf 8.2
Simplified8.2
Final simplification18.2
herbie shell --seed 2019146
(FPCore (re im)
:name "math.log10 on complex, real part"
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))