\log \left(\sqrt{re \cdot re + im \cdot im}\right)\log \left(\sqrt{1} \cdot \mathsf{hypot}\left(re, im\right)\right)double f(double re, double im) {
double r242 = re;
double r243 = r242 * r242;
double r244 = im;
double r245 = r244 * r244;
double r246 = r243 + r245;
double r247 = sqrt(r246);
double r248 = log(r247);
return r248;
}
double f(double re, double im) {
double r249 = 1.0;
double r250 = sqrt(r249);
double r251 = re;
double r252 = im;
double r253 = hypot(r251, r252);
double r254 = r250 * r253;
double r255 = log(r254);
return r255;
}



Bits error versus re



Bits error versus im
Results
Initial program 32.0
rmApplied *-un-lft-identity32.0
Applied sqrt-prod32.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2020025 +o rules:numerics
(FPCore (re im)
:name "math.log/1 on complex, real part"
:precision binary64
(log (sqrt (+ (* re re) (* im im)))))