x \cdot \left(1 - x \cdot y\right)
x \cdot 1 + x \cdot \left(-x \cdot y\right)
double f(double x, double y) {
double r66827 = x;
double r66828 = 1.0;
double r66829 = y;
double r66830 = r66827 * r66829;
double r66831 = r66828 - r66830;
double r66832 = r66827 * r66831;
return r66832;
}
double f(double x, double y) {
double r66833 = x;
double r66834 = 1.0;
double r66835 = r66833 * r66834;
double r66836 = y;
double r66837 = r66833 * r66836;
double r66838 = -r66837;
double r66839 = r66833 * r66838;
double r66840 = r66835 + r66839;
return r66840;
}



Bits error versus x



Bits error versus y
Results
Initial program 0.1
rmApplied sub-neg0.1
Applied distribute-lft-in0.1
Final simplification0.1
herbie shell --seed 2020065 +o rules:numerics
(FPCore (x y)
:name "Numeric.SpecFunctions:log1p from math-functions-0.1.5.2, A"
:precision binary64
(* x (- 1 (* x y))))