\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{1}{\sqrt{\log 10}} \cdot \log \left({\left(\frac{-1}{re}\right)}^{\left(-\sqrt{\frac{1}{\log 10}}\right)}\right)\\
\mathbf{elif}\;re \le -3.7537984120066598 \cdot 10^{-296}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({\left(\sqrt{re \cdot re + im \cdot im}\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\
\mathbf{elif}\;re \le 3.2705168987572832 \cdot 10^{-186}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({im}^{\left(\sqrt{\frac{1}{\log 10}}\right)}\right)\\
\mathbf{elif}\;re \le 2.5014012295794083 \cdot 10^{137}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({\left(\sqrt{re \cdot re + im \cdot im}\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({re}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\
\end{array}double f(double re, double im) {
double r156 = re;
double r157 = r156 * r156;
double r158 = im;
double r159 = r158 * r158;
double r160 = r157 + r159;
double r161 = sqrt(r160);
double r162 = log(r161);
double r163 = 10.0;
double r164 = log(r163);
double r165 = r162 / r164;
return r165;
}
double f(double re, double im) {
double r166 = re;
double r167 = -9.16501881147336e+142;
bool r168 = r166 <= r167;
double r169 = 1.0;
double r170 = 10.0;
double r171 = log(r170);
double r172 = sqrt(r171);
double r173 = r169 / r172;
double r174 = -1.0;
double r175 = r174 / r166;
double r176 = r169 / r171;
double r177 = sqrt(r176);
double r178 = -r177;
double r179 = pow(r175, r178);
double r180 = log(r179);
double r181 = r173 * r180;
double r182 = -3.75379841200666e-296;
bool r183 = r166 <= r182;
double r184 = r166 * r166;
double r185 = im;
double r186 = r185 * r185;
double r187 = r184 + r186;
double r188 = sqrt(r187);
double r189 = pow(r188, r173);
double r190 = log(r189);
double r191 = r173 * r190;
double r192 = 3.2705168987572832e-186;
bool r193 = r166 <= r192;
double r194 = pow(r185, r177);
double r195 = log(r194);
double r196 = r173 * r195;
double r197 = 2.5014012295794083e+137;
bool r198 = r166 <= r197;
double r199 = pow(r166, r173);
double r200 = log(r199);
double r201 = r173 * r200;
double r202 = r198 ? r191 : r201;
double r203 = r193 ? r196 : r202;
double r204 = r183 ? r191 : r203;
double r205 = r168 ? r181 : r204;
return r205;
}



Bits error versus re



Bits error versus im
Results
if re < -9.16501881147336e+142Initial program 61.3
rmApplied add-sqr-sqrt61.3
Applied pow161.3
Applied log-pow61.3
Applied times-frac61.3
rmApplied add-log-exp61.3
Simplified61.3
Taylor expanded around -inf 7.9
Simplified7.9
if -9.16501881147336e+142 < re < -3.75379841200666e-296 or 3.2705168987572832e-186 < re < 2.5014012295794083e+137Initial program 19.7
rmApplied add-sqr-sqrt19.7
Applied pow119.7
Applied log-pow19.7
Applied times-frac19.7
rmApplied add-log-exp19.7
Simplified19.5
if -3.75379841200666e-296 < re < 3.2705168987572832e-186Initial program 31.7
rmApplied add-sqr-sqrt31.7
Applied pow131.7
Applied log-pow31.7
Applied times-frac31.7
rmApplied add-log-exp31.7
Simplified31.6
Taylor expanded around 0 34.7
Simplified34.7
if 2.5014012295794083e+137 < re Initial program 59.4
rmApplied add-sqr-sqrt59.4
Applied pow159.4
Applied log-pow59.4
Applied times-frac59.4
rmApplied add-log-exp59.4
Simplified59.4
Taylor expanded around inf 7.7
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)))