\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{\tan^{-1}_* \frac{im}{re}}{\log base}double f(double re, double im, double base) {
double r733348 = im;
double r733349 = re;
double r733350 = atan2(r733348, r733349);
double r733351 = base;
double r733352 = log(r733351);
double r733353 = r733350 * r733352;
double r733354 = r733349 * r733349;
double r733355 = r733348 * r733348;
double r733356 = r733354 + r733355;
double r733357 = sqrt(r733356);
double r733358 = log(r733357);
double r733359 = 0.0;
double r733360 = r733358 * r733359;
double r733361 = r733353 - r733360;
double r733362 = r733352 * r733352;
double r733363 = r733359 * r733359;
double r733364 = r733362 + r733363;
double r733365 = r733361 / r733364;
return r733365;
}
double f(double re, double im, double base) {
double r733366 = im;
double r733367 = re;
double r733368 = atan2(r733366, r733367);
double r733369 = base;
double r733370 = log(r733369);
double r733371 = r733368 / r733370;
return r733371;
}



Bits error versus re



Bits error versus im



Bits error versus base
Results
Initial program 30.8
Simplified0.3
Final simplification0.3
herbie shell --seed 2019152 +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))))