\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 r587745 = x;
double r587746 = y;
double r587747 = r587745 / r587746;
double r587748 = 1.0;
double r587749 = r587747 + r587748;
double r587750 = r587745 * r587749;
double r587751 = r587745 + r587748;
double r587752 = r587750 / r587751;
return r587752;
}
double f(double x, double y) {
double r587753 = x;
double r587754 = 1.0;
double r587755 = r587753 + r587754;
double r587756 = y;
double r587757 = r587753 / r587756;
double r587758 = r587757 + r587754;
double r587759 = r587755 / r587758;
double r587760 = r587753 / r587759;
return r587760;
}




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)))