\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}}{-\left(\left(\log base \cdot \frac{1}{3} + \log \left(\sqrt{{\left(\frac{1}{base}\right)}^{\frac{-1}{3}}}\right) \cdot 2\right) + \log \left(\sqrt{{\left(\frac{1}{base}\right)}^{\frac{-1}{3}}}\right) \cdot 2\right)}double f(double re, double im, double base) {
double r111345 = im;
double r111346 = re;
double r111347 = atan2(r111345, r111346);
double r111348 = base;
double r111349 = log(r111348);
double r111350 = r111347 * r111349;
double r111351 = r111346 * r111346;
double r111352 = r111345 * r111345;
double r111353 = r111351 + r111352;
double r111354 = sqrt(r111353);
double r111355 = log(r111354);
double r111356 = 0.0;
double r111357 = r111355 * r111356;
double r111358 = r111350 - r111357;
double r111359 = r111349 * r111349;
double r111360 = r111356 * r111356;
double r111361 = r111359 + r111360;
double r111362 = r111358 / r111361;
return r111362;
}
double f(double re, double im, double base) {
double r111363 = im;
double r111364 = re;
double r111365 = atan2(r111363, r111364);
double r111366 = -r111365;
double r111367 = base;
double r111368 = log(r111367);
double r111369 = 0.3333333333333333;
double r111370 = r111368 * r111369;
double r111371 = 1.0;
double r111372 = r111371 / r111367;
double r111373 = -0.3333333333333333;
double r111374 = pow(r111372, r111373);
double r111375 = sqrt(r111374);
double r111376 = log(r111375);
double r111377 = 2.0;
double r111378 = r111376 * r111377;
double r111379 = r111370 + r111378;
double r111380 = r111379 + r111378;
double r111381 = -r111380;
double r111382 = r111366 / r111381;
return r111382;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 31.8
Taylor expanded around inf 0.3
rmApplied add-cube-cbrt0.3
Applied add-cube-cbrt0.3
Applied times-frac0.3
Applied log-prod0.4
Simplified0.4
Simplified0.4
Taylor expanded around inf 0.3
rmApplied add-sqr-sqrt0.3
Applied log-prod0.3
Applied distribute-lft-in0.3
Applied associate-+l+0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2020001
(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))))