\frac{x \cdot \left(\frac{x}{y} + 1\right)}{x + 1}\frac{x}{\frac{1 + x}{1 + \frac{x}{y}}}double f(double x, double y) {
double r40777934 = x;
double r40777935 = y;
double r40777936 = r40777934 / r40777935;
double r40777937 = 1.0;
double r40777938 = r40777936 + r40777937;
double r40777939 = r40777934 * r40777938;
double r40777940 = r40777934 + r40777937;
double r40777941 = r40777939 / r40777940;
return r40777941;
}
double f(double x, double y) {
double r40777942 = x;
double r40777943 = 1.0;
double r40777944 = r40777943 + r40777942;
double r40777945 = y;
double r40777946 = r40777942 / r40777945;
double r40777947 = r40777943 + r40777946;
double r40777948 = r40777944 / r40777947;
double r40777949 = r40777942 / r40777948;
return r40777949;
}




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
Final simplification0.1
herbie shell --seed 2019170 +o rules:numerics
(FPCore (x y)
:name "Codec.Picture.Types:toneMapping from JuicyPixels-3.2.6.1"
:herbie-target
(* (/ x 1.0) (/ (+ (/ x y) 1.0) (+ x 1.0)))
(/ (* x (+ (/ x y) 1.0)) (+ x 1.0)))