\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 -607408167912425397009972097653407744:\\
\;\;\;\;\frac{\frac{\log \left(-1 \cdot re\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\
\mathbf{elif}\;re \le 2.971459169907414139317153887052668442521 \cdot 10^{47}:\\
\;\;\;\;\frac{\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\log re \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}\\
\end{array}double f(double re, double im, double base) {
double r41726 = re;
double r41727 = r41726 * r41726;
double r41728 = im;
double r41729 = r41728 * r41728;
double r41730 = r41727 + r41729;
double r41731 = sqrt(r41730);
double r41732 = log(r41731);
double r41733 = base;
double r41734 = log(r41733);
double r41735 = r41732 * r41734;
double r41736 = atan2(r41728, r41726);
double r41737 = 0.0;
double r41738 = r41736 * r41737;
double r41739 = r41735 + r41738;
double r41740 = r41734 * r41734;
double r41741 = r41737 * r41737;
double r41742 = r41740 + r41741;
double r41743 = r41739 / r41742;
return r41743;
}
double f(double re, double im, double base) {
double r41744 = re;
double r41745 = -6.074081679124254e+35;
bool r41746 = r41744 <= r41745;
double r41747 = -1.0;
double r41748 = r41747 * r41744;
double r41749 = log(r41748);
double r41750 = base;
double r41751 = log(r41750);
double r41752 = r41749 * r41751;
double r41753 = im;
double r41754 = atan2(r41753, r41744);
double r41755 = 0.0;
double r41756 = r41754 * r41755;
double r41757 = r41752 + r41756;
double r41758 = r41751 * r41751;
double r41759 = r41755 * r41755;
double r41760 = r41758 + r41759;
double r41761 = sqrt(r41760);
double r41762 = r41757 / r41761;
double r41763 = r41762 / r41761;
double r41764 = 2.971459169907414e+47;
bool r41765 = r41744 <= r41764;
double r41766 = r41744 * r41744;
double r41767 = r41753 * r41753;
double r41768 = r41766 + r41767;
double r41769 = sqrt(r41768);
double r41770 = log(r41769);
double r41771 = r41770 * r41751;
double r41772 = r41771 + r41756;
double r41773 = r41772 / r41761;
double r41774 = r41773 / r41761;
double r41775 = log(r41744);
double r41776 = r41775 * r41751;
double r41777 = r41776 + r41756;
double r41778 = r41777 / r41760;
double r41779 = r41765 ? r41774 : r41778;
double r41780 = r41746 ? r41763 : r41779;
return r41780;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
if re < -6.074081679124254e+35Initial program 43.4
rmApplied add-sqr-sqrt43.4
Applied associate-/r*43.4
Taylor expanded around -inf 11.0
if -6.074081679124254e+35 < re < 2.971459169907414e+47Initial program 22.0
rmApplied add-sqr-sqrt22.0
Applied associate-/r*21.9
if 2.971459169907414e+47 < re Initial program 45.5
Taylor expanded around inf 11.5
Final simplification17.5
herbie shell --seed 2019298
(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))))