\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 r46489 = re;
double r46490 = r46489 * r46489;
double r46491 = im;
double r46492 = r46491 * r46491;
double r46493 = r46490 + r46492;
double r46494 = sqrt(r46493);
double r46495 = log(r46494);
return r46495;
}
double f(double re, double im) {
double r46496 = 1.0;
double r46497 = re;
double r46498 = im;
double r46499 = hypot(r46497, r46498);
double r46500 = r46496 * r46499;
double r46501 = log(r46500);
return r46501;
}



Bits error versus re



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