\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}-\frac{\frac{\tan^{-1}_* \frac{im}{re}}{\log \left(\sqrt[3]{base}\right)}}{\left(-2\right) + -1}double f(double re, double im, double base) {
double r39808 = im;
double r39809 = re;
double r39810 = atan2(r39808, r39809);
double r39811 = base;
double r39812 = log(r39811);
double r39813 = r39810 * r39812;
double r39814 = r39809 * r39809;
double r39815 = r39808 * r39808;
double r39816 = r39814 + r39815;
double r39817 = sqrt(r39816);
double r39818 = log(r39817);
double r39819 = 0.0;
double r39820 = r39818 * r39819;
double r39821 = r39813 - r39820;
double r39822 = r39812 * r39812;
double r39823 = r39819 * r39819;
double r39824 = r39822 + r39823;
double r39825 = r39821 / r39824;
return r39825;
}
double f(double re, double im, double base) {
double r39826 = im;
double r39827 = re;
double r39828 = atan2(r39826, r39827);
double r39829 = base;
double r39830 = cbrt(r39829);
double r39831 = log(r39830);
double r39832 = r39828 / r39831;
double r39833 = 2.0;
double r39834 = -r39833;
double r39835 = -1.0;
double r39836 = r39834 + r39835;
double r39837 = r39832 / r39836;
double r39838 = -r39837;
return r39838;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 31.9
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 inv-pow0.4
Applied log-pow0.4
Applied distribute-rgt-out0.4
Applied associate-/r*0.4
rmApplied *-un-lft-identity0.4
Final simplification0.4
herbie shell --seed 2020024
(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))))