\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 r21978 = im;
double r21979 = re;
double r21980 = atan2(r21978, r21979);
double r21981 = base;
double r21982 = log(r21981);
double r21983 = r21980 * r21982;
double r21984 = r21979 * r21979;
double r21985 = r21978 * r21978;
double r21986 = r21984 + r21985;
double r21987 = sqrt(r21986);
double r21988 = log(r21987);
double r21989 = 0.0;
double r21990 = r21988 * r21989;
double r21991 = r21983 - r21990;
double r21992 = r21982 * r21982;
double r21993 = r21989 * r21989;
double r21994 = r21992 + r21993;
double r21995 = r21991 / r21994;
return r21995;
}
double f(double re, double im, double base) {
double r21996 = im;
double r21997 = re;
double r21998 = atan2(r21996, r21997);
double r21999 = base;
double r22000 = log(r21999);
double r22001 = r21998 / r22000;
return r22001;
}



Bits error versus re



Bits error versus im



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