\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 r1035851 = x;
double r1035852 = y;
double r1035853 = r1035851 / r1035852;
double r1035854 = 1.0;
double r1035855 = r1035853 + r1035854;
double r1035856 = r1035851 * r1035855;
double r1035857 = r1035851 + r1035854;
double r1035858 = r1035856 / r1035857;
return r1035858;
}
double f(double x, double y) {
double r1035859 = x;
double r1035860 = 1.0;
double r1035861 = r1035859 + r1035860;
double r1035862 = y;
double r1035863 = r1035859 / r1035862;
double r1035864 = r1035863 + r1035860;
double r1035865 = r1035861 / r1035864;
double r1035866 = r1035859 / r1035865;
return r1035866;
}




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