\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{1}{\frac{\log base}{\tan^{-1}_* \frac{im}{re}}}double f(double re, double im, double base) {
double r1770947 = im;
double r1770948 = re;
double r1770949 = atan2(r1770947, r1770948);
double r1770950 = base;
double r1770951 = log(r1770950);
double r1770952 = r1770949 * r1770951;
double r1770953 = r1770948 * r1770948;
double r1770954 = r1770947 * r1770947;
double r1770955 = r1770953 + r1770954;
double r1770956 = sqrt(r1770955);
double r1770957 = log(r1770956);
double r1770958 = 0.0;
double r1770959 = r1770957 * r1770958;
double r1770960 = r1770952 - r1770959;
double r1770961 = r1770951 * r1770951;
double r1770962 = r1770958 * r1770958;
double r1770963 = r1770961 + r1770962;
double r1770964 = r1770960 / r1770963;
return r1770964;
}
double f(double re, double im, double base) {
double r1770965 = 1.0;
double r1770966 = base;
double r1770967 = log(r1770966);
double r1770968 = im;
double r1770969 = re;
double r1770970 = atan2(r1770968, r1770969);
double r1770971 = r1770967 / r1770970;
double r1770972 = r1770965 / r1770971;
return r1770972;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 31.4
Simplified0.3
rmApplied clear-num0.6
Final simplification0.6
herbie shell --seed 2019151 +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))))