\frac{x}{y - z \cdot t}\frac{x}{y - z \cdot t}double f(double x, double y, double z, double t) {
double r32016103 = x;
double r32016104 = y;
double r32016105 = z;
double r32016106 = t;
double r32016107 = r32016105 * r32016106;
double r32016108 = r32016104 - r32016107;
double r32016109 = r32016103 / r32016108;
return r32016109;
}
double f(double x, double y, double z, double t) {
double r32016110 = x;
double r32016111 = y;
double r32016112 = z;
double r32016113 = t;
double r32016114 = r32016112 * r32016113;
double r32016115 = r32016111 - r32016114;
double r32016116 = r32016110 / r32016115;
return r32016116;
}




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
Final simplification2.7
herbie shell --seed 2019168 +o rules:numerics
(FPCore (x y z t)
:name "Diagrams.Solve.Tridiagonal:solveTriDiagonal from diagrams-solve-0.1, B"
:herbie-target
(if (< x -1.618195973607049e+50) (/ 1 (- (/ y x) (* (/ z x) t))) (if (< x 2.1378306434876444e+131) (/ x (- y (* z t))) (/ 1 (- (/ y x) (* (/ z x) t)))))
(/ x (- y (* z t))))