\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 r1343390 = re;
double r1343391 = r1343390 * r1343390;
double r1343392 = im;
double r1343393 = r1343392 * r1343392;
double r1343394 = r1343391 + r1343393;
double r1343395 = sqrt(r1343394);
double r1343396 = log(r1343395);
return r1343396;
}
double f(double re, double im) {
double r1343397 = re;
double r1343398 = im;
double r1343399 = hypot(r1343397, r1343398);
double r1343400 = log(r1343399);
return r1343400;
}



Bits error versus re



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