\log \left(\sqrt{re \cdot re + im \cdot im}\right)\log \left(\mathsf{hypot}\left(re, im\right)\right)double f(double re, double im) {
double r26163 = re;
double r26164 = r26163 * r26163;
double r26165 = im;
double r26166 = r26165 * r26165;
double r26167 = r26164 + r26166;
double r26168 = sqrt(r26167);
double r26169 = log(r26168);
return r26169;
}
double f(double re, double im) {
double r26170 = re;
double r26171 = im;
double r26172 = hypot(r26170, r26171);
double r26173 = log(r26172);
return r26173;
}



Bits error versus re



Bits error versus im
Results
Initial program 31.3
Simplified0
Final simplification0
herbie shell --seed 2019303 +o rules:numerics
(FPCore (re im)
:name "math.log/1 on complex, real part"
:precision binary64
(log (sqrt (+ (* re re) (* im im)))))