\left(\left(x \cdot y - y \cdot y\right) + y \cdot y\right) - y \cdot z
y \cdot \left(x - z\right)
double f(double x, double y, double z) {
double r588469 = x;
double r588470 = y;
double r588471 = r588469 * r588470;
double r588472 = r588470 * r588470;
double r588473 = r588471 - r588472;
double r588474 = r588473 + r588472;
double r588475 = z;
double r588476 = r588470 * r588475;
double r588477 = r588474 - r588476;
return r588477;
}
double f(double x, double y, double z) {
double r588478 = y;
double r588479 = x;
double r588480 = z;
double r588481 = r588479 - r588480;
double r588482 = r588478 * r588481;
return r588482;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 13.3 |
|---|---|
| Target | 0.0 |
| Herbie | 0.0 |
Initial program 13.3
Simplified0.0
Final simplification0.0
herbie shell --seed 2020018 +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)))