\frac{x + \frac{y \cdot z}{t}}{\left(a + 1\right) + \frac{y \cdot b}{t}}\frac{x + \frac{y}{\frac{t}{z}}}{\left(a + 1\right) + \frac{y \cdot b}{t}}double f(double x, double y, double z, double t, double a, double b) {
double r616854 = x;
double r616855 = y;
double r616856 = z;
double r616857 = r616855 * r616856;
double r616858 = t;
double r616859 = r616857 / r616858;
double r616860 = r616854 + r616859;
double r616861 = a;
double r616862 = 1.0;
double r616863 = r616861 + r616862;
double r616864 = b;
double r616865 = r616855 * r616864;
double r616866 = r616865 / r616858;
double r616867 = r616863 + r616866;
double r616868 = r616860 / r616867;
return r616868;
}
double f(double x, double y, double z, double t, double a, double b) {
double r616869 = x;
double r616870 = y;
double r616871 = t;
double r616872 = z;
double r616873 = r616871 / r616872;
double r616874 = r616870 / r616873;
double r616875 = r616869 + r616874;
double r616876 = a;
double r616877 = 1.0;
double r616878 = r616876 + r616877;
double r616879 = b;
double r616880 = r616870 * r616879;
double r616881 = r616880 / r616871;
double r616882 = r616878 + r616881;
double r616883 = r616875 / r616882;
return r616883;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a




Bits error versus b
Results
| Original | 16.4 |
|---|---|
| Target | 12.9 |
| Herbie | 16.7 |
if a < -2.257511494416316e-88Initial program 17.6
rmApplied *-un-lft-identity17.6
Applied times-frac18.0
Simplified18.0
if -2.257511494416316e-88 < a < 1.4011460130569624e-277Initial program 15.1
rmApplied associate-/l*14.4
if 1.4011460130569624e-277 < a Initial program 16.2
rmApplied clear-num16.2
rmApplied add-cube-cbrt16.4
Final simplification16.7
herbie shell --seed 2019294
(FPCore (x y z t a b)
:name "Diagrams.Solve.Tridiagonal:solveCyclicTriDiagonal from diagrams-solve-0.1, B"
:precision binary64
:herbie-target
(if (< t -1.3659085366310088e-271) (* 1 (* (+ x (* (/ y t) z)) (/ 1 (+ (+ a 1) (* (/ y t) b))))) (if (< t 3.0369671037372459e-130) (/ z b) (* 1 (* (+ x (* (/ y t) z)) (/ 1 (+ (+ a 1) (* (/ y t) b)))))))
(/ (+ x (/ (* y z) t)) (+ (+ a 1) (/ (* y b) t))))