\left(\left(x \cdot y - y \cdot y\right) + y \cdot y\right) - y \cdot z
y \cdot x + y \cdot \left(-z\right)
double f(double x, double y, double z) {
double r324492 = x;
double r324493 = y;
double r324494 = r324492 * r324493;
double r324495 = r324493 * r324493;
double r324496 = r324494 - r324495;
double r324497 = r324496 + r324495;
double r324498 = z;
double r324499 = r324493 * r324498;
double r324500 = r324497 - r324499;
return r324500;
}
double f(double x, double y, double z) {
double r324501 = y;
double r324502 = x;
double r324503 = r324501 * r324502;
double r324504 = z;
double r324505 = -r324504;
double r324506 = r324501 * r324505;
double r324507 = r324503 + r324506;
return r324507;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 12.6 |
|---|---|
| Target | 0.0 |
| Herbie | 0.0 |
Initial program 12.6
Simplified0.0
rmApplied sub-neg0.0
Applied distribute-lft-in0.0
Final simplification0.0
herbie shell --seed 2019208 +o rules:numerics
(FPCore (x y z)
:name "Linear.Quaternion:$c/ from linear-1.19.1.3, D"
:precision binary64
:herbie-target
(* (- x z) y)
(- (+ (- (* x y) (* y y)) (* y y)) (* y z)))