\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 r789015 = x;
double r789016 = y;
double r789017 = r789015 / r789016;
double r789018 = 1.0;
double r789019 = r789017 + r789018;
double r789020 = r789015 * r789019;
double r789021 = r789015 + r789018;
double r789022 = r789020 / r789021;
return r789022;
}
double f(double x, double y) {
double r789023 = x;
double r789024 = 1.0;
double r789025 = r789023 + r789024;
double r789026 = y;
double r789027 = r789023 / r789026;
double r789028 = r789027 + r789024;
double r789029 = r789025 / r789028;
double r789030 = r789023 / r789029;
return r789030;
}




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