\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 r35561 = im;
double r35562 = re;
double r35563 = atan2(r35561, r35562);
double r35564 = base;
double r35565 = log(r35564);
double r35566 = r35563 * r35565;
double r35567 = r35562 * r35562;
double r35568 = r35561 * r35561;
double r35569 = r35567 + r35568;
double r35570 = sqrt(r35569);
double r35571 = log(r35570);
double r35572 = 0.0;
double r35573 = r35571 * r35572;
double r35574 = r35566 - r35573;
double r35575 = r35565 * r35565;
double r35576 = r35572 * r35572;
double r35577 = r35575 + r35576;
double r35578 = r35574 / r35577;
return r35578;
}
double f(double re, double im, double base) {
double r35579 = im;
double r35580 = re;
double r35581 = atan2(r35579, r35580);
double r35582 = base;
double r35583 = log(r35582);
double r35584 = r35581 / r35583;
return r35584;
}



Bits error versus re



Bits error versus im



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