\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 -3430107507575859710:\\
\;\;\;\;\frac{\log \left(-1 \cdot re\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}\\
\mathbf{elif}\;re \le -1.8970684490263893 \cdot 10^{-253}:\\
\;\;\;\;\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\left(-{0.0}^{3}\right) \cdot 0.0 + {\left(\log base\right)}^{4}} \cdot \left(\log base \cdot \log base - 0.0 \cdot 0.0\right)\\
\mathbf{elif}\;re \le 5.99350299604991836 \cdot 10^{-196}:\\
\;\;\;\;\frac{\log im}{\log base}\\
\mathbf{elif}\;re \le 1.1632720701534676 \cdot 10^{72}:\\
\;\;\;\;\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\left(-{0.0}^{3}\right) \cdot 0.0 + {\left(\log base\right)}^{4}} \cdot \left(\log base \cdot \log base - 0.0 \cdot 0.0\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\log \left(\frac{1}{re}\right)}{\log \left(\frac{1}{base}\right)}\\
\end{array}double f(double re, double im, double base) {
double r44764 = re;
double r44765 = r44764 * r44764;
double r44766 = im;
double r44767 = r44766 * r44766;
double r44768 = r44765 + r44767;
double r44769 = sqrt(r44768);
double r44770 = log(r44769);
double r44771 = base;
double r44772 = log(r44771);
double r44773 = r44770 * r44772;
double r44774 = atan2(r44766, r44764);
double r44775 = 0.0;
double r44776 = r44774 * r44775;
double r44777 = r44773 + r44776;
double r44778 = r44772 * r44772;
double r44779 = r44775 * r44775;
double r44780 = r44778 + r44779;
double r44781 = r44777 / r44780;
return r44781;
}
double f(double re, double im, double base) {
double r44782 = re;
double r44783 = -3.4301075075758597e+18;
bool r44784 = r44782 <= r44783;
double r44785 = -1.0;
double r44786 = r44785 * r44782;
double r44787 = log(r44786);
double r44788 = base;
double r44789 = log(r44788);
double r44790 = r44787 * r44789;
double r44791 = im;
double r44792 = atan2(r44791, r44782);
double r44793 = 0.0;
double r44794 = r44792 * r44793;
double r44795 = r44790 + r44794;
double r44796 = r44789 * r44789;
double r44797 = r44793 * r44793;
double r44798 = r44796 + r44797;
double r44799 = r44795 / r44798;
double r44800 = -1.8970684490263893e-253;
bool r44801 = r44782 <= r44800;
double r44802 = r44782 * r44782;
double r44803 = r44791 * r44791;
double r44804 = r44802 + r44803;
double r44805 = sqrt(r44804);
double r44806 = log(r44805);
double r44807 = r44806 * r44789;
double r44808 = r44807 + r44794;
double r44809 = 3.0;
double r44810 = pow(r44793, r44809);
double r44811 = -r44810;
double r44812 = r44811 * r44793;
double r44813 = 4.0;
double r44814 = pow(r44789, r44813);
double r44815 = r44812 + r44814;
double r44816 = r44808 / r44815;
double r44817 = r44796 - r44797;
double r44818 = r44816 * r44817;
double r44819 = 5.993502996049918e-196;
bool r44820 = r44782 <= r44819;
double r44821 = log(r44791);
double r44822 = r44821 / r44789;
double r44823 = 1.1632720701534676e+72;
bool r44824 = r44782 <= r44823;
double r44825 = 1.0;
double r44826 = r44825 / r44782;
double r44827 = log(r44826);
double r44828 = r44825 / r44788;
double r44829 = log(r44828);
double r44830 = r44827 / r44829;
double r44831 = r44824 ? r44818 : r44830;
double r44832 = r44820 ? r44822 : r44831;
double r44833 = r44801 ? r44818 : r44832;
double r44834 = r44784 ? r44799 : r44833;
return r44834;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
if re < -3.4301075075758597e+18Initial program 42.7
Taylor expanded around -inf 12.5
if -3.4301075075758597e+18 < re < -1.8970684490263893e-253 or 5.993502996049918e-196 < re < 1.1632720701534676e+72Initial program 19.6
rmApplied flip-+19.6
Applied associate-/r/19.6
Simplified19.6
if -1.8970684490263893e-253 < re < 5.993502996049918e-196Initial program 32.4
Taylor expanded around 0 33.9
if 1.1632720701534676e+72 < re Initial program 46.3
Taylor expanded around inf 9.5
Final simplification17.9
herbie shell --seed 2020021
(FPCore (re im base)
:name "math.log/2 on complex, real part"
:precision binary64
(/ (+ (* (log (sqrt (+ (* re re) (* im im)))) (log base)) (* (atan2 im re) 0.0)) (+ (* (log base) (log base)) (* 0.0 0.0))))