\frac{x}{y - z \cdot t}\frac{x}{y - t \cdot z}double f(double x, double y, double z, double t) {
double r30836093 = x;
double r30836094 = y;
double r30836095 = z;
double r30836096 = t;
double r30836097 = r30836095 * r30836096;
double r30836098 = r30836094 - r30836097;
double r30836099 = r30836093 / r30836098;
return r30836099;
}
double f(double x, double y, double z, double t) {
double r30836100 = x;
double r30836101 = y;
double r30836102 = t;
double r30836103 = z;
double r30836104 = r30836102 * r30836103;
double r30836105 = r30836101 - r30836104;
double r30836106 = r30836100 / r30836105;
return r30836106;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 2.7 |
|---|---|
| Target | 1.8 |
| Herbie | 2.7 |
Initial program 2.7
rmApplied div-inv2.8
rmApplied *-un-lft-identity2.8
Applied associate-*l*2.8
Simplified2.7
Final simplification2.7
herbie shell --seed 2019169
(FPCore (x y z t)
:name "Diagrams.Solve.Tridiagonal:solveTriDiagonal from diagrams-solve-0.1, B"
:herbie-target
(if (< x -1.618195973607049e+50) (/ 1.0 (- (/ y x) (* (/ z x) t))) (if (< x 2.1378306434876444e+131) (/ x (- y (* z t))) (/ 1.0 (- (/ y x) (* (/ z x) t)))))
(/ x (- y (* z t))))