\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(\frac{1}{base}\right)}double f(double re, double im, double base) {
double r42342 = im;
double r42343 = re;
double r42344 = atan2(r42342, r42343);
double r42345 = base;
double r42346 = log(r42345);
double r42347 = r42344 * r42346;
double r42348 = r42343 * r42343;
double r42349 = r42342 * r42342;
double r42350 = r42348 + r42349;
double r42351 = sqrt(r42350);
double r42352 = log(r42351);
double r42353 = 0.0;
double r42354 = r42352 * r42353;
double r42355 = r42347 - r42354;
double r42356 = r42346 * r42346;
double r42357 = r42353 * r42353;
double r42358 = r42356 + r42357;
double r42359 = r42355 / r42358;
return r42359;
}
double f(double re, double im, double base) {
double r42360 = -1.0;
double r42361 = im;
double r42362 = re;
double r42363 = atan2(r42361, r42362);
double r42364 = 1.0;
double r42365 = base;
double r42366 = r42364 / r42365;
double r42367 = log(r42366);
double r42368 = r42363 / r42367;
double r42369 = r42360 * r42368;
return r42369;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 31.4
rmApplied *-un-lft-identity31.4
Applied sqrt-prod31.4
Simplified31.4
Simplified0.4
Taylor expanded around inf 0.3
Final simplification0.3
herbie shell --seed 2020035 +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))))