\frac{x \cdot \left(\frac{x}{y} + 1\right)}{x + 1}\frac{x}{x + 1} \cdot \frac{x}{y} + 1 \cdot \frac{x}{x + 1}double f(double x, double y) {
double r799499 = x;
double r799500 = y;
double r799501 = r799499 / r799500;
double r799502 = 1.0;
double r799503 = r799501 + r799502;
double r799504 = r799499 * r799503;
double r799505 = r799499 + r799502;
double r799506 = r799504 / r799505;
return r799506;
}
double f(double x, double y) {
double r799507 = x;
double r799508 = 1.0;
double r799509 = r799507 + r799508;
double r799510 = r799507 / r799509;
double r799511 = y;
double r799512 = r799507 / r799511;
double r799513 = r799510 * r799512;
double r799514 = r799508 * r799510;
double r799515 = r799513 + r799514;
return r799515;
}




Bits error versus x




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