\frac{x \cdot \left(\frac{x}{y} + 1.0\right)}{x + 1.0}\frac{x}{1.0 + x} \cdot \left(1.0 + \frac{x}{y}\right)double f(double x, double y) {
double r28672395 = x;
double r28672396 = y;
double r28672397 = r28672395 / r28672396;
double r28672398 = 1.0;
double r28672399 = r28672397 + r28672398;
double r28672400 = r28672395 * r28672399;
double r28672401 = r28672395 + r28672398;
double r28672402 = r28672400 / r28672401;
return r28672402;
}
double f(double x, double y) {
double r28672403 = x;
double r28672404 = 1.0;
double r28672405 = r28672404 + r28672403;
double r28672406 = r28672403 / r28672405;
double r28672407 = y;
double r28672408 = r28672403 / r28672407;
double r28672409 = r28672404 + r28672408;
double r28672410 = r28672406 * r28672409;
return r28672410;
}




Bits error versus x




Bits error versus y
Results
| Original | 8.6 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 8.6
rmApplied associate-/l*0.1
rmApplied associate-/r/0.1
Final simplification0.1
herbie shell --seed 2019168 +o rules:numerics
(FPCore (x y)
:name "Codec.Picture.Types:toneMapping from JuicyPixels-3.2.6.1"
:herbie-target
(* (/ x 1) (/ (+ (/ x y) 1.0) (+ x 1.0)))
(/ (* x (+ (/ x y) 1.0)) (+ x 1.0)))