\frac{x}{y - z \cdot t}\frac{x}{y - z \cdot t}double f(double x, double y, double z, double t) {
double r776541 = x;
double r776542 = y;
double r776543 = z;
double r776544 = t;
double r776545 = r776543 * r776544;
double r776546 = r776542 - r776545;
double r776547 = r776541 / r776546;
return r776547;
}
double f(double x, double y, double z, double t) {
double r776548 = x;
double r776549 = y;
double r776550 = z;
double r776551 = t;
double r776552 = r776550 * r776551;
double r776553 = r776549 - r776552;
double r776554 = r776548 / r776553;
return r776554;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 3.1 |
|---|---|
| Target | 1.8 |
| Herbie | 3.1 |
Initial program 3.1
Final simplification3.1
herbie shell --seed 2020049
(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))))