\frac{x}{y - z \cdot t}\frac{x}{y - z \cdot t}double f(double x, double y, double z, double t) {
double r30758656 = x;
double r30758657 = y;
double r30758658 = z;
double r30758659 = t;
double r30758660 = r30758658 * r30758659;
double r30758661 = r30758657 - r30758660;
double r30758662 = r30758656 / r30758661;
return r30758662;
}
double f(double x, double y, double z, double t) {
double r30758663 = x;
double r30758664 = y;
double r30758665 = z;
double r30758666 = t;
double r30758667 = r30758665 * r30758666;
double r30758668 = r30758664 - r30758667;
double r30758669 = r30758663 / r30758668;
return r30758669;
}




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 2019171 +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.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))))