\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 r637740 = x;
double r637741 = y;
double r637742 = z;
double r637743 = r637741 * r637742;
double r637744 = r637740 - r637743;
double r637745 = t;
double r637746 = a;
double r637747 = r637746 * r637742;
double r637748 = r637745 - r637747;
double r637749 = r637744 / r637748;
return r637749;
}
double f(double x, double y, double z, double t, double a) {
double r637750 = x;
double r637751 = y;
double r637752 = z;
double r637753 = r637751 * r637752;
double r637754 = r637750 - r637753;
double r637755 = t;
double r637756 = a;
double r637757 = r637756 * r637752;
double r637758 = r637755 - r637757;
double r637759 = r637754 / r637758;
return r637759;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 10.7 |
|---|---|
| Target | 1.9 |
| Herbie | 10.7 |
Initial program 10.7
rmApplied div-inv10.8
Final simplification10.7
herbie shell --seed 2019291
(FPCore (x y z t a)
:name "Diagrams.Solve.Tridiagonal:solveTriDiagonal from diagrams-solve-0.1, A"
:precision binary64
:herbie-target
(if (< z -32113435955957344) (- (/ x (- t (* a z))) (/ y (- (/ t z) a))) (if (< z 3.51395223729782958e-86) (* (- x (* y z)) (/ 1 (- t (* a z)))) (- (/ x (- t (* a z))) (/ y (- (/ t z) a)))))
(/ (- x (* y z)) (- t (* a z))))