\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}\frac{\log \left(1 \cdot \left(\left(\sqrt[3]{\mathsf{hypot}\left(re, im\right)} \cdot \sqrt[3]{\mathsf{hypot}\left(re, im\right)}\right) \cdot \sqrt[3]{\mathsf{hypot}\left(re, im\right)}\right)\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}double f(double re, double im, double base) {
double r110832 = re;
double r110833 = r110832 * r110832;
double r110834 = im;
double r110835 = r110834 * r110834;
double r110836 = r110833 + r110835;
double r110837 = sqrt(r110836);
double r110838 = log(r110837);
double r110839 = base;
double r110840 = log(r110839);
double r110841 = r110838 * r110840;
double r110842 = atan2(r110834, r110832);
double r110843 = 0.0;
double r110844 = r110842 * r110843;
double r110845 = r110841 + r110844;
double r110846 = r110840 * r110840;
double r110847 = r110843 * r110843;
double r110848 = r110846 + r110847;
double r110849 = r110845 / r110848;
return r110849;
}
double f(double re, double im, double base) {
double r110850 = 1.0;
double r110851 = re;
double r110852 = im;
double r110853 = hypot(r110851, r110852);
double r110854 = cbrt(r110853);
double r110855 = r110854 * r110854;
double r110856 = r110855 * r110854;
double r110857 = r110850 * r110856;
double r110858 = log(r110857);
double r110859 = base;
double r110860 = log(r110859);
double r110861 = r110858 * r110860;
double r110862 = atan2(r110852, r110851);
double r110863 = 0.0;
double r110864 = r110862 * r110863;
double r110865 = r110861 + r110864;
double r110866 = r110860 * r110860;
double r110867 = r110863 * r110863;
double r110868 = r110866 + r110867;
double r110869 = r110865 / r110868;
return r110869;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 32.1
rmApplied *-un-lft-identity32.1
Applied sqrt-prod32.1
Simplified32.1
Simplified0.5
rmApplied add-cube-cbrt0.5
Final simplification0.5
herbie shell --seed 2020024 +o rules:numerics
(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))))