\frac{x}{y - z \cdot t}\frac{x}{y - z \cdot t}double f(double x, double y, double z, double t) {
double r513403 = x;
double r513404 = y;
double r513405 = z;
double r513406 = t;
double r513407 = r513405 * r513406;
double r513408 = r513404 - r513407;
double r513409 = r513403 / r513408;
return r513409;
}
double f(double x, double y, double z, double t) {
double r513410 = x;
double r513411 = y;
double r513412 = z;
double r513413 = t;
double r513414 = r513412 * r513413;
double r513415 = r513411 - r513414;
double r513416 = r513410 / r513415;
return r513416;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 2.7 |
|---|---|
| Target | 1.6 |
| Herbie | 2.7 |
Initial program 2.7
Final simplification2.7
herbie shell --seed 2019304
(FPCore (x y z t)
:name "Diagrams.Solve.Tridiagonal:solveTriDiagonal from diagrams-solve-0.1, B"
:precision binary64
:herbie-target
(if (< x -1.618195973607049e50) (/ 1 (- (/ y x) (* (/ z x) t))) (if (< x 2.13783064348764444e131) (/ x (- y (* z t))) (/ 1 (- (/ y x) (* (/ z x) t)))))
(/ x (- y (* z t))))