\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 r25807 = re;
double r25808 = r25807 * r25807;
double r25809 = im;
double r25810 = r25809 * r25809;
double r25811 = r25808 + r25810;
double r25812 = sqrt(r25811);
double r25813 = log(r25812);
return r25813;
}
double f(double re, double im) {
double r25814 = 1.0;
double r25815 = re;
double r25816 = im;
double r25817 = hypot(r25815, r25816);
double r25818 = r25814 * r25817;
double r25819 = log(r25818);
return r25819;
}



Bits error versus re



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