\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 r84527 = im;
double r84528 = re;
double r84529 = atan2(r84527, r84528);
double r84530 = base;
double r84531 = log(r84530);
double r84532 = r84529 * r84531;
double r84533 = r84528 * r84528;
double r84534 = r84527 * r84527;
double r84535 = r84533 + r84534;
double r84536 = sqrt(r84535);
double r84537 = log(r84536);
double r84538 = 0.0;
double r84539 = r84537 * r84538;
double r84540 = r84532 - r84539;
double r84541 = r84531 * r84531;
double r84542 = r84538 * r84538;
double r84543 = r84541 + r84542;
double r84544 = r84540 / r84543;
return r84544;
}
double f(double re, double im, double base) {
double r84545 = im;
double r84546 = re;
double r84547 = atan2(r84545, r84546);
double r84548 = base;
double r84549 = log(r84548);
double r84550 = -r84549;
double r84551 = r84547 / r84550;
double r84552 = -r84551;
return r84552;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 31.9
Taylor expanded around inf 0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2020047
(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))))