\frac{x - y \cdot z}{t - a \cdot z}\frac{x - y \cdot z}{t - a \cdot z}double f(double x, double y, double z, double t, double a) {
double r34517741 = x;
double r34517742 = y;
double r34517743 = z;
double r34517744 = r34517742 * r34517743;
double r34517745 = r34517741 - r34517744;
double r34517746 = t;
double r34517747 = a;
double r34517748 = r34517747 * r34517743;
double r34517749 = r34517746 - r34517748;
double r34517750 = r34517745 / r34517749;
return r34517750;
}
double f(double x, double y, double z, double t, double a) {
double r34517751 = x;
double r34517752 = y;
double r34517753 = z;
double r34517754 = r34517752 * r34517753;
double r34517755 = r34517751 - r34517754;
double r34517756 = t;
double r34517757 = a;
double r34517758 = r34517757 * r34517753;
double r34517759 = r34517756 - r34517758;
double r34517760 = r34517755 / r34517759;
return r34517760;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 10.6 |
|---|---|
| Target | 1.7 |
| Herbie | 10.6 |
Initial program 10.6
rmApplied *-un-lft-identity10.6
Applied associate-/r*10.6
Simplified10.6
Final simplification10.6
herbie shell --seed 2019192
(FPCore (x y z t a)
:name "Diagrams.Solve.Tridiagonal:solveTriDiagonal from diagrams-solve-0.1, A"
:herbie-target
(if (< z -32113435955957344.0) (- (/ x (- t (* a z))) (/ y (- (/ t z) a))) (if (< z 3.5139522372978296e-86) (* (- x (* y z)) (/ 1.0 (- t (* a z)))) (- (/ x (- t (* a z))) (/ y (- (/ t z) a)))))
(/ (- x (* y z)) (- t (* a z))))