\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 r38619673 = x;
double r38619674 = y;
double r38619675 = z;
double r38619676 = r38619674 * r38619675;
double r38619677 = r38619673 - r38619676;
double r38619678 = t;
double r38619679 = a;
double r38619680 = r38619679 * r38619675;
double r38619681 = r38619678 - r38619680;
double r38619682 = r38619677 / r38619681;
return r38619682;
}
double f(double x, double y, double z, double t, double a) {
double r38619683 = x;
double r38619684 = y;
double r38619685 = z;
double r38619686 = r38619684 * r38619685;
double r38619687 = r38619683 - r38619686;
double r38619688 = t;
double r38619689 = a;
double r38619690 = r38619689 * r38619685;
double r38619691 = r38619688 - r38619690;
double r38619692 = r38619687 / r38619691;
return r38619692;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 11.1 |
|---|---|
| Target | 1.7 |
| Herbie | 11.1 |
Initial program 11.1
Taylor expanded around inf 11.1
Final simplification11.1
herbie shell --seed 2019169
(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))))