\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 r25044 = re;
double r25045 = r25044 * r25044;
double r25046 = im;
double r25047 = r25046 * r25046;
double r25048 = r25045 + r25047;
double r25049 = sqrt(r25048);
double r25050 = log(r25049);
return r25050;
}
double f(double re, double im) {
double r25051 = re;
double r25052 = im;
double r25053 = hypot(r25051, r25052);
double r25054 = log(r25053);
return r25054;
}



Bits error versus re



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