\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 r2002949 = im;
double r2002950 = re;
double r2002951 = atan2(r2002949, r2002950);
double r2002952 = base;
double r2002953 = log(r2002952);
double r2002954 = r2002951 * r2002953;
double r2002955 = r2002950 * r2002950;
double r2002956 = r2002949 * r2002949;
double r2002957 = r2002955 + r2002956;
double r2002958 = sqrt(r2002957);
double r2002959 = log(r2002958);
double r2002960 = 0.0;
double r2002961 = r2002959 * r2002960;
double r2002962 = r2002954 - r2002961;
double r2002963 = r2002953 * r2002953;
double r2002964 = r2002960 * r2002960;
double r2002965 = r2002963 + r2002964;
double r2002966 = r2002962 / r2002965;
return r2002966;
}
double f(double re, double im, double base) {
double r2002967 = im;
double r2002968 = re;
double r2002969 = atan2(r2002967, r2002968);
double r2002970 = base;
double r2002971 = log(r2002970);
double r2002972 = r2002969 / r2002971;
return r2002972;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 30.8
Simplified0.3
Final simplification0.3
herbie shell --seed 2019152 +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))))