\frac{\tan^{-1}_* \frac{im}{re} \cdot \log base - \log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}-1 \cdot \frac{\tan^{-1}_* \frac{im}{re}}{2 \cdot \left(\log \left(\sqrt[3]{\sqrt[3]{\frac{1}{base}}}\right) + \log \left({\left(\frac{1}{base}\right)}^{\frac{1}{3}}\right)\right) + \log \left(\sqrt[3]{\sqrt[3]{\frac{1}{base}}}\right)}double f(double re, double im, double base) {
double r38793 = im;
double r38794 = re;
double r38795 = atan2(r38793, r38794);
double r38796 = base;
double r38797 = log(r38796);
double r38798 = r38795 * r38797;
double r38799 = r38794 * r38794;
double r38800 = r38793 * r38793;
double r38801 = r38799 + r38800;
double r38802 = sqrt(r38801);
double r38803 = log(r38802);
double r38804 = 0.0;
double r38805 = r38803 * r38804;
double r38806 = r38798 - r38805;
double r38807 = r38797 * r38797;
double r38808 = r38804 * r38804;
double r38809 = r38807 + r38808;
double r38810 = r38806 / r38809;
return r38810;
}
double f(double re, double im, double base) {
double r38811 = -1.0;
double r38812 = im;
double r38813 = re;
double r38814 = atan2(r38812, r38813);
double r38815 = 2.0;
double r38816 = 1.0;
double r38817 = base;
double r38818 = r38816 / r38817;
double r38819 = cbrt(r38818);
double r38820 = cbrt(r38819);
double r38821 = log(r38820);
double r38822 = 0.3333333333333333;
double r38823 = pow(r38818, r38822);
double r38824 = log(r38823);
double r38825 = r38821 + r38824;
double r38826 = r38815 * r38825;
double r38827 = r38826 + r38821;
double r38828 = r38814 / r38827;
double r38829 = r38811 * r38828;
return r38829;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 31.8
Taylor expanded around inf 0.3
rmApplied add-cube-cbrt0.3
Applied log-prod0.4
Simplified0.4
rmApplied add-cube-cbrt0.4
Applied log-prod0.4
Applied associate-+r+0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019346
(FPCore (re im base)
:name "math.log/2 on complex, imaginary part"
:precision binary64
(/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0.0)) (+ (* (log base) (log base)) (* 0.0 0.0))))