\frac{x \cdot y}{y + 1}\frac{x}{1 \cdot \frac{1}{y} + 1}double f(double x, double y) {
double r939969 = x;
double r939970 = y;
double r939971 = r939969 * r939970;
double r939972 = 1.0;
double r939973 = r939970 + r939972;
double r939974 = r939971 / r939973;
return r939974;
}
double f(double x, double y) {
double r939975 = x;
double r939976 = 1.0;
double r939977 = 1.0;
double r939978 = y;
double r939979 = r939977 / r939978;
double r939980 = r939976 * r939979;
double r939981 = r939980 + r939977;
double r939982 = r939975 / r939981;
return r939982;
}




Bits error versus x




Bits error versus y
Results
| Original | 8.1 |
|---|---|
| Target | 0.0 |
| Herbie | 0.1 |
Initial program 8.1
rmApplied associate-/l*0.1
Taylor expanded around 0 0.1
Final simplification0.1
herbie shell --seed 2019318
(FPCore (x y)
:name "Diagrams.Trail:splitAtParam from diagrams-lib-1.3.0.3, B"
:precision binary64
:herbie-target
(if (< y -3693.84827882972468) (- (/ x (* y y)) (- (/ x y) x)) (if (< y 6799310503.41891003) (/ (* x y) (+ y 1)) (- (/ x (* y y)) (- (/ x y) x))))
(/ (* x y) (+ y 1)))