\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}}{\log \left({base}^{\frac{-1}{3}}\right) - 2 \cdot \log \left({base}^{\frac{1}{3}}\right)}double f(double re, double im, double base) {
double r42335 = im;
double r42336 = re;
double r42337 = atan2(r42335, r42336);
double r42338 = base;
double r42339 = log(r42338);
double r42340 = r42337 * r42339;
double r42341 = r42336 * r42336;
double r42342 = r42335 * r42335;
double r42343 = r42341 + r42342;
double r42344 = sqrt(r42343);
double r42345 = log(r42344);
double r42346 = 0.0;
double r42347 = r42345 * r42346;
double r42348 = r42340 - r42347;
double r42349 = r42339 * r42339;
double r42350 = r42346 * r42346;
double r42351 = r42349 + r42350;
double r42352 = r42348 / r42351;
return r42352;
}
double f(double re, double im, double base) {
double r42353 = -1.0;
double r42354 = im;
double r42355 = re;
double r42356 = atan2(r42354, r42355);
double r42357 = base;
double r42358 = -0.3333333333333333;
double r42359 = pow(r42357, r42358);
double r42360 = log(r42359);
double r42361 = 2.0;
double r42362 = 0.3333333333333333;
double r42363 = pow(r42357, r42362);
double r42364 = log(r42363);
double r42365 = r42361 * r42364;
double r42366 = r42360 - r42365;
double r42367 = r42356 / r42366;
double r42368 = r42353 * r42367;
return r42368;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 31.9
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 0 0.4
Final simplification0.4
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))))