\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 r28651 = im;
double r28652 = re;
double r28653 = atan2(r28651, r28652);
double r28654 = base;
double r28655 = log(r28654);
double r28656 = r28653 * r28655;
double r28657 = r28652 * r28652;
double r28658 = r28651 * r28651;
double r28659 = r28657 + r28658;
double r28660 = sqrt(r28659);
double r28661 = log(r28660);
double r28662 = 0.0;
double r28663 = r28661 * r28662;
double r28664 = r28656 - r28663;
double r28665 = r28655 * r28655;
double r28666 = r28662 * r28662;
double r28667 = r28665 + r28666;
double r28668 = r28664 / r28667;
return r28668;
}
double f(double re, double im, double base) {
double r28669 = im;
double r28670 = re;
double r28671 = atan2(r28669, r28670);
double r28672 = base;
double r28673 = log(r28672);
double r28674 = -r28673;
double r28675 = r28671 / r28674;
double r28676 = -r28675;
return r28676;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 31.8
Taylor expanded around inf 0.3
Simplified0.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))))