\left(\frac{1.0}{8.0} \cdot x - \frac{y \cdot z}{2.0}\right) + t\left(\mathsf{fma}\left(\frac{-z}{2.0}, y, y \cdot \frac{z}{2.0}\right) + t\right) + \mathsf{fma}\left(\frac{1.0}{8.0}, x, \frac{z}{2.0} \cdot \left(-y\right)\right)double f(double x, double y, double z, double t) {
double r26616668 = 1.0;
double r26616669 = 8.0;
double r26616670 = r26616668 / r26616669;
double r26616671 = x;
double r26616672 = r26616670 * r26616671;
double r26616673 = y;
double r26616674 = z;
double r26616675 = r26616673 * r26616674;
double r26616676 = 2.0;
double r26616677 = r26616675 / r26616676;
double r26616678 = r26616672 - r26616677;
double r26616679 = t;
double r26616680 = r26616678 + r26616679;
return r26616680;
}
double f(double x, double y, double z, double t) {
double r26616681 = z;
double r26616682 = -r26616681;
double r26616683 = 2.0;
double r26616684 = r26616682 / r26616683;
double r26616685 = y;
double r26616686 = r26616681 / r26616683;
double r26616687 = r26616685 * r26616686;
double r26616688 = fma(r26616684, r26616685, r26616687);
double r26616689 = t;
double r26616690 = r26616688 + r26616689;
double r26616691 = 1.0;
double r26616692 = 8.0;
double r26616693 = r26616691 / r26616692;
double r26616694 = x;
double r26616695 = -r26616685;
double r26616696 = r26616686 * r26616695;
double r26616697 = fma(r26616693, r26616694, r26616696);
double r26616698 = r26616690 + r26616697;
return r26616698;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
| Original | 0.0 |
|---|---|
| Target | 0.0 |
| Herbie | 0.0 |
Initial program 0.0
rmApplied *-un-lft-identity0.0
Applied times-frac0.0
Applied prod-diff0.0
Applied associate-+l+0.0
Final simplification0.0
herbie shell --seed 2019163 +o rules:numerics
(FPCore (x y z t)
:name "Diagrams.Solve.Polynomial:quartForm from diagrams-solve-0.1, B"
:herbie-target
(- (+ (/ x 8.0) t) (* (/ z 2.0) y))
(+ (- (* (/ 1.0 8.0) x) (/ (* y z) 2.0)) t))