\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -1.3496059084460043 \cdot 10^{+95}:\\
\;\;\;\;\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 5.956366146560391 \cdot 10^{+103}:\\
\;\;\;\;\left(\frac{\sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt[3]{\log 10}}} \cdot \frac{\log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10}}\right) \cdot \frac{\sqrt[3]{\frac{1}{2}} \cdot \sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt[3]{\log 10} \cdot \sqrt[3]{\log 10}}}\\
\mathbf{else}:\\
\;\;\;\;\left(\sqrt{\frac{1}{\log 10}} \cdot \left(2 \cdot \log re\right)\right) \cdot \frac{\frac{1}{2}}{\sqrt{\log 10}}\\
\end{array}double f(double re, double im) {
double r509171 = re;
double r509172 = r509171 * r509171;
double r509173 = im;
double r509174 = r509173 * r509173;
double r509175 = r509172 + r509174;
double r509176 = sqrt(r509175);
double r509177 = log(r509176);
double r509178 = 10.0;
double r509179 = log(r509178);
double r509180 = r509177 / r509179;
return r509180;
}
double f(double re, double im) {
double r509181 = re;
double r509182 = -1.3496059084460043e+95;
bool r509183 = r509181 <= r509182;
double r509184 = 0.5;
double r509185 = 10.0;
double r509186 = log(r509185);
double r509187 = sqrt(r509186);
double r509188 = r509184 / r509187;
double r509189 = 1.0;
double r509190 = r509189 / r509186;
double r509191 = sqrt(r509190);
double r509192 = -1.0;
double r509193 = r509192 / r509181;
double r509194 = log(r509193);
double r509195 = r509191 * r509194;
double r509196 = -2.0;
double r509197 = r509195 * r509196;
double r509198 = r509188 * r509197;
double r509199 = 5.956366146560391e+103;
bool r509200 = r509181 <= r509199;
double r509201 = cbrt(r509184);
double r509202 = cbrt(r509186);
double r509203 = sqrt(r509202);
double r509204 = r509201 / r509203;
double r509205 = r509181 * r509181;
double r509206 = im;
double r509207 = r509206 * r509206;
double r509208 = r509205 + r509207;
double r509209 = log(r509208);
double r509210 = r509209 / r509187;
double r509211 = r509204 * r509210;
double r509212 = r509201 * r509201;
double r509213 = r509202 * r509202;
double r509214 = sqrt(r509213);
double r509215 = r509212 / r509214;
double r509216 = r509211 * r509215;
double r509217 = 2.0;
double r509218 = log(r509181);
double r509219 = r509217 * r509218;
double r509220 = r509191 * r509219;
double r509221 = r509220 * r509188;
double r509222 = r509200 ? r509216 : r509221;
double r509223 = r509183 ? r509198 : r509222;
return r509223;
}



Bits error versus re



Bits error versus im
Results
if re < -1.3496059084460043e+95Initial program 48.9
rmApplied add-sqr-sqrt48.9
Applied pow148.9
Applied sqrt-pow148.9
Applied log-pow48.9
Applied times-frac48.9
Simplified48.9
Taylor expanded around -inf 8.4
if -1.3496059084460043e+95 < re < 5.956366146560391e+103Initial program 20.8
rmApplied add-sqr-sqrt20.8
Applied pow120.8
Applied sqrt-pow120.8
Applied log-pow20.8
Applied times-frac20.8
Simplified20.8
rmApplied add-cube-cbrt21.3
Applied sqrt-prod21.3
Applied add-cube-cbrt20.8
Applied times-frac20.8
Applied associate-*l*20.7
if 5.956366146560391e+103 < re Initial program 51.8
rmApplied add-sqr-sqrt51.8
Applied pow151.8
Applied sqrt-pow151.8
Applied log-pow51.8
Applied times-frac51.8
Simplified51.8
Taylor expanded around inf 8.5
Simplified8.5
Final simplification16.6
herbie shell --seed 2019152
(FPCore (re im)
:name "math.log10 on complex, real part"
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))