\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 r51495278 = x;
double r51495279 = y;
double r51495280 = z;
double r51495281 = r51495279 * r51495280;
double r51495282 = r51495278 - r51495281;
double r51495283 = t;
double r51495284 = a;
double r51495285 = r51495284 * r51495280;
double r51495286 = r51495283 - r51495285;
double r51495287 = r51495282 / r51495286;
return r51495287;
}
double f(double x, double y, double z, double t, double a) {
double r51495288 = x;
double r51495289 = y;
double r51495290 = z;
double r51495291 = r51495289 * r51495290;
double r51495292 = r51495288 - r51495291;
double r51495293 = t;
double r51495294 = a;
double r51495295 = r51495294 * r51495290;
double r51495296 = r51495293 - r51495295;
double r51495297 = r51495292 / r51495296;
return r51495297;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 11.0 |
|---|---|
| Target | 1.7 |
| Herbie | 11.0 |
Initial program 11.0
Final simplification11.0
herbie shell --seed 2019174
(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))))