\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\begin{array}{l}
\mathbf{if}\;re \le -2.63184584490692683811764236696495705145 \cdot 10^{112}:\\
\;\;\;\;\frac{\sqrt[3]{\frac{1}{2}} \cdot \sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \frac{\frac{\sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \left(-2 \cdot \log \left(\frac{-1}{re}\right)\right)}{\sqrt{\log 10}}\\
\mathbf{elif}\;re \le -5.08697951464219784890620928937007113919 \cdot 10^{-205}:\\
\;\;\;\;\frac{\frac{\sqrt{1}}{\sqrt{2}}}{\sqrt[3]{\sqrt{\log 10}} \cdot \sqrt[3]{\sqrt{\log 10}}} \cdot \frac{\frac{\log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10}} \cdot 1}{\sqrt[3]{\sqrt{\log 10}} \cdot \sqrt{2}}\\
\mathbf{elif}\;re \le -1.185341959421428141766003317880857714296 \cdot 10^{-303}:\\
\;\;\;\;\frac{\log im}{\log 10}\\
\mathbf{elif}\;re \le 120904531.494764626026153564453125:\\
\;\;\;\;\frac{\sqrt[3]{\frac{1}{2}} \cdot \sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \frac{\frac{\sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10}}\\
\mathbf{else}:\\
\;\;\;\;\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)\\
\end{array}double f(double re, double im) {
double r38300 = re;
double r38301 = r38300 * r38300;
double r38302 = im;
double r38303 = r38302 * r38302;
double r38304 = r38301 + r38303;
double r38305 = sqrt(r38304);
double r38306 = log(r38305);
double r38307 = 10.0;
double r38308 = log(r38307);
double r38309 = r38306 / r38308;
return r38309;
}
double f(double re, double im) {
double r38310 = re;
double r38311 = -2.631845844906927e+112;
bool r38312 = r38310 <= r38311;
double r38313 = 1.0;
double r38314 = 2.0;
double r38315 = r38313 / r38314;
double r38316 = cbrt(r38315);
double r38317 = r38316 * r38316;
double r38318 = 10.0;
double r38319 = log(r38318);
double r38320 = sqrt(r38319);
double r38321 = sqrt(r38320);
double r38322 = r38317 / r38321;
double r38323 = r38316 / r38321;
double r38324 = -1.0;
double r38325 = r38324 / r38310;
double r38326 = log(r38325);
double r38327 = r38314 * r38326;
double r38328 = -r38327;
double r38329 = r38323 * r38328;
double r38330 = r38329 / r38320;
double r38331 = r38322 * r38330;
double r38332 = -5.086979514642198e-205;
bool r38333 = r38310 <= r38332;
double r38334 = sqrt(r38313);
double r38335 = sqrt(r38314);
double r38336 = r38334 / r38335;
double r38337 = cbrt(r38320);
double r38338 = r38337 * r38337;
double r38339 = r38336 / r38338;
double r38340 = r38310 * r38310;
double r38341 = im;
double r38342 = r38341 * r38341;
double r38343 = r38340 + r38342;
double r38344 = log(r38343);
double r38345 = r38344 / r38320;
double r38346 = r38345 * r38313;
double r38347 = r38337 * r38335;
double r38348 = r38346 / r38347;
double r38349 = r38339 * r38348;
double r38350 = -1.1853419594214281e-303;
bool r38351 = r38310 <= r38350;
double r38352 = log(r38341);
double r38353 = r38352 / r38319;
double r38354 = 120904531.49476463;
bool r38355 = r38310 <= r38354;
double r38356 = r38323 * r38344;
double r38357 = r38356 / r38320;
double r38358 = r38322 * r38357;
double r38359 = r38315 / r38320;
double r38360 = -2.0;
double r38361 = r38313 / r38310;
double r38362 = log(r38361);
double r38363 = r38313 / r38319;
double r38364 = sqrt(r38363);
double r38365 = r38362 * r38364;
double r38366 = r38360 * r38365;
double r38367 = r38359 * r38366;
double r38368 = r38355 ? r38358 : r38367;
double r38369 = r38351 ? r38353 : r38368;
double r38370 = r38333 ? r38349 : r38369;
double r38371 = r38312 ? r38331 : r38370;
return r38371;
}



Bits error versus re



Bits error versus im
Results
if re < -2.631845844906927e+112Initial program 54.6
rmApplied add-sqr-sqrt54.6
Applied pow154.6
Applied sqrt-pow154.6
Applied log-pow54.6
Applied times-frac54.5
rmApplied add-log-exp54.5
Simplified54.5
rmApplied add-sqr-sqrt54.5
Applied sqrt-prod54.6
Applied add-cube-cbrt54.5
Applied times-frac54.5
Applied associate-*l*54.5
Simplified54.5
Taylor expanded around -inf 8.6
if -2.631845844906927e+112 < re < -5.086979514642198e-205Initial program 17.7
rmApplied add-sqr-sqrt17.7
Applied pow117.7
Applied sqrt-pow117.7
Applied log-pow17.7
Applied times-frac17.6
rmApplied add-cube-cbrt18.2
Applied add-sqr-sqrt17.7
Applied add-sqr-sqrt17.7
Applied times-frac17.7
Applied times-frac17.6
Applied associate-*l*17.5
Simplified17.6
if -5.086979514642198e-205 < re < -1.1853419594214281e-303Initial program 31.6
Taylor expanded around 0 35.0
if -1.1853419594214281e-303 < re < 120904531.49476463Initial program 23.6
rmApplied add-sqr-sqrt23.6
Applied pow123.6
Applied sqrt-pow123.6
Applied log-pow23.6
Applied times-frac23.6
rmApplied add-log-exp23.6
Simplified23.4
rmApplied add-sqr-sqrt23.4
Applied sqrt-prod24.0
Applied add-cube-cbrt23.4
Applied times-frac23.4
Applied associate-*l*23.5
Simplified23.5
if 120904531.49476463 < re Initial program 40.6
rmApplied add-sqr-sqrt40.6
Applied pow140.6
Applied sqrt-pow140.6
Applied log-pow40.6
Applied times-frac40.6
Taylor expanded around inf 12.3
Final simplification17.7
herbie shell --seed 2019291
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))