\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -5.330091552844717472226479932066920744645 \cdot 10^{114}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({\left(-re\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)\\
\mathbf{elif}\;re \le -4.215661627499373563855656419004671791113 \cdot 10^{-144}:\\
\;\;\;\;\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.482912996481695209350075344359753892544 \cdot 10^{-250}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \log \left({im}^{\left(\sqrt{\frac{1}{\log 10}}\right)}\right)\\
\mathbf{elif}\;re \le 6.50977017724907722738153182022955067076 \cdot 10^{55}:\\
\;\;\;\;\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(\sqrt{\frac{1}{\log 10}}\right)}\right)\\
\end{array}double f(double re, double im) {
double r39155 = re;
double r39156 = r39155 * r39155;
double r39157 = im;
double r39158 = r39157 * r39157;
double r39159 = r39156 + r39158;
double r39160 = sqrt(r39159);
double r39161 = log(r39160);
double r39162 = 10.0;
double r39163 = log(r39162);
double r39164 = r39161 / r39163;
return r39164;
}
double f(double re, double im) {
double r39165 = re;
double r39166 = -5.330091552844717e+114;
bool r39167 = r39165 <= r39166;
double r39168 = 1.0;
double r39169 = 10.0;
double r39170 = log(r39169);
double r39171 = sqrt(r39170);
double r39172 = r39168 / r39171;
double r39173 = -r39165;
double r39174 = pow(r39173, r39172);
double r39175 = log(r39174);
double r39176 = r39172 * r39175;
double r39177 = -4.2156616274993736e-144;
bool r39178 = r39165 <= r39177;
double r39179 = r39165 * r39165;
double r39180 = im;
double r39181 = r39180 * r39180;
double r39182 = r39179 + r39181;
double r39183 = sqrt(r39182);
double r39184 = pow(r39183, r39172);
double r39185 = log(r39184);
double r39186 = r39172 * r39185;
double r39187 = 3.482912996481695e-250;
bool r39188 = r39165 <= r39187;
double r39189 = r39168 / r39170;
double r39190 = sqrt(r39189);
double r39191 = pow(r39180, r39190);
double r39192 = log(r39191);
double r39193 = r39172 * r39192;
double r39194 = 6.509770177249077e+55;
bool r39195 = r39165 <= r39194;
double r39196 = pow(r39165, r39190);
double r39197 = log(r39196);
double r39198 = r39172 * r39197;
double r39199 = r39195 ? r39186 : r39198;
double r39200 = r39188 ? r39193 : r39199;
double r39201 = r39178 ? r39186 : r39200;
double r39202 = r39167 ? r39176 : r39201;
return r39202;
}



Bits error versus re



Bits error versus im
Results
if re < -5.330091552844717e+114Initial program 54.3
rmApplied add-sqr-sqrt54.3
Applied pow154.3
Applied log-pow54.3
Applied times-frac54.3
rmApplied div-inv54.3
rmApplied add-log-exp54.3
Simplified54.3
Taylor expanded around -inf 7.6
Simplified7.6
if -5.330091552844717e+114 < re < -4.2156616274993736e-144 or 3.482912996481695e-250 < re < 6.509770177249077e+55Initial program 19.1
rmApplied add-sqr-sqrt19.1
Applied pow119.1
Applied log-pow19.1
Applied times-frac19.1
rmApplied div-inv19.0
rmApplied add-log-exp19.0
Simplified18.9
if -4.2156616274993736e-144 < re < 3.482912996481695e-250Initial program 31.3
rmApplied add-sqr-sqrt31.3
Applied pow131.3
Applied log-pow31.3
Applied times-frac31.2
rmApplied div-inv31.2
rmApplied add-log-exp31.2
Simplified31.1
Taylor expanded around 0 35.9
Simplified35.9
if 6.509770177249077e+55 < re Initial program 44.2
rmApplied add-sqr-sqrt44.2
Applied pow144.2
Applied log-pow44.2
Applied times-frac44.2
rmApplied div-inv44.2
rmApplied add-log-exp44.2
Simplified44.1
Taylor expanded around inf 11.3
Simplified11.3
Final simplification18.7
herbie shell --seed 2019325
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))