\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{\tan^{-1}_* \frac{im}{re}}{\log base}double f(double re, double im, double base) {
double r1680834 = im;
double r1680835 = re;
double r1680836 = atan2(r1680834, r1680835);
double r1680837 = base;
double r1680838 = log(r1680837);
double r1680839 = r1680836 * r1680838;
double r1680840 = r1680835 * r1680835;
double r1680841 = r1680834 * r1680834;
double r1680842 = r1680840 + r1680841;
double r1680843 = sqrt(r1680842);
double r1680844 = log(r1680843);
double r1680845 = 0.0;
double r1680846 = r1680844 * r1680845;
double r1680847 = r1680839 - r1680846;
double r1680848 = r1680838 * r1680838;
double r1680849 = r1680845 * r1680845;
double r1680850 = r1680848 + r1680849;
double r1680851 = r1680847 / r1680850;
return r1680851;
}
double f(double re, double im, double base) {
double r1680852 = im;
double r1680853 = re;
double r1680854 = atan2(r1680852, r1680853);
double r1680855 = base;
double r1680856 = log(r1680855);
double r1680857 = r1680854 / r1680856;
return r1680857;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 31.6
Taylor expanded around 0 0.3
Final simplification0.3
herbie shell --seed 2019172
(FPCore (re im base)
:name "math.log/2 on complex, imaginary part"
(/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0.0)) (+ (* (log base) (log base)) (* 0.0 0.0))))