\frac{x + \frac{y \cdot z}{t}}{\left(a + 1\right) + \frac{y \cdot b}{t}}\begin{array}{l}
\mathbf{if}\;t \le -3.93323669588324535 \cdot 10^{36} \lor \neg \left(t \le 62788810252579463200\right):\\
\;\;\;\;\frac{x + \frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{z}{\sqrt[3]{t}}}{\left(a + 1\right) + \frac{y}{\frac{t}{b}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{y \cdot z}{t} + x}{\left(a + 1\right) + \frac{y \cdot b}{t}}\\
\end{array}double f(double x, double y, double z, double t, double a, double b) {
double r850765 = x;
double r850766 = y;
double r850767 = z;
double r850768 = r850766 * r850767;
double r850769 = t;
double r850770 = r850768 / r850769;
double r850771 = r850765 + r850770;
double r850772 = a;
double r850773 = 1.0;
double r850774 = r850772 + r850773;
double r850775 = b;
double r850776 = r850766 * r850775;
double r850777 = r850776 / r850769;
double r850778 = r850774 + r850777;
double r850779 = r850771 / r850778;
return r850779;
}
double f(double x, double y, double z, double t, double a, double b) {
double r850780 = t;
double r850781 = -3.9332366958832453e+36;
bool r850782 = r850780 <= r850781;
double r850783 = 6.278881025257946e+19;
bool r850784 = r850780 <= r850783;
double r850785 = !r850784;
bool r850786 = r850782 || r850785;
double r850787 = x;
double r850788 = y;
double r850789 = cbrt(r850780);
double r850790 = r850789 * r850789;
double r850791 = r850788 / r850790;
double r850792 = z;
double r850793 = r850792 / r850789;
double r850794 = r850791 * r850793;
double r850795 = r850787 + r850794;
double r850796 = a;
double r850797 = 1.0;
double r850798 = r850796 + r850797;
double r850799 = b;
double r850800 = r850780 / r850799;
double r850801 = r850788 / r850800;
double r850802 = r850798 + r850801;
double r850803 = r850795 / r850802;
double r850804 = r850788 * r850792;
double r850805 = r850804 / r850780;
double r850806 = r850805 + r850787;
double r850807 = r850788 * r850799;
double r850808 = r850807 / r850780;
double r850809 = r850798 + r850808;
double r850810 = r850806 / r850809;
double r850811 = r850786 ? r850803 : r850810;
return r850811;
}




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.0 |
|---|---|
| Target | 12.9 |
| Herbie | 12.2 |
if t < -3.9332366958832453e+36 or 6.278881025257946e+19 < t Initial program 11.5
rmApplied add-cube-cbrt11.7
Applied times-frac7.9
rmApplied associate-/l*3.4
if -3.9332366958832453e+36 < t < 6.278881025257946e+19Initial program 19.9
rmApplied pow119.9
Final simplification12.2
herbie shell --seed 2020047
(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.036967103737246e-130) (/ z b) (* 1 (* (+ x (* (/ y t) z)) (/ 1 (+ (+ a 1) (* (/ y t) b)))))))
(/ (+ x (/ (* y z) t)) (+ (+ a 1) (/ (* y b) t))))