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 r44389 = x;
double r44390 = 1.0;
double r44391 = y;
double r44392 = r44389 * r44391;
double r44393 = r44390 - r44392;
double r44394 = r44389 * r44393;
return r44394;
}
double f(double x, double y) {
double r44395 = x;
double r44396 = 1.0;
double r44397 = r44395 * r44396;
double r44398 = y;
double r44399 = r44395 * r44398;
double r44400 = -r44399;
double r44401 = r44395 * r44400;
double r44402 = r44397 + r44401;
return r44402;
}



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 2019347 +o rules:numerics
(FPCore (x y)
:name "Numeric.SpecFunctions:log1p from math-functions-0.1.5.2, A"
:precision binary64
(* x (- 1 (* x y))))