\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 r44535 = re;
double r44536 = r44535 * r44535;
double r44537 = im;
double r44538 = r44537 * r44537;
double r44539 = r44536 + r44538;
double r44540 = sqrt(r44539);
double r44541 = log(r44540);
double r44542 = base;
double r44543 = log(r44542);
double r44544 = r44541 * r44543;
double r44545 = atan2(r44537, r44535);
double r44546 = 0.0;
double r44547 = r44545 * r44546;
double r44548 = r44544 + r44547;
double r44549 = r44543 * r44543;
double r44550 = r44546 * r44546;
double r44551 = r44549 + r44550;
double r44552 = r44548 / r44551;
return r44552;
}
double f(double re, double im, double base) {
double r44553 = re;
double r44554 = -732279.7988286485;
bool r44555 = r44553 <= r44554;
double r44556 = im;
double r44557 = atan2(r44556, r44553);
double r44558 = 0.0;
double r44559 = r44557 * r44558;
double r44560 = -r44553;
double r44561 = log(r44560);
double r44562 = base;
double r44563 = log(r44562);
double r44564 = r44561 * r44563;
double r44565 = r44559 + r44564;
double r44566 = 2.0;
double r44567 = pow(r44563, r44566);
double r44568 = r44558 * r44558;
double r44569 = r44567 + r44568;
double r44570 = sqrt(r44569);
double r44571 = r44565 / r44570;
double r44572 = r44563 * r44563;
double r44573 = r44572 + r44568;
double r44574 = sqrt(r44573);
double r44575 = r44571 / r44574;
double r44576 = 2.521155375520642e-231;
bool r44577 = r44553 <= r44576;
double r44578 = r44553 * r44553;
double r44579 = r44556 * r44556;
double r44580 = r44578 + r44579;
double r44581 = sqrt(r44580);
double r44582 = log(r44581);
double r44583 = r44563 * r44582;
double r44584 = r44583 + r44559;
double r44585 = r44584 / r44570;
double r44586 = r44585 / r44574;
double r44587 = 6.773165473524224e-176;
bool r44588 = r44553 <= r44587;
double r44589 = log(r44556);
double r44590 = r44589 * r44563;
double r44591 = r44559 + r44590;
double r44592 = 4.0;
double r44593 = pow(r44563, r44592);
double r44594 = pow(r44558, r44592);
double r44595 = r44593 - r44594;
double r44596 = r44591 / r44595;
double r44597 = r44572 - r44568;
double r44598 = r44596 * r44597;
double r44599 = 6.45957920562455e+20;
bool r44600 = r44553 <= r44599;
double r44601 = log(r44553);
double r44602 = -r44601;
double r44603 = -r44563;
double r44604 = r44602 / r44603;
double r44605 = r44600 ? r44586 : r44604;
double r44606 = r44588 ? r44598 : r44605;
double r44607 = r44577 ? r44586 : r44606;
double r44608 = r44555 ? r44575 : r44607;
return r44608;
}



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))))