\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.26668856387439741 \cdot 10^{75}:\\
\;\;\;\;\frac{-\log \left(\frac{-1}{re}\right)}{\log base}\\
\mathbf{elif}\;re \le -2.4769300503399314 \cdot 10^{-193}:\\
\;\;\;\;\frac{1}{\frac{{\left(\log base\right)}^{2} + 0.0 \cdot 0.0}{\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right)\right) \cdot {\left(\log base\right)}^{2} - \left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right) \cdot \left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right)} \cdot \left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base - \tan^{-1}_* \frac{im}{re} \cdot 0.0\right)}\\
\mathbf{elif}\;re \le -8.12878475243222549 \cdot 10^{-249}:\\
\;\;\;\;\frac{\log im}{\log base}\\
\mathbf{elif}\;re \le 268683.768358791072:\\
\;\;\;\;\frac{1}{\frac{{\left(\log base\right)}^{2} + 0.0 \cdot 0.0}{\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right)\right) \cdot {\left(\log base\right)}^{2} - \left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right) \cdot \left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right)} \cdot \left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base - \tan^{-1}_* \frac{im}{re} \cdot 0.0\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{-\log re}{-\log base}\\
\end{array}double f(double re, double im, double base) {
double r33547 = re;
double r33548 = r33547 * r33547;
double r33549 = im;
double r33550 = r33549 * r33549;
double r33551 = r33548 + r33550;
double r33552 = sqrt(r33551);
double r33553 = log(r33552);
double r33554 = base;
double r33555 = log(r33554);
double r33556 = r33553 * r33555;
double r33557 = atan2(r33549, r33547);
double r33558 = 0.0;
double r33559 = r33557 * r33558;
double r33560 = r33556 + r33559;
double r33561 = r33555 * r33555;
double r33562 = r33558 * r33558;
double r33563 = r33561 + r33562;
double r33564 = r33560 / r33563;
return r33564;
}
double f(double re, double im, double base) {
double r33565 = re;
double r33566 = -1.2666885638743974e+75;
bool r33567 = r33565 <= r33566;
double r33568 = -1.0;
double r33569 = r33568 / r33565;
double r33570 = log(r33569);
double r33571 = -r33570;
double r33572 = base;
double r33573 = log(r33572);
double r33574 = r33571 / r33573;
double r33575 = -2.4769300503399314e-193;
bool r33576 = r33565 <= r33575;
double r33577 = 1.0;
double r33578 = 2.0;
double r33579 = pow(r33573, r33578);
double r33580 = 0.0;
double r33581 = r33580 * r33580;
double r33582 = r33579 + r33581;
double r33583 = r33565 * r33565;
double r33584 = im;
double r33585 = r33584 * r33584;
double r33586 = r33583 + r33585;
double r33587 = sqrt(r33586);
double r33588 = log(r33587);
double r33589 = r33588 * r33588;
double r33590 = r33589 * r33579;
double r33591 = atan2(r33584, r33565);
double r33592 = r33591 * r33580;
double r33593 = r33592 * r33592;
double r33594 = r33590 - r33593;
double r33595 = r33582 / r33594;
double r33596 = r33588 * r33573;
double r33597 = r33596 - r33592;
double r33598 = r33595 * r33597;
double r33599 = r33577 / r33598;
double r33600 = -8.128784752432225e-249;
bool r33601 = r33565 <= r33600;
double r33602 = log(r33584);
double r33603 = r33602 / r33573;
double r33604 = 268683.7683587911;
bool r33605 = r33565 <= r33604;
double r33606 = log(r33565);
double r33607 = -r33606;
double r33608 = -r33573;
double r33609 = r33607 / r33608;
double r33610 = r33605 ? r33599 : r33609;
double r33611 = r33601 ? r33603 : r33610;
double r33612 = r33576 ? r33599 : r33611;
double r33613 = r33567 ? r33574 : r33612;
return r33613;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
if re < -1.2666885638743974e+75Initial program 46.4
Taylor expanded around -inf 64.0
Simplified10.5
if -1.2666885638743974e+75 < re < -2.4769300503399314e-193 or -8.128784752432225e-249 < re < 268683.7683587911Initial program 22.0
rmApplied clear-num22.0
Simplified22.0
rmApplied flip-+22.1
Applied associate-/r/22.1
Simplified22.1
if -2.4769300503399314e-193 < re < -8.128784752432225e-249Initial program 32.8
Taylor expanded around 0 36.5
if 268683.7683587911 < re Initial program 41.0
Taylor expanded around inf 12.5
Simplified12.5
Final simplification18.2
herbie shell --seed 2019195
(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))))