\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(\sqrt[3]{base}\right) + \log \left({base}^{\left(-\frac{1}{3}\right)}\right)}double f(double re, double im, double base) {
double r214 = im;
double r215 = re;
double r216 = atan2(r214, r215);
double r217 = base;
double r218 = log(r217);
double r219 = r216 * r218;
double r220 = r215 * r215;
double r221 = r214 * r214;
double r222 = r220 + r221;
double r223 = sqrt(r222);
double r224 = log(r223);
double r225 = 0.0;
double r226 = r224 * r225;
double r227 = r219 - r226;
double r228 = r218 * r218;
double r229 = r225 * r225;
double r230 = r228 + r229;
double r231 = r227 / r230;
return r231;
}
double f(double re, double im, double base) {
double r232 = -1.0;
double r233 = im;
double r234 = re;
double r235 = atan2(r233, r234);
double r236 = 2.0;
double r237 = -r236;
double r238 = base;
double r239 = cbrt(r238);
double r240 = log(r239);
double r241 = r237 * r240;
double r242 = 0.3333333333333333;
double r243 = -r242;
double r244 = pow(r238, r243);
double r245 = log(r244);
double r246 = r241 + r245;
double r247 = r235 / r246;
double r248 = r232 * r247;
return r248;
}



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 pow1/30.3
Applied pow-flip0.3
Final simplification0.3
herbie shell --seed 2020025
(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))))