\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -9.16501881147335996 \cdot 10^{142}:\\
\;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(-2 \cdot \left(\log \left(\frac{-1}{re}\right) \cdot \sqrt{\frac{1}{\log 10}}\right)\right)\\
\mathbf{elif}\;re \le -3.7537984120066598 \cdot 10^{-296}:\\
\;\;\;\;\log \left({\left({\left(re \cdot re + im \cdot im\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)}^{\left(\frac{\frac{1}{2}}{\sqrt{\log 10}}\right)}\right)\\
\mathbf{elif}\;re \le 3.2705168987572832 \cdot 10^{-186}:\\
\;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(2 \cdot \left(\log im \cdot \sqrt{\frac{1}{\log 10}}\right)\right)\\
\mathbf{elif}\;re \le 1.24542053155599481 \cdot 10^{141}:\\
\;\;\;\;\log \left({\left({\left(re \cdot re + im \cdot im\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)}^{\left(\frac{\frac{1}{2}}{\sqrt{\log 10}}\right)}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(\left(\log re \cdot 2\right) \cdot \frac{1}{\sqrt{\log 10}}\right)\\
\end{array}double f(double re, double im) {
double r91831 = re;
double r91832 = r91831 * r91831;
double r91833 = im;
double r91834 = r91833 * r91833;
double r91835 = r91832 + r91834;
double r91836 = sqrt(r91835);
double r91837 = log(r91836);
double r91838 = 10.0;
double r91839 = log(r91838);
double r91840 = r91837 / r91839;
return r91840;
}
double f(double re, double im) {
double r91841 = re;
double r91842 = -9.16501881147336e+142;
bool r91843 = r91841 <= r91842;
double r91844 = 0.5;
double r91845 = 10.0;
double r91846 = log(r91845);
double r91847 = sqrt(r91846);
double r91848 = r91844 / r91847;
double r91849 = -2.0;
double r91850 = -1.0;
double r91851 = r91850 / r91841;
double r91852 = log(r91851);
double r91853 = 1.0;
double r91854 = r91853 / r91846;
double r91855 = sqrt(r91854);
double r91856 = r91852 * r91855;
double r91857 = r91849 * r91856;
double r91858 = r91848 * r91857;
double r91859 = -3.75379841200666e-296;
bool r91860 = r91841 <= r91859;
double r91861 = r91841 * r91841;
double r91862 = im;
double r91863 = r91862 * r91862;
double r91864 = r91861 + r91863;
double r91865 = r91853 / r91847;
double r91866 = pow(r91864, r91865);
double r91867 = pow(r91866, r91848);
double r91868 = log(r91867);
double r91869 = 3.2705168987572832e-186;
bool r91870 = r91841 <= r91869;
double r91871 = 2.0;
double r91872 = log(r91862);
double r91873 = r91872 * r91855;
double r91874 = r91871 * r91873;
double r91875 = r91848 * r91874;
double r91876 = 1.2454205315559948e+141;
bool r91877 = r91841 <= r91876;
double r91878 = log(r91841);
double r91879 = r91878 * r91871;
double r91880 = r91879 * r91865;
double r91881 = r91848 * r91880;
double r91882 = r91877 ? r91868 : r91881;
double r91883 = r91870 ? r91875 : r91882;
double r91884 = r91860 ? r91868 : r91883;
double r91885 = r91843 ? r91858 : r91884;
return r91885;
}



Bits error versus re



Bits error versus im
Results
if re < -9.16501881147336e+142Initial program 61.3
rmApplied add-sqr-sqrt61.3
Applied pow1/261.3
Applied log-pow61.3
Applied times-frac61.3
Taylor expanded around -inf 7.9
if -9.16501881147336e+142 < re < -3.75379841200666e-296 or 3.2705168987572832e-186 < re < 1.2454205315559948e+141Initial program 19.7
rmApplied add-sqr-sqrt19.7
Applied pow1/219.7
Applied log-pow19.7
Applied times-frac19.7
rmApplied div-inv19.6
rmApplied add-log-exp19.6
Simplified19.4
if -3.75379841200666e-296 < re < 3.2705168987572832e-186Initial program 31.7
rmApplied add-sqr-sqrt31.7
Applied pow1/231.7
Applied log-pow31.7
Applied times-frac31.7
Taylor expanded around 0 34.7
if 1.2454205315559948e+141 < re Initial program 60.3
rmApplied add-sqr-sqrt60.3
Applied pow1/260.3
Applied log-pow60.3
Applied times-frac60.3
rmApplied div-inv60.3
Taylor expanded around inf 7.6
Simplified7.6
Final simplification17.8
herbie shell --seed 2020025
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))