\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 r2500870 = im;
double r2500871 = re;
double r2500872 = atan2(r2500870, r2500871);
double r2500873 = base;
double r2500874 = log(r2500873);
double r2500875 = r2500872 * r2500874;
double r2500876 = r2500871 * r2500871;
double r2500877 = r2500870 * r2500870;
double r2500878 = r2500876 + r2500877;
double r2500879 = sqrt(r2500878);
double r2500880 = log(r2500879);
double r2500881 = 0.0;
double r2500882 = r2500880 * r2500881;
double r2500883 = r2500875 - r2500882;
double r2500884 = r2500874 * r2500874;
double r2500885 = r2500881 * r2500881;
double r2500886 = r2500884 + r2500885;
double r2500887 = r2500883 / r2500886;
return r2500887;
}
double f(double re, double im, double base) {
double r2500888 = im;
double r2500889 = re;
double r2500890 = atan2(r2500888, r2500889);
double r2500891 = base;
double r2500892 = log(r2500891);
double r2500893 = r2500890 / r2500892;
return r2500893;
}



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