\left(\left(x \cdot y - y \cdot z\right) - y \cdot y\right) + y \cdot y
\mathsf{fma}\left(x, y, -z \cdot y\right) + 0 \cdot zdouble f(double x, double y, double z) {
double r334090 = x;
double r334091 = y;
double r334092 = r334090 * r334091;
double r334093 = z;
double r334094 = r334091 * r334093;
double r334095 = r334092 - r334094;
double r334096 = r334091 * r334091;
double r334097 = r334095 - r334096;
double r334098 = r334097 + r334096;
return r334098;
}
double f(double x, double y, double z) {
double r334099 = x;
double r334100 = y;
double r334101 = z;
double r334102 = r334101 * r334100;
double r334103 = -r334102;
double r334104 = fma(r334099, r334100, r334103);
double r334105 = 0.0;
double r334106 = r334105 * r334101;
double r334107 = r334104 + r334106;
return r334107;
}




Bits error versus x




Bits error versus y




Bits error versus z
| Original | 17.4 |
|---|---|
| Target | 0.0 |
| Herbie | 0.0 |
Initial program 17.4
rmApplied prod-diff17.4
Applied associate--l+17.4
Applied associate-+l+7.9
Simplified0.0
Final simplification0.0
herbie shell --seed 2019306 +o rules:numerics
(FPCore (x y z)
:name "Linear.Quaternion:$c/ from linear-1.19.1.3, B"
:precision binary64
:herbie-target
(* (- x z) y)
(+ (- (- (* x y) (* y z)) (* y y)) (* y y)))