\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}-1 \cdot \frac{\tan^{-1}_* \frac{im}{re}}{\left(-2\right) \cdot \log \left({\left(\frac{1}{base}\right)}^{\frac{-1}{3}}\right) + \log \left(\frac{1}{\sqrt[3]{base}}\right)}double f(double re, double im, double base) {
double r52632 = im;
double r52633 = re;
double r52634 = atan2(r52632, r52633);
double r52635 = base;
double r52636 = log(r52635);
double r52637 = r52634 * r52636;
double r52638 = r52633 * r52633;
double r52639 = r52632 * r52632;
double r52640 = r52638 + r52639;
double r52641 = sqrt(r52640);
double r52642 = log(r52641);
double r52643 = 0.0;
double r52644 = r52642 * r52643;
double r52645 = r52637 - r52644;
double r52646 = r52636 * r52636;
double r52647 = r52643 * r52643;
double r52648 = r52646 + r52647;
double r52649 = r52645 / r52648;
return r52649;
}
double f(double re, double im, double base) {
double r52650 = -1.0;
double r52651 = im;
double r52652 = re;
double r52653 = atan2(r52651, r52652);
double r52654 = 2.0;
double r52655 = -r52654;
double r52656 = 1.0;
double r52657 = base;
double r52658 = r52656 / r52657;
double r52659 = -0.3333333333333333;
double r52660 = pow(r52658, r52659);
double r52661 = log(r52660);
double r52662 = r52655 * r52661;
double r52663 = cbrt(r52657);
double r52664 = r52656 / r52663;
double r52665 = log(r52664);
double r52666 = r52662 + r52665;
double r52667 = r52653 / r52666;
double r52668 = r52650 * r52667;
return r52668;
}



Bits error versus re



Bits error versus im



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