x \cdot \left(1 - x \cdot y\right)
1 \cdot x + \left(-x \cdot y\right) \cdot x
double f(double x, double y) {
double r56896 = x;
double r56897 = 1.0;
double r56898 = y;
double r56899 = r56896 * r56898;
double r56900 = r56897 - r56899;
double r56901 = r56896 * r56900;
return r56901;
}
double f(double x, double y) {
double r56902 = 1.0;
double r56903 = x;
double r56904 = r56902 * r56903;
double r56905 = y;
double r56906 = r56903 * r56905;
double r56907 = -r56906;
double r56908 = r56907 * r56903;
double r56909 = r56904 + r56908;
return r56909;
}



Bits error versus x



Bits error versus y
Results
Initial program 0.1
rmApplied sub-neg0.1
Applied distribute-rgt-in0.1
Final simplification0.1
herbie shell --seed 2019202
(FPCore (x y)
:name "Numeric.SpecFunctions:log1p from math-functions-0.1.5.2, A"
(* x (- 1 (* x y))))