\frac{\tan^{-1}_* \frac{im}{re} \cdot \log base - \log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot 0}{\log base \cdot \log base + 0 \cdot 0}\frac{\tan^{-1}_* \frac{im}{re}}{\log base}double f(double re, double im, double base) {
double r2345778 = im;
double r2345779 = re;
double r2345780 = atan2(r2345778, r2345779);
double r2345781 = base;
double r2345782 = log(r2345781);
double r2345783 = r2345780 * r2345782;
double r2345784 = r2345779 * r2345779;
double r2345785 = r2345778 * r2345778;
double r2345786 = r2345784 + r2345785;
double r2345787 = sqrt(r2345786);
double r2345788 = log(r2345787);
double r2345789 = 0.0;
double r2345790 = r2345788 * r2345789;
double r2345791 = r2345783 - r2345790;
double r2345792 = r2345782 * r2345782;
double r2345793 = r2345789 * r2345789;
double r2345794 = r2345792 + r2345793;
double r2345795 = r2345791 / r2345794;
return r2345795;
}
double f(double re, double im, double base) {
double r2345796 = im;
double r2345797 = re;
double r2345798 = atan2(r2345796, r2345797);
double r2345799 = base;
double r2345800 = log(r2345799);
double r2345801 = r2345798 / r2345800;
return r2345801;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 31.6
Simplified0.3
Final simplification0.3
herbie shell --seed 2019163 +o rules:numerics
(FPCore (re im base)
:name "math.log/2 on complex, imaginary part"
(/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))))