\log \left(\sqrt{re \cdot re + im \cdot im}\right)\log \left(\mathsf{hypot}\left(re, im\right)\right)double f(double re, double im) {
double r2746365 = re;
double r2746366 = r2746365 * r2746365;
double r2746367 = im;
double r2746368 = r2746367 * r2746367;
double r2746369 = r2746366 + r2746368;
double r2746370 = sqrt(r2746369);
double r2746371 = log(r2746370);
return r2746371;
}
double f(double re, double im) {
double r2746372 = re;
double r2746373 = im;
double r2746374 = hypot(r2746372, r2746373);
double r2746375 = log(r2746374);
return r2746375;
}



Bits error versus re



Bits error versus im
Results
Initial program 31.6
Simplified0.0
Final simplification0.0
herbie shell --seed 2019179 +o rules:numerics
(FPCore (re im)
:name "math.log/1 on complex, real part"
(log (sqrt (+ (* re re) (* im im)))))