\frac{x - y \cdot z}{t - a \cdot z}\frac{1}{\frac{t - a \cdot z}{x - z \cdot y}}double f(double x, double y, double z, double t, double a) {
double r34515186 = x;
double r34515187 = y;
double r34515188 = z;
double r34515189 = r34515187 * r34515188;
double r34515190 = r34515186 - r34515189;
double r34515191 = t;
double r34515192 = a;
double r34515193 = r34515192 * r34515188;
double r34515194 = r34515191 - r34515193;
double r34515195 = r34515190 / r34515194;
return r34515195;
}
double f(double x, double y, double z, double t, double a) {
double r34515196 = 1.0;
double r34515197 = t;
double r34515198 = a;
double r34515199 = z;
double r34515200 = r34515198 * r34515199;
double r34515201 = r34515197 - r34515200;
double r34515202 = x;
double r34515203 = y;
double r34515204 = r34515199 * r34515203;
double r34515205 = r34515202 - r34515204;
double r34515206 = r34515201 / r34515205;
double r34515207 = r34515196 / r34515206;
return r34515207;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 10.4 |
|---|---|
| Target | 1.7 |
| Herbie | 10.8 |
Initial program 10.4
rmApplied clear-num10.8
Final simplification10.8
herbie shell --seed 2019168
(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 (- t (* a z)))) (- (/ x (- t (* a z))) (/ y (- (/ t z) a)))))
(/ (- x (* y z)) (- t (* a z))))