\frac{\tan^{-1}_* \frac{im}{re} \cdot \log base - \log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot 0}{\log base \cdot \log base + 0 \cdot 0}\frac{1}{\frac{\log base}{\tan^{-1}_* \frac{im}{re}}}double f(double re, double im, double base) {
double r773320 = im;
double r773321 = re;
double r773322 = atan2(r773320, r773321);
double r773323 = base;
double r773324 = log(r773323);
double r773325 = r773322 * r773324;
double r773326 = r773321 * r773321;
double r773327 = r773320 * r773320;
double r773328 = r773326 + r773327;
double r773329 = sqrt(r773328);
double r773330 = log(r773329);
double r773331 = 0.0;
double r773332 = r773330 * r773331;
double r773333 = r773325 - r773332;
double r773334 = r773324 * r773324;
double r773335 = r773331 * r773331;
double r773336 = r773334 + r773335;
double r773337 = r773333 / r773336;
return r773337;
}
double f(double re, double im, double base) {
double r773338 = 1.0;
double r773339 = base;
double r773340 = log(r773339);
double r773341 = im;
double r773342 = re;
double r773343 = atan2(r773341, r773342);
double r773344 = r773340 / r773343;
double r773345 = r773338 / r773344;
return r773345;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 31.4
Simplified0.3
rmApplied clear-num0.6
Final simplification0.6
herbie shell --seed 2019151 +o rules:numerics
(FPCore (re im base)
:name "math.log/2 on complex, imaginary part"
(/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))))