\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 r41696 = im;
double r41697 = re;
double r41698 = atan2(r41696, r41697);
double r41699 = base;
double r41700 = log(r41699);
double r41701 = r41698 * r41700;
double r41702 = r41697 * r41697;
double r41703 = r41696 * r41696;
double r41704 = r41702 + r41703;
double r41705 = sqrt(r41704);
double r41706 = log(r41705);
double r41707 = 0.0;
double r41708 = r41706 * r41707;
double r41709 = r41701 - r41708;
double r41710 = r41700 * r41700;
double r41711 = r41707 * r41707;
double r41712 = r41710 + r41711;
double r41713 = r41709 / r41712;
return r41713;
}
double f(double re, double im, double base) {
double r41714 = im;
double r41715 = re;
double r41716 = atan2(r41714, r41715);
double r41717 = -r41716;
double r41718 = base;
double r41719 = log(r41718);
double r41720 = -r41719;
double r41721 = r41717 / r41720;
return r41721;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 31.9
Taylor expanded around -inf 64.0
Simplified0.3
rmApplied flip-+0.3
Applied associate-/r/0.5
Simplified0.5
Taylor expanded around inf 0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019194
(FPCore (re im base)
:name "math.log/2 on complex, imaginary part"
(/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0.0)) (+ (* (log base) (log base)) (* 0.0 0.0))))