\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 r32627 = re;
double r32628 = r32627 * r32627;
double r32629 = im;
double r32630 = r32629 * r32629;
double r32631 = r32628 + r32630;
double r32632 = sqrt(r32631);
double r32633 = log(r32632);
return r32633;
}
double f(double re, double im) {
double r32634 = 1.0;
double r32635 = sqrt(r32634);
double r32636 = re;
double r32637 = im;
double r32638 = hypot(r32636, r32637);
double r32639 = r32635 * r32638;
double r32640 = log(r32639);
return r32640;
}



Bits error versus re



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