\frac{x}{y + x}
\mathsf{log1p}\left(\mathsf{expm1}\left(\frac{x}{x + y}\right)\right)
(FPCore (x y) :precision binary64 (/ x (+ y x)))
(FPCore (x y) :precision binary64 (log1p (expm1 (/ x (+ x y)))))
double code(double x, double y) {
return x / (y + x);
}
double code(double x, double y) {
return log1p(expm1(x / (x + y)));
}



Bits error versus x



Bits error versus y
Results
Initial program 0.0
Applied log1p-expm1-u_binary640.0
Final simplification0.0
herbie shell --seed 2021280
(FPCore (x y)
:name "AI.Clustering.Hierarchical.Internal:average from clustering-0.2.1, B"
:precision binary64
(/ x (+ y x)))