\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 r48162 = im;
double r48163 = re;
double r48164 = atan2(r48162, r48163);
double r48165 = base;
double r48166 = log(r48165);
double r48167 = r48164 * r48166;
double r48168 = r48163 * r48163;
double r48169 = r48162 * r48162;
double r48170 = r48168 + r48169;
double r48171 = sqrt(r48170);
double r48172 = log(r48171);
double r48173 = 0.0;
double r48174 = r48172 * r48173;
double r48175 = r48167 - r48174;
double r48176 = r48166 * r48166;
double r48177 = r48173 * r48173;
double r48178 = r48176 + r48177;
double r48179 = r48175 / r48178;
return r48179;
}
double f(double re, double im, double base) {
double r48180 = -1.0;
double r48181 = im;
double r48182 = re;
double r48183 = atan2(r48181, r48182);
double r48184 = 2.0;
double r48185 = -r48184;
double r48186 = 1.0;
double r48187 = base;
double r48188 = r48186 / r48187;
double r48189 = -0.3333333333333333;
double r48190 = pow(r48188, r48189);
double r48191 = log(r48190);
double r48192 = r48185 * r48191;
double r48193 = cbrt(r48187);
double r48194 = r48186 / r48193;
double r48195 = log(r48194);
double r48196 = r48192 + r48195;
double r48197 = r48183 / r48196;
double r48198 = r48180 * r48197;
return r48198;
}



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 2020002 +o rules:numerics
(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))))