\log \left(\sqrt{re \cdot re + im \cdot im}\right)\log \left(1 \cdot \mathsf{hypot}\left(re, im\right)\right)double f(double re, double im) {
double r35343 = re;
double r35344 = r35343 * r35343;
double r35345 = im;
double r35346 = r35345 * r35345;
double r35347 = r35344 + r35346;
double r35348 = sqrt(r35347);
double r35349 = log(r35348);
return r35349;
}
double f(double re, double im) {
double r35350 = 1.0;
double r35351 = re;
double r35352 = im;
double r35353 = hypot(r35351, r35352);
double r35354 = r35350 * r35353;
double r35355 = log(r35354);
return r35355;
}



Bits error versus re



Bits error versus im
Results
Initial program 31.9
rmApplied *-un-lft-identity31.9
Applied sqrt-prod31.9
Simplified31.9
Simplified0
Final simplification0
herbie shell --seed 2020060 +o rules:numerics
(FPCore (re im)
:name "math.log/1 on complex, real part"
:precision binary64
(log (sqrt (+ (* re re) (* im im)))))