x \cdot \left(1 - x \cdot y\right)
x \cdot 1 + \left(-y \cdot x\right) \cdot x
double f(double x, double y) {
double r2658154 = x;
double r2658155 = 1.0;
double r2658156 = y;
double r2658157 = r2658154 * r2658156;
double r2658158 = r2658155 - r2658157;
double r2658159 = r2658154 * r2658158;
return r2658159;
}
double f(double x, double y) {
double r2658160 = x;
double r2658161 = 1.0;
double r2658162 = r2658160 * r2658161;
double r2658163 = y;
double r2658164 = r2658163 * r2658160;
double r2658165 = -r2658164;
double r2658166 = r2658165 * r2658160;
double r2658167 = r2658162 + r2658166;
return r2658167;
}



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