\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 r891310 = x;
double r891311 = y;
double r891312 = r891310 / r891311;
double r891313 = 1.0;
double r891314 = r891312 + r891313;
double r891315 = r891310 * r891314;
double r891316 = r891310 + r891313;
double r891317 = r891315 / r891316;
return r891317;
}
double f(double x, double y) {
double r891318 = x;
double r891319 = 1.0;
double r891320 = r891318 + r891319;
double r891321 = r891318 / r891320;
double r891322 = y;
double r891323 = r891318 / r891322;
double r891324 = r891323 + r891319;
double r891325 = r891321 * r891324;
return r891325;
}




Bits error versus x




Bits error versus y
Results
| Original | 9.5 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 9.5
rmApplied associate-/l*0.1
rmApplied associate-/r/0.1
Final simplification0.1
herbie shell --seed 2020036
(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)))