\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 r1680820 = im;
double r1680821 = re;
double r1680822 = atan2(r1680820, r1680821);
double r1680823 = base;
double r1680824 = log(r1680823);
double r1680825 = r1680822 * r1680824;
double r1680826 = r1680821 * r1680821;
double r1680827 = r1680820 * r1680820;
double r1680828 = r1680826 + r1680827;
double r1680829 = sqrt(r1680828);
double r1680830 = log(r1680829);
double r1680831 = 0.0;
double r1680832 = r1680830 * r1680831;
double r1680833 = r1680825 - r1680832;
double r1680834 = r1680824 * r1680824;
double r1680835 = r1680831 * r1680831;
double r1680836 = r1680834 + r1680835;
double r1680837 = r1680833 / r1680836;
return r1680837;
}
double f(double re, double im, double base) {
double r1680838 = im;
double r1680839 = re;
double r1680840 = atan2(r1680838, r1680839);
double r1680841 = base;
double r1680842 = log(r1680841);
double r1680843 = r1680840 / r1680842;
return r1680843;
}



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))))