\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -1.388360913720003 \cdot 10^{+94}:\\
\;\;\;\;\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 -9.650434949786742 \cdot 10^{-149}:\\
\;\;\;\;\frac{\sqrt[3]{\frac{1}{2}} \cdot \sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \left(\frac{\sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \frac{\log \left(\sqrt[3]{re \cdot re + im \cdot im}\right) + \log \left(\sqrt[3]{re \cdot re + im \cdot im} \cdot \sqrt[3]{re \cdot re + im \cdot im}\right)}{\sqrt{\log 10}}\right)\\
\mathbf{elif}\;re \le -1.3348781049268564 \cdot 10^{-224}:\\
\;\;\;\;\frac{\sqrt[3]{\frac{1}{2}} \cdot \sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \left(\frac{2 \cdot \log im}{\sqrt{\log 10}} \cdot \frac{\sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}}\right)\\
\mathbf{elif}\;re \le 5.418402979673782 \cdot 10^{+109}:\\
\;\;\;\;\left(\frac{\log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10}} \cdot \sqrt{\frac{\frac{1}{2}}{\sqrt{\log 10}}}\right) \cdot \sqrt{\frac{\frac{1}{2}}{\sqrt{\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 r1630245 = re;
double r1630246 = r1630245 * r1630245;
double r1630247 = im;
double r1630248 = r1630247 * r1630247;
double r1630249 = r1630246 + r1630248;
double r1630250 = sqrt(r1630249);
double r1630251 = log(r1630250);
double r1630252 = 10.0;
double r1630253 = log(r1630252);
double r1630254 = r1630251 / r1630253;
return r1630254;
}
double f(double re, double im) {
double r1630255 = re;
double r1630256 = -1.388360913720003e+94;
bool r1630257 = r1630255 <= r1630256;
double r1630258 = 0.5;
double r1630259 = 10.0;
double r1630260 = log(r1630259);
double r1630261 = sqrt(r1630260);
double r1630262 = r1630258 / r1630261;
double r1630263 = 1.0;
double r1630264 = r1630263 / r1630260;
double r1630265 = sqrt(r1630264);
double r1630266 = -1.0;
double r1630267 = r1630266 / r1630255;
double r1630268 = log(r1630267);
double r1630269 = r1630265 * r1630268;
double r1630270 = -2.0;
double r1630271 = r1630269 * r1630270;
double r1630272 = r1630262 * r1630271;
double r1630273 = -9.650434949786742e-149;
bool r1630274 = r1630255 <= r1630273;
double r1630275 = cbrt(r1630258);
double r1630276 = r1630275 * r1630275;
double r1630277 = sqrt(r1630261);
double r1630278 = r1630276 / r1630277;
double r1630279 = r1630275 / r1630277;
double r1630280 = r1630255 * r1630255;
double r1630281 = im;
double r1630282 = r1630281 * r1630281;
double r1630283 = r1630280 + r1630282;
double r1630284 = cbrt(r1630283);
double r1630285 = log(r1630284);
double r1630286 = r1630284 * r1630284;
double r1630287 = log(r1630286);
double r1630288 = r1630285 + r1630287;
double r1630289 = r1630288 / r1630261;
double r1630290 = r1630279 * r1630289;
double r1630291 = r1630278 * r1630290;
double r1630292 = -1.3348781049268564e-224;
bool r1630293 = r1630255 <= r1630292;
double r1630294 = 2.0;
double r1630295 = log(r1630281);
double r1630296 = r1630294 * r1630295;
double r1630297 = r1630296 / r1630261;
double r1630298 = r1630297 * r1630279;
double r1630299 = r1630278 * r1630298;
double r1630300 = 5.418402979673782e+109;
bool r1630301 = r1630255 <= r1630300;
double r1630302 = log(r1630283);
double r1630303 = r1630302 / r1630261;
double r1630304 = sqrt(r1630262);
double r1630305 = r1630303 * r1630304;
double r1630306 = r1630305 * r1630304;
double r1630307 = log(r1630255);
double r1630308 = r1630294 * r1630307;
double r1630309 = r1630265 * r1630308;
double r1630310 = r1630309 * r1630262;
double r1630311 = r1630301 ? r1630306 : r1630310;
double r1630312 = r1630293 ? r1630299 : r1630311;
double r1630313 = r1630274 ? r1630291 : r1630312;
double r1630314 = r1630257 ? r1630272 : r1630313;
return r1630314;
}



Bits error versus re



Bits error versus im
Results
if re < -1.388360913720003e+94Initial program 48.6
rmApplied add-sqr-sqrt48.6
Applied pow148.6
Applied sqrt-pow148.6
Applied log-pow48.6
Applied times-frac48.6
Simplified48.6
Taylor expanded around -inf 8.3
if -1.388360913720003e+94 < re < -9.650434949786742e-149Initial program 16.8
rmApplied add-sqr-sqrt16.8
Applied pow116.8
Applied sqrt-pow116.8
Applied log-pow16.8
Applied times-frac16.8
Simplified16.8
rmApplied add-sqr-sqrt16.8
Applied sqrt-prod17.3
Applied add-cube-cbrt16.8
Applied times-frac16.8
Applied associate-*l*16.7
rmApplied add-cube-cbrt16.7
Applied log-prod16.7
if -9.650434949786742e-149 < re < -1.3348781049268564e-224Initial program 30.0
rmApplied add-sqr-sqrt30.0
Applied pow130.0
Applied sqrt-pow130.0
Applied log-pow30.0
Applied times-frac30.0
Simplified30.0
rmApplied add-sqr-sqrt30.0
Applied sqrt-prod30.4
Applied add-cube-cbrt30.0
Applied times-frac30.0
Applied associate-*l*29.9
Taylor expanded around 0 37.2
if -1.3348781049268564e-224 < re < 5.418402979673782e+109Initial program 21.7
rmApplied add-sqr-sqrt21.7
Applied pow121.7
Applied sqrt-pow121.7
Applied log-pow21.7
Applied times-frac21.6
Simplified21.6
rmApplied add-sqr-sqrt21.6
Applied associate-*l*21.5
if 5.418402979673782e+109 < re Initial program 51.0
rmApplied add-sqr-sqrt51.0
Applied pow151.0
Applied sqrt-pow151.0
Applied log-pow51.0
Applied times-frac51.0
Simplified51.0
Taylor expanded around inf 8.4
Simplified8.4
Final simplification17.3
herbie shell --seed 2019138
(FPCore (re im)
:name "math.log10 on complex, real part"
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))