\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 r30542 = im;
double r30543 = re;
double r30544 = atan2(r30542, r30543);
double r30545 = base;
double r30546 = log(r30545);
double r30547 = r30544 * r30546;
double r30548 = r30543 * r30543;
double r30549 = r30542 * r30542;
double r30550 = r30548 + r30549;
double r30551 = sqrt(r30550);
double r30552 = log(r30551);
double r30553 = 0.0;
double r30554 = r30552 * r30553;
double r30555 = r30547 - r30554;
double r30556 = r30546 * r30546;
double r30557 = r30553 * r30553;
double r30558 = r30556 + r30557;
double r30559 = r30555 / r30558;
return r30559;
}
double f(double re, double im, double base) {
double r30560 = im;
double r30561 = re;
double r30562 = atan2(r30560, r30561);
double r30563 = base;
double r30564 = log(r30563);
double r30565 = r30562 / r30564;
return r30565;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 31.8
Taylor expanded around 0 0.3
Final simplification0.3
herbie shell --seed 2019323
(FPCore (re im base)
:name "math.log/2 on complex, imaginary part"
:precision binary64
(/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0.0)) (+ (* (log base) (log base)) (* 0.0 0.0))))