\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 r85771 = im;
double r85772 = re;
double r85773 = atan2(r85771, r85772);
double r85774 = base;
double r85775 = log(r85774);
double r85776 = r85773 * r85775;
double r85777 = r85772 * r85772;
double r85778 = r85771 * r85771;
double r85779 = r85777 + r85778;
double r85780 = sqrt(r85779);
double r85781 = log(r85780);
double r85782 = 0.0;
double r85783 = r85781 * r85782;
double r85784 = r85776 - r85783;
double r85785 = r85775 * r85775;
double r85786 = r85782 * r85782;
double r85787 = r85785 + r85786;
double r85788 = r85784 / r85787;
return r85788;
}
double f(double re, double im, double base) {
double r85789 = im;
double r85790 = re;
double r85791 = atan2(r85789, r85790);
double r85792 = base;
double r85793 = log(r85792);
double r85794 = r85791 / r85793;
return r85794;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 31.5
Taylor expanded around 0 0.3
Final simplification0.3
herbie shell --seed 2019306
(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))))