\frac{x \cdot \left(\frac{x}{y} + 1\right)}{x + 1}\frac{x}{x + 1} \cdot \frac{x}{y} + \frac{x}{x + 1} \cdot 1double f(double x, double y) {
double r997568 = x;
double r997569 = y;
double r997570 = r997568 / r997569;
double r997571 = 1.0;
double r997572 = r997570 + r997571;
double r997573 = r997568 * r997572;
double r997574 = r997568 + r997571;
double r997575 = r997573 / r997574;
return r997575;
}
double f(double x, double y) {
double r997576 = x;
double r997577 = 1.0;
double r997578 = r997576 + r997577;
double r997579 = r997576 / r997578;
double r997580 = y;
double r997581 = r997576 / r997580;
double r997582 = r997579 * r997581;
double r997583 = r997579 * r997577;
double r997584 = r997582 + r997583;
return r997584;
}




Bits error versus x




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