\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 -1.257001761960975219228890631627023826637 \cdot 10^{125}:\\
\;\;\;\;\frac{\log \left(\frac{-1}{re}\right)}{\log base} \cdot -1\\
\mathbf{elif}\;re \le 2.391674267622185315690407487382754096962 \cdot 10^{96}:\\
\;\;\;\;\frac{{\left(\log base \cdot \log \left(\sqrt{im \cdot im + re \cdot re}\right)\right)}^{3} + {\left(0.0 \cdot \tan^{-1}_* \frac{im}{re}\right)}^{3}}{\left(\left(0.0 \cdot \tan^{-1}_* \frac{im}{re} - \log base \cdot \log \left(\sqrt{im \cdot im + re \cdot re}\right)\right) \cdot \left(0.0 \cdot \tan^{-1}_* \frac{im}{re}\right) + \left(\log base \cdot \log \left(\sqrt{im \cdot im + re \cdot re}\right)\right) \cdot \left(\log base \cdot \log \left(\sqrt{im \cdot im + re \cdot re}\right)\right)\right) \cdot \left(\log base \cdot \log base + 0.0 \cdot 0.0\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{-\log re}{-\log base}\\
\end{array}double f(double re, double im, double base) {
double r1899546 = re;
double r1899547 = r1899546 * r1899546;
double r1899548 = im;
double r1899549 = r1899548 * r1899548;
double r1899550 = r1899547 + r1899549;
double r1899551 = sqrt(r1899550);
double r1899552 = log(r1899551);
double r1899553 = base;
double r1899554 = log(r1899553);
double r1899555 = r1899552 * r1899554;
double r1899556 = atan2(r1899548, r1899546);
double r1899557 = 0.0;
double r1899558 = r1899556 * r1899557;
double r1899559 = r1899555 + r1899558;
double r1899560 = r1899554 * r1899554;
double r1899561 = r1899557 * r1899557;
double r1899562 = r1899560 + r1899561;
double r1899563 = r1899559 / r1899562;
return r1899563;
}
double f(double re, double im, double base) {
double r1899564 = re;
double r1899565 = -1.2570017619609752e+125;
bool r1899566 = r1899564 <= r1899565;
double r1899567 = -1.0;
double r1899568 = r1899567 / r1899564;
double r1899569 = log(r1899568);
double r1899570 = base;
double r1899571 = log(r1899570);
double r1899572 = r1899569 / r1899571;
double r1899573 = r1899572 * r1899567;
double r1899574 = 2.3916742676221853e+96;
bool r1899575 = r1899564 <= r1899574;
double r1899576 = im;
double r1899577 = r1899576 * r1899576;
double r1899578 = r1899564 * r1899564;
double r1899579 = r1899577 + r1899578;
double r1899580 = sqrt(r1899579);
double r1899581 = log(r1899580);
double r1899582 = r1899571 * r1899581;
double r1899583 = 3.0;
double r1899584 = pow(r1899582, r1899583);
double r1899585 = 0.0;
double r1899586 = atan2(r1899576, r1899564);
double r1899587 = r1899585 * r1899586;
double r1899588 = pow(r1899587, r1899583);
double r1899589 = r1899584 + r1899588;
double r1899590 = r1899587 - r1899582;
double r1899591 = r1899590 * r1899587;
double r1899592 = r1899582 * r1899582;
double r1899593 = r1899591 + r1899592;
double r1899594 = r1899571 * r1899571;
double r1899595 = r1899585 * r1899585;
double r1899596 = r1899594 + r1899595;
double r1899597 = r1899593 * r1899596;
double r1899598 = r1899589 / r1899597;
double r1899599 = log(r1899564);
double r1899600 = -r1899599;
double r1899601 = -r1899571;
double r1899602 = r1899600 / r1899601;
double r1899603 = r1899575 ? r1899598 : r1899602;
double r1899604 = r1899566 ? r1899573 : r1899603;
return r1899604;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
if re < -1.2570017619609752e+125Initial program 56.0
Taylor expanded around -inf 64.0
Simplified7.5
if -1.2570017619609752e+125 < re < 2.3916742676221853e+96Initial program 21.8
rmApplied flip3-+21.9
Applied associate-/l/21.9
Simplified21.9
if 2.3916742676221853e+96 < re Initial program 52.3
Taylor expanded around inf 9.2
Simplified9.2
Final simplification17.5
herbie shell --seed 2019171
(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))))