\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 r596193 = x;
double r596194 = y;
double r596195 = r596193 / r596194;
double r596196 = 1.0;
double r596197 = r596195 + r596196;
double r596198 = r596193 * r596197;
double r596199 = r596193 + r596196;
double r596200 = r596198 / r596199;
return r596200;
}
double f(double x, double y) {
double r596201 = x;
double r596202 = 1.0;
double r596203 = r596201 + r596202;
double r596204 = r596201 / r596203;
double r596205 = y;
double r596206 = r596201 / r596205;
double r596207 = r596206 + r596202;
double r596208 = r596204 * r596207;
return r596208;
}




Bits error versus x




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