x \cdot \left(1 - x \cdot y\right)
x \cdot \left(1 - y \cdot x\right)
double f(double x, double y) {
double r33428 = x;
double r33429 = 1.0;
double r33430 = y;
double r33431 = r33428 * r33430;
double r33432 = r33429 - r33431;
double r33433 = r33428 * r33432;
return r33433;
}
double f(double x, double y) {
double r33434 = x;
double r33435 = 1.0;
double r33436 = y;
double r33437 = r33436 * r33434;
double r33438 = r33435 - r33437;
double r33439 = r33434 * r33438;
return r33439;
}



Bits error versus x



Bits error versus y
Results
Initial program 0.1
Taylor expanded around 0 7.8
Simplified0.1
Final simplification0.1
herbie shell --seed 2019235 +o rules:numerics
(FPCore (x y)
:name "Numeric.SpecFunctions:log1p from math-functions-0.1.5.2, A"
:precision binary64
(* x (- 1 (* x y))))