\frac{x}{y - z \cdot t}\frac{x}{y - t \cdot z}double f(double x, double y, double z, double t) {
double r33445670 = x;
double r33445671 = y;
double r33445672 = z;
double r33445673 = t;
double r33445674 = r33445672 * r33445673;
double r33445675 = r33445671 - r33445674;
double r33445676 = r33445670 / r33445675;
return r33445676;
}
double f(double x, double y, double z, double t) {
double r33445677 = x;
double r33445678 = y;
double r33445679 = t;
double r33445680 = z;
double r33445681 = r33445679 * r33445680;
double r33445682 = r33445678 - r33445681;
double r33445683 = r33445677 / r33445682;
return r33445683;
}




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
rmApplied div-inv2.8
rmApplied *-un-lft-identity2.8
Applied associate-*l*2.8
Simplified2.7
Final simplification2.7
herbie shell --seed 2019169 +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))))