\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 r576976 = x;
double r576977 = y;
double r576978 = r576976 / r576977;
double r576979 = 1.0;
double r576980 = r576978 + r576979;
double r576981 = r576976 * r576980;
double r576982 = r576976 + r576979;
double r576983 = r576981 / r576982;
return r576983;
}
double f(double x, double y) {
double r576984 = x;
double r576985 = 1.0;
double r576986 = r576984 + r576985;
double r576987 = y;
double r576988 = r576984 / r576987;
double r576989 = r576988 + r576985;
double r576990 = r576986 / r576989;
double r576991 = r576984 / r576990;
return r576991;
}




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