\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 r93924 = im;
double r93925 = re;
double r93926 = atan2(r93924, r93925);
double r93927 = base;
double r93928 = log(r93927);
double r93929 = r93926 * r93928;
double r93930 = r93925 * r93925;
double r93931 = r93924 * r93924;
double r93932 = r93930 + r93931;
double r93933 = sqrt(r93932);
double r93934 = log(r93933);
double r93935 = 0.0;
double r93936 = r93934 * r93935;
double r93937 = r93929 - r93936;
double r93938 = r93928 * r93928;
double r93939 = r93935 * r93935;
double r93940 = r93938 + r93939;
double r93941 = r93937 / r93940;
return r93941;
}
double f(double re, double im, double base) {
double r93942 = im;
double r93943 = re;
double r93944 = atan2(r93942, r93943);
double r93945 = base;
double r93946 = log(r93945);
double r93947 = r93944 / r93946;
return r93947;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 31.8
Taylor expanded around 0 0.3
rmApplied clear-num0.5
rmApplied div-inv0.6
Applied associate-/r*0.5
Taylor expanded around -inf 64.0
Simplified0.3
Final simplification0.3
herbie shell --seed 2020046
(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))))