\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}}{\left(-2\right) \cdot \log \left(e^{\log \left({base}^{\frac{1}{3}}\right)}\right) + \log \left(\frac{1}{\sqrt[3]{base}}\right)}double f(double re, double im, double base) {
double r46850 = im;
double r46851 = re;
double r46852 = atan2(r46850, r46851);
double r46853 = base;
double r46854 = log(r46853);
double r46855 = r46852 * r46854;
double r46856 = r46851 * r46851;
double r46857 = r46850 * r46850;
double r46858 = r46856 + r46857;
double r46859 = sqrt(r46858);
double r46860 = log(r46859);
double r46861 = 0.0;
double r46862 = r46860 * r46861;
double r46863 = r46855 - r46862;
double r46864 = r46854 * r46854;
double r46865 = r46861 * r46861;
double r46866 = r46864 + r46865;
double r46867 = r46863 / r46866;
return r46867;
}
double f(double re, double im, double base) {
double r46868 = -1.0;
double r46869 = im;
double r46870 = re;
double r46871 = atan2(r46869, r46870);
double r46872 = 2.0;
double r46873 = -r46872;
double r46874 = base;
double r46875 = 0.3333333333333333;
double r46876 = pow(r46874, r46875);
double r46877 = log(r46876);
double r46878 = exp(r46877);
double r46879 = log(r46878);
double r46880 = r46873 * r46879;
double r46881 = 1.0;
double r46882 = cbrt(r46874);
double r46883 = r46881 / r46882;
double r46884 = log(r46883);
double r46885 = r46880 + r46884;
double r46886 = r46871 / r46885;
double r46887 = r46868 * r46886;
return r46887;
}



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 add-cube-cbrt0.3
Applied times-frac0.3
Applied log-prod0.4
Simplified0.4
Simplified0.4
rmApplied add-exp-log0.4
Simplified0.3
Final simplification0.3
herbie shell --seed 2020046
(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))))