\frac{x \cdot \left(\frac{x}{y} + 1.0\right)}{x + 1.0}\frac{x}{1.0 + x} \cdot \left(1.0 + \frac{x}{y}\right)double f(double x, double y) {
double r16464586 = x;
double r16464587 = y;
double r16464588 = r16464586 / r16464587;
double r16464589 = 1.0;
double r16464590 = r16464588 + r16464589;
double r16464591 = r16464586 * r16464590;
double r16464592 = r16464586 + r16464589;
double r16464593 = r16464591 / r16464592;
return r16464593;
}
double f(double x, double y) {
double r16464594 = x;
double r16464595 = 1.0;
double r16464596 = r16464595 + r16464594;
double r16464597 = r16464594 / r16464596;
double r16464598 = y;
double r16464599 = r16464594 / r16464598;
double r16464600 = r16464595 + r16464599;
double r16464601 = r16464597 * r16464600;
return r16464601;
}




Bits error versus x




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