\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 r499394 = x;
double r499395 = y;
double r499396 = r499394 / r499395;
double r499397 = 1.0;
double r499398 = r499396 + r499397;
double r499399 = r499394 * r499398;
double r499400 = r499394 + r499397;
double r499401 = r499399 / r499400;
return r499401;
}
double f(double x, double y) {
double r499402 = x;
double r499403 = 1.0;
double r499404 = r499402 + r499403;
double r499405 = y;
double r499406 = r499402 / r499405;
double r499407 = r499406 + r499403;
double r499408 = r499404 / r499407;
double r499409 = r499402 / r499408;
return r499409;
}




Bits error versus x




Bits error versus y
Results
| Original | 9.3 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 9.3
rmApplied associate-/l*0.1
Final simplification0.1
herbie shell --seed 2019212 +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)))