\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 r883547 = im;
double r883548 = re;
double r883549 = atan2(r883547, r883548);
double r883550 = base;
double r883551 = log(r883550);
double r883552 = r883549 * r883551;
double r883553 = r883548 * r883548;
double r883554 = r883547 * r883547;
double r883555 = r883553 + r883554;
double r883556 = sqrt(r883555);
double r883557 = log(r883556);
double r883558 = 0.0;
double r883559 = r883557 * r883558;
double r883560 = r883552 - r883559;
double r883561 = r883551 * r883551;
double r883562 = r883558 * r883558;
double r883563 = r883561 + r883562;
double r883564 = r883560 / r883563;
return r883564;
}
double f(double re, double im, double base) {
double r883565 = im;
double r883566 = re;
double r883567 = atan2(r883565, r883566);
double r883568 = base;
double r883569 = log(r883568);
double r883570 = r883567 / r883569;
return r883570;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 31.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019154
(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))))