\frac{x}{y - z \cdot t}\frac{x}{y - z \cdot t}double f(double x, double y, double z, double t) {
double r629219 = x;
double r629220 = y;
double r629221 = z;
double r629222 = t;
double r629223 = r629221 * r629222;
double r629224 = r629220 - r629223;
double r629225 = r629219 / r629224;
return r629225;
}
double f(double x, double y, double z, double t) {
double r629226 = x;
double r629227 = y;
double r629228 = z;
double r629229 = t;
double r629230 = r629228 * r629229;
double r629231 = r629227 - r629230;
double r629232 = r629226 / r629231;
return r629232;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 2.8 |
|---|---|
| Target | 1.8 |
| Herbie | 2.8 |
Initial program 2.8
rmApplied clear-num3.3
rmApplied *-un-lft-identity3.3
Applied *-un-lft-identity3.3
Applied times-frac3.3
Applied add-cube-cbrt3.3
Applied times-frac3.3
Simplified3.3
Simplified2.8
Final simplification2.8
herbie shell --seed 2020039 +o rules:numerics
(FPCore (x y z t)
:name "Diagrams.Solve.Tridiagonal:solveTriDiagonal from diagrams-solve-0.1, B"
:precision binary64
: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))))