\frac{x \cdot \left(\frac{x}{y} + 1\right)}{x + 1}\frac{x}{\frac{x + 1}{\frac{x}{y} + 1}}double f(double x, double y) {
double r571776 = x;
double r571777 = y;
double r571778 = r571776 / r571777;
double r571779 = 1.0;
double r571780 = r571778 + r571779;
double r571781 = r571776 * r571780;
double r571782 = r571776 + r571779;
double r571783 = r571781 / r571782;
return r571783;
}
double f(double x, double y) {
double r571784 = x;
double r571785 = 1.0;
double r571786 = r571784 + r571785;
double r571787 = y;
double r571788 = r571784 / r571787;
double r571789 = r571788 + r571785;
double r571790 = r571786 / r571789;
double r571791 = r571784 / r571790;
return r571791;
}




Bits error versus x




Bits error versus y
Results
| Original | 9.2 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 9.2
rmApplied associate-/l*0.1
Final simplification0.1
herbie shell --seed 2019323 +o rules:numerics
(FPCore (x y)
:name "Codec.Picture.Types:toneMapping from JuicyPixels-3.2.6.1"
:precision binary64
:herbie-target
(* (/ x 1) (/ (+ (/ x y) 1) (+ x 1)))
(/ (* x (+ (/ x y) 1)) (+ x 1)))