\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}\begin{array}{l}
\mathbf{if}\;re \le -732279.798828648519702255725860595703125:\\
\;\;\;\;\frac{\frac{\tan^{-1}_* \frac{im}{re} \cdot 0.0 + \log \left(-re\right) \cdot \log base}{\sqrt{{\left(\log base\right)}^{2} + 0.0 \cdot 0.0}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\
\mathbf{elif}\;re \le 2.521155375520642127611045408258516477621 \cdot 10^{-231}:\\
\;\;\;\;\frac{\frac{\log base \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right) + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{{\left(\log base\right)}^{2} + 0.0 \cdot 0.0}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\
\mathbf{elif}\;re \le 6.77316547352422363096540025987530146079 \cdot 10^{-176}:\\
\;\;\;\;\frac{\tan^{-1}_* \frac{im}{re} \cdot 0.0 + \log im \cdot \log base}{{\left(\log base\right)}^{4} - {0.0}^{4}} \cdot \left(\log base \cdot \log base - 0.0 \cdot 0.0\right)\\
\mathbf{elif}\;re \le 645957920562454986752:\\
\;\;\;\;\frac{\frac{\log base \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right) + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{{\left(\log base\right)}^{2} + 0.0 \cdot 0.0}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\
\mathbf{else}:\\
\;\;\;\;\frac{-\log re}{-\log base}\\
\end{array}double f(double re, double im, double base) {
double r60346 = re;
double r60347 = r60346 * r60346;
double r60348 = im;
double r60349 = r60348 * r60348;
double r60350 = r60347 + r60349;
double r60351 = sqrt(r60350);
double r60352 = log(r60351);
double r60353 = base;
double r60354 = log(r60353);
double r60355 = r60352 * r60354;
double r60356 = atan2(r60348, r60346);
double r60357 = 0.0;
double r60358 = r60356 * r60357;
double r60359 = r60355 + r60358;
double r60360 = r60354 * r60354;
double r60361 = r60357 * r60357;
double r60362 = r60360 + r60361;
double r60363 = r60359 / r60362;
return r60363;
}
double f(double re, double im, double base) {
double r60364 = re;
double r60365 = -732279.7988286485;
bool r60366 = r60364 <= r60365;
double r60367 = im;
double r60368 = atan2(r60367, r60364);
double r60369 = 0.0;
double r60370 = r60368 * r60369;
double r60371 = -r60364;
double r60372 = log(r60371);
double r60373 = base;
double r60374 = log(r60373);
double r60375 = r60372 * r60374;
double r60376 = r60370 + r60375;
double r60377 = 2.0;
double r60378 = pow(r60374, r60377);
double r60379 = r60369 * r60369;
double r60380 = r60378 + r60379;
double r60381 = sqrt(r60380);
double r60382 = r60376 / r60381;
double r60383 = r60374 * r60374;
double r60384 = r60383 + r60379;
double r60385 = sqrt(r60384);
double r60386 = r60382 / r60385;
double r60387 = 2.521155375520642e-231;
bool r60388 = r60364 <= r60387;
double r60389 = r60364 * r60364;
double r60390 = r60367 * r60367;
double r60391 = r60389 + r60390;
double r60392 = sqrt(r60391);
double r60393 = log(r60392);
double r60394 = r60374 * r60393;
double r60395 = r60394 + r60370;
double r60396 = r60395 / r60381;
double r60397 = r60396 / r60385;
double r60398 = 6.773165473524224e-176;
bool r60399 = r60364 <= r60398;
double r60400 = log(r60367);
double r60401 = r60400 * r60374;
double r60402 = r60370 + r60401;
double r60403 = 4.0;
double r60404 = pow(r60374, r60403);
double r60405 = pow(r60369, r60403);
double r60406 = r60404 - r60405;
double r60407 = r60402 / r60406;
double r60408 = r60383 - r60379;
double r60409 = r60407 * r60408;
double r60410 = 6.45957920562455e+20;
bool r60411 = r60364 <= r60410;
double r60412 = log(r60364);
double r60413 = -r60412;
double r60414 = -r60374;
double r60415 = r60413 / r60414;
double r60416 = r60411 ? r60397 : r60415;
double r60417 = r60399 ? r60409 : r60416;
double r60418 = r60388 ? r60397 : r60417;
double r60419 = r60366 ? r60386 : r60418;
return r60419;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
if re < -732279.7988286485Initial program 42.1
rmApplied add-sqr-sqrt42.1
Applied associate-/r*42.0
Simplified42.0
Taylor expanded around -inf 14.1
Simplified14.1
if -732279.7988286485 < re < 2.521155375520642e-231 or 6.773165473524224e-176 < re < 6.45957920562455e+20Initial program 22.3
rmApplied add-sqr-sqrt22.3
Applied associate-/r*22.3
Simplified22.3
if 2.521155375520642e-231 < re < 6.773165473524224e-176Initial program 31.9
rmApplied flip-+31.9
Applied associate-/r/31.9
Simplified31.9
Taylor expanded around 0 34.0
if 6.45957920562455e+20 < re Initial program 41.4
Taylor expanded around inf 12.7
Simplified12.7
Final simplification18.6
herbie shell --seed 2019194
(FPCore (re im base)
:name "math.log/2 on complex, real part"
(/ (+ (* (log (sqrt (+ (* re re) (* im im)))) (log base)) (* (atan2 im re) 0.0)) (+ (* (log base) (log base)) (* 0.0 0.0))))