\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 r791627 = im;
double r791628 = re;
double r791629 = atan2(r791627, r791628);
double r791630 = base;
double r791631 = log(r791630);
double r791632 = r791629 * r791631;
double r791633 = r791628 * r791628;
double r791634 = r791627 * r791627;
double r791635 = r791633 + r791634;
double r791636 = sqrt(r791635);
double r791637 = log(r791636);
double r791638 = 0.0;
double r791639 = r791637 * r791638;
double r791640 = r791632 - r791639;
double r791641 = r791631 * r791631;
double r791642 = r791638 * r791638;
double r791643 = r791641 + r791642;
double r791644 = r791640 / r791643;
return r791644;
}
double f(double re, double im, double base) {
double r791645 = im;
double r791646 = re;
double r791647 = atan2(r791645, r791646);
double r791648 = base;
double r791649 = log(r791648);
double r791650 = r791647 / r791649;
return r791650;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 31.4
Simplified0.3
rmApplied clear-num0.6
rmApplied div-inv0.6
Taylor expanded around 0 0.3
Final simplification0.3
herbie shell --seed 2019151
(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))))