\frac{x \cdot \left(\frac{x}{y} + 1\right)}{x + 1}\frac{x}{x + 1} \cdot \left(\frac{x}{y} + 1\right)double f(double x, double y) {
double r637289 = x;
double r637290 = y;
double r637291 = r637289 / r637290;
double r637292 = 1.0;
double r637293 = r637291 + r637292;
double r637294 = r637289 * r637293;
double r637295 = r637289 + r637292;
double r637296 = r637294 / r637295;
return r637296;
}
double f(double x, double y) {
double r637297 = x;
double r637298 = 1.0;
double r637299 = r637297 + r637298;
double r637300 = r637297 / r637299;
double r637301 = y;
double r637302 = r637297 / r637301;
double r637303 = r637302 + r637298;
double r637304 = r637300 * r637303;
return r637304;
}




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
Final simplification0.1
herbie shell --seed 2019208
(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)))