\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}\frac{\tan^{-1}_* \frac{im}{re}}{\log base}double f(double re, double im, double base) {
double r37366 = im;
double r37367 = re;
double r37368 = atan2(r37366, r37367);
double r37369 = base;
double r37370 = log(r37369);
double r37371 = r37368 * r37370;
double r37372 = r37367 * r37367;
double r37373 = r37366 * r37366;
double r37374 = r37372 + r37373;
double r37375 = sqrt(r37374);
double r37376 = log(r37375);
double r37377 = 0.0;
double r37378 = r37376 * r37377;
double r37379 = r37371 - r37378;
double r37380 = r37370 * r37370;
double r37381 = r37377 * r37377;
double r37382 = r37380 + r37381;
double r37383 = r37379 / r37382;
return r37383;
}
double f(double re, double im, double base) {
double r37384 = im;
double r37385 = re;
double r37386 = atan2(r37384, r37385);
double r37387 = base;
double r37388 = log(r37387);
double r37389 = r37386 / r37388;
return r37389;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 31.4
Simplified31.4
Taylor expanded around -inf 64.0
Simplified0.3
Final simplification0.3
herbie shell --seed 2019179
(FPCore (re im base)
:name "math.log/2 on complex, imaginary part"
(/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0.0)) (+ (* (log base) (log base)) (* 0.0 0.0))))