\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 r976630 = im;
double r976631 = re;
double r976632 = atan2(r976630, r976631);
double r976633 = base;
double r976634 = log(r976633);
double r976635 = r976632 * r976634;
double r976636 = r976631 * r976631;
double r976637 = r976630 * r976630;
double r976638 = r976636 + r976637;
double r976639 = sqrt(r976638);
double r976640 = log(r976639);
double r976641 = 0.0;
double r976642 = r976640 * r976641;
double r976643 = r976635 - r976642;
double r976644 = r976634 * r976634;
double r976645 = r976641 * r976641;
double r976646 = r976644 + r976645;
double r976647 = r976643 / r976646;
return r976647;
}
double f(double re, double im, double base) {
double r976648 = im;
double r976649 = re;
double r976650 = atan2(r976648, r976649);
double r976651 = base;
double r976652 = log(r976651);
double r976653 = r976650 / r976652;
return r976653;
}



Bits error versus re



Bits error versus im



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