x \cdot \left(1 + y \cdot y\right)
1 \cdot x + \left(x \cdot y\right) \cdot y
double f(double x, double y) {
double r761717 = x;
double r761718 = 1.0;
double r761719 = y;
double r761720 = r761719 * r761719;
double r761721 = r761718 + r761720;
double r761722 = r761717 * r761721;
return r761722;
}
double f(double x, double y) {
double r761723 = 1.0;
double r761724 = x;
double r761725 = r761723 * r761724;
double r761726 = y;
double r761727 = r761724 * r761726;
double r761728 = r761727 * r761726;
double r761729 = r761725 + r761728;
return r761729;
}




Bits error versus x




Bits error versus y
Results
| Original | 5.3 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 5.3
rmApplied distribute-lft-in5.3
Simplified5.3
rmApplied associate-*r*0.1
Final simplification0.1
herbie shell --seed 2020042
(FPCore (x y)
:name "Numeric.Integration.TanhSinh:everywhere from integration-0.2.1"
:precision binary64
:herbie-target
(+ x (* (* x y) y))
(* x (+ 1 (* y y))))