x \cdot \left(1.0 + y \cdot y\right)
y \cdot \left(y \cdot x\right) + 1.0 \cdot x
double f(double x, double y) {
double r27384563 = x;
double r27384564 = 1.0;
double r27384565 = y;
double r27384566 = r27384565 * r27384565;
double r27384567 = r27384564 + r27384566;
double r27384568 = r27384563 * r27384567;
return r27384568;
}
double f(double x, double y) {
double r27384569 = y;
double r27384570 = x;
double r27384571 = r27384569 * r27384570;
double r27384572 = r27384569 * r27384571;
double r27384573 = 1.0;
double r27384574 = r27384573 * r27384570;
double r27384575 = r27384572 + r27384574;
return r27384575;
}




Bits error versus x




Bits error versus y
Results
| Original | 4.8 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 4.8
rmApplied distribute-rgt-in4.8
rmApplied associate-*l*0.1
Final simplification0.1
herbie shell --seed 2019164
(FPCore (x y)
:name "Numeric.Integration.TanhSinh:everywhere from integration-0.2.1"
:herbie-target
(+ x (* (* x y) y))
(* x (+ 1.0 (* y y))))