\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(e^{\log \left({base}^{\frac{1}{3}}\right)}\right) + \log \left(\frac{1}{\sqrt[3]{base}}\right)}double f(double re, double im, double base) {
double r52212 = im;
double r52213 = re;
double r52214 = atan2(r52212, r52213);
double r52215 = base;
double r52216 = log(r52215);
double r52217 = r52214 * r52216;
double r52218 = r52213 * r52213;
double r52219 = r52212 * r52212;
double r52220 = r52218 + r52219;
double r52221 = sqrt(r52220);
double r52222 = log(r52221);
double r52223 = 0.0;
double r52224 = r52222 * r52223;
double r52225 = r52217 - r52224;
double r52226 = r52216 * r52216;
double r52227 = r52223 * r52223;
double r52228 = r52226 + r52227;
double r52229 = r52225 / r52228;
return r52229;
}
double f(double re, double im, double base) {
double r52230 = -1.0;
double r52231 = im;
double r52232 = re;
double r52233 = atan2(r52231, r52232);
double r52234 = 2.0;
double r52235 = -r52234;
double r52236 = base;
double r52237 = 0.3333333333333333;
double r52238 = pow(r52236, r52237);
double r52239 = log(r52238);
double r52240 = exp(r52239);
double r52241 = log(r52240);
double r52242 = r52235 * r52241;
double r52243 = 1.0;
double r52244 = cbrt(r52236);
double r52245 = r52243 / r52244;
double r52246 = log(r52245);
double r52247 = r52242 + r52246;
double r52248 = r52233 / r52247;
double r52249 = r52230 * r52248;
return r52249;
}



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
rmApplied add-exp-log0.4
Simplified0.3
Final simplification0.3
herbie shell --seed 2020002
(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))))