\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 r691668 = im;
double r691669 = re;
double r691670 = atan2(r691668, r691669);
double r691671 = base;
double r691672 = log(r691671);
double r691673 = r691670 * r691672;
double r691674 = r691669 * r691669;
double r691675 = r691668 * r691668;
double r691676 = r691674 + r691675;
double r691677 = sqrt(r691676);
double r691678 = log(r691677);
double r691679 = 0.0;
double r691680 = r691678 * r691679;
double r691681 = r691673 - r691680;
double r691682 = r691672 * r691672;
double r691683 = r691679 * r691679;
double r691684 = r691682 + r691683;
double r691685 = r691681 / r691684;
return r691685;
}
double f(double re, double im, double base) {
double r691686 = im;
double r691687 = re;
double r691688 = atan2(r691686, r691687);
double r691689 = base;
double r691690 = log(r691689);
double r691691 = r691688 / r691690;
return r691691;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 31.2
Simplified0.3
Final simplification0.3
herbie shell --seed 2019156 +o rules:numerics
(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))))