\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\begin{array}{l}
\mathbf{if}\;t \le -9.473153273384903490502724565303245723582 \cdot 10^{-244} \lor \neg \left(t \le 9.548444342446725028979639354139199225475 \cdot 10^{-247}\right):\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{\sqrt{t + a}}{\sqrt[3]{t}} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \frac{\left(z \cdot \frac{\sqrt{t + a}}{\sqrt[3]{t}}\right) \cdot \left(\left(a - \frac{5}{6}\right) \cdot \left(t \cdot 3\right)\right) - \left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right) \cdot \left(\left(b - c\right) \cdot \left(\left(a \cdot a - \frac{5}{6} \cdot \frac{5}{6}\right) \cdot \left(t \cdot 3\right) - \left(a - \frac{5}{6}\right) \cdot 2\right)\right)}{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right) \cdot \left(\left(a - \frac{5}{6}\right) \cdot \left(t \cdot 3\right)\right)}}}\\
\end{array}double f(double x, double y, double z, double t, double a, double b, double c) {
double r248777 = x;
double r248778 = y;
double r248779 = 2.0;
double r248780 = z;
double r248781 = t;
double r248782 = a;
double r248783 = r248781 + r248782;
double r248784 = sqrt(r248783);
double r248785 = r248780 * r248784;
double r248786 = r248785 / r248781;
double r248787 = b;
double r248788 = c;
double r248789 = r248787 - r248788;
double r248790 = 5.0;
double r248791 = 6.0;
double r248792 = r248790 / r248791;
double r248793 = r248782 + r248792;
double r248794 = 3.0;
double r248795 = r248781 * r248794;
double r248796 = r248779 / r248795;
double r248797 = r248793 - r248796;
double r248798 = r248789 * r248797;
double r248799 = r248786 - r248798;
double r248800 = r248779 * r248799;
double r248801 = exp(r248800);
double r248802 = r248778 * r248801;
double r248803 = r248777 + r248802;
double r248804 = r248777 / r248803;
return r248804;
}
double f(double x, double y, double z, double t, double a, double b, double c) {
double r248805 = t;
double r248806 = -9.473153273384903e-244;
bool r248807 = r248805 <= r248806;
double r248808 = 9.548444342446725e-247;
bool r248809 = r248805 <= r248808;
double r248810 = !r248809;
bool r248811 = r248807 || r248810;
double r248812 = x;
double r248813 = y;
double r248814 = 2.0;
double r248815 = z;
double r248816 = cbrt(r248805);
double r248817 = r248816 * r248816;
double r248818 = r248815 / r248817;
double r248819 = a;
double r248820 = r248805 + r248819;
double r248821 = sqrt(r248820);
double r248822 = r248821 / r248816;
double r248823 = r248818 * r248822;
double r248824 = b;
double r248825 = c;
double r248826 = r248824 - r248825;
double r248827 = 5.0;
double r248828 = 6.0;
double r248829 = r248827 / r248828;
double r248830 = r248819 + r248829;
double r248831 = 3.0;
double r248832 = r248805 * r248831;
double r248833 = r248814 / r248832;
double r248834 = r248830 - r248833;
double r248835 = r248826 * r248834;
double r248836 = r248823 - r248835;
double r248837 = r248814 * r248836;
double r248838 = exp(r248837);
double r248839 = r248813 * r248838;
double r248840 = r248812 + r248839;
double r248841 = r248812 / r248840;
double r248842 = r248815 * r248822;
double r248843 = r248819 - r248829;
double r248844 = r248843 * r248832;
double r248845 = r248842 * r248844;
double r248846 = r248819 * r248819;
double r248847 = r248829 * r248829;
double r248848 = r248846 - r248847;
double r248849 = r248848 * r248832;
double r248850 = r248843 * r248814;
double r248851 = r248849 - r248850;
double r248852 = r248826 * r248851;
double r248853 = r248817 * r248852;
double r248854 = r248845 - r248853;
double r248855 = r248817 * r248844;
double r248856 = r248854 / r248855;
double r248857 = r248814 * r248856;
double r248858 = exp(r248857);
double r248859 = r248813 * r248858;
double r248860 = r248812 + r248859;
double r248861 = r248812 / r248860;
double r248862 = r248811 ? r248841 : r248861;
return r248862;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a




Bits error versus b




Bits error versus c
Results
| Original | 3.8 |
|---|---|
| Target | 2.9 |
| Herbie | 2.4 |
if t < -9.473153273384903e-244 or 9.548444342446725e-247 < t Initial program 3.0
rmApplied add-cube-cbrt3.0
Applied times-frac1.8
if -9.473153273384903e-244 < t < 9.548444342446725e-247Initial program 10.4
rmApplied add-cube-cbrt10.4
Applied times-frac10.5
rmApplied flip-+13.9
Applied frac-sub13.9
Applied associate-*r/13.9
Applied associate-*l/13.8
Applied frac-sub7.9
Final simplification2.4
herbie shell --seed 2019323
(FPCore (x y z t a b c)
:name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2, I"
:precision binary64
:herbie-target
(if (< t -2.118326644891581e-50) (/ x (+ x (* y (exp (* 2 (- (+ (* a c) (* 0.8333333333333334 c)) (* a b))))))) (if (< t 5.196588770651547e-123) (/ x (+ x (* y (exp (* 2 (/ (- (* (* z (sqrt (+ t a))) (* (* 3 t) (- a (/ 5 6)))) (* (- (* (+ (/ 5 6) a) (* 3 t)) 2) (* (- a (/ 5 6)) (* (- b c) t)))) (* (* (* t t) 3) (- a (/ 5 6))))))))) (/ x (+ x (* y (exp (* 2 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5 6)) (/ 2 (* t 3))))))))))))
(/ x (+ x (* y (exp (* 2 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5 6)) (/ 2 (* t 3)))))))))))