\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 \leq -1.1071516139533105 \cdot 10^{-97}:\\
\;\;\;\;\frac{x}{x + y \cdot \sqrt[3]{{\left({\left(e^{2}\right)}^{\left(c \cdot 0.8333333333333334 + a \cdot \left(c - b\right)\right)}\right)}^{3}}}\\
\mathbf{elif}\;t \leq 1.8925673024019224 \cdot 10^{-306}:\\
\;\;\;\;\frac{x}{x + y \cdot {\left(e^{2}\right)}^{\left(\frac{z \cdot \left(\sqrt{t + a} \cdot \left(t \cdot \left(3 \cdot \left(a - \frac{5}{6}\right)\right)\right)\right) + t \cdot \left(\left(c - b\right) \cdot \left(t \cdot \left(3 \cdot \left(a \cdot a - \frac{5}{6} \cdot \frac{5}{6}\right)\right) + 2 \cdot \left(\frac{5}{6} - a\right)\right)\right)}{t \cdot \left(t \cdot \left(3 \cdot \left(a - \frac{5}{6}\right)\right)\right)}\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{x + y \cdot {\left(e^{2}\right)}^{\left(\sqrt[3]{z \cdot \frac{\sqrt{t + a}}{t} + \left(c - b\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)} \cdot \left(\sqrt[3]{z \cdot \frac{\sqrt{t + a}}{t} + \left(c - b\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)} \cdot \sqrt[3]{z \cdot \frac{\sqrt{t + a}}{t} + \left(c - b\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)}\right)\right)}}\\
\end{array}double code(double x, double y, double z, double t, double a, double b, double c) {
return (x / ((double) (x + ((double) (y * ((double) exp(((double) (2.0 * ((double) ((((double) (z * ((double) sqrt(((double) (t + a)))))) / t) - ((double) (((double) (b - c)) * ((double) (((double) (a + (5.0 / 6.0))) - (2.0 / ((double) (t * 3.0))))))))))))))))));
}
double code(double x, double y, double z, double t, double a, double b, double c) {
double VAR;
if ((t <= -1.1071516139533105e-97)) {
VAR = (x / ((double) (x + ((double) (y * ((double) cbrt(((double) pow(((double) pow(((double) exp(2.0)), ((double) (((double) (c * 0.8333333333333334)) + ((double) (a * ((double) (c - b)))))))), 3.0)))))))));
} else {
double VAR_1;
if ((t <= 1.8925673024019224e-306)) {
VAR_1 = (x / ((double) (x + ((double) (y * ((double) pow(((double) exp(2.0)), (((double) (((double) (z * ((double) (((double) sqrt(((double) (t + a)))) * ((double) (t * ((double) (3.0 * ((double) (a - (5.0 / 6.0))))))))))) + ((double) (t * ((double) (((double) (c - b)) * ((double) (((double) (t * ((double) (3.0 * ((double) (((double) (a * a)) - ((double) ((5.0 / 6.0) * (5.0 / 6.0))))))))) + ((double) (2.0 * ((double) ((5.0 / 6.0) - a)))))))))))) / ((double) (t * ((double) (t * ((double) (3.0 * ((double) (a - (5.0 / 6.0)))))))))))))))));
} else {
VAR_1 = (x / ((double) (x + ((double) (y * ((double) pow(((double) exp(2.0)), ((double) (((double) cbrt(((double) (((double) (z * (((double) sqrt(((double) (t + a)))) / t))) + ((double) (((double) (c - b)) * ((double) (((double) (a + (5.0 / 6.0))) - (2.0 / ((double) (t * 3.0))))))))))) * ((double) (((double) cbrt(((double) (((double) (z * (((double) sqrt(((double) (t + a)))) / t))) + ((double) (((double) (c - b)) * ((double) (((double) (a + (5.0 / 6.0))) - (2.0 / ((double) (t * 3.0))))))))))) * ((double) cbrt(((double) (((double) (z * (((double) sqrt(((double) (t + a)))) / t))) + ((double) (((double) (c - b)) * ((double) (((double) (a + (5.0 / 6.0))) - (2.0 / ((double) (t * 3.0))))))))))))))))))))));
}
VAR = VAR_1;
}
return VAR;
}




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 | 4.0 |
|---|---|
| Target | 3.1 |
| Herbie | 3.7 |
if t < -1.10715161395331051e-97Initial program 2.6
Simplified1.4
rmApplied add-log-exp5.1
Taylor expanded around inf 10.0
Simplified7.4
rmApplied add-cbrt-cube7.4
Simplified7.4
if -1.10715161395331051e-97 < t < 1.89256730240192235e-306Initial program 8.8
Simplified10.8
rmApplied flip-+13.4
Applied frac-sub13.4
Applied associate-*r/13.4
Applied associate-*r/11.4
Applied frac-add7.4
Simplified8.4
Simplified8.4
if 1.89256730240192235e-306 < t Initial program 3.2
Simplified2.2
rmApplied add-cube-cbrt2.2
Final simplification3.7
herbie shell --seed 2020196
(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.0 (- (+ (* a c) (* 0.8333333333333334 c)) (* a b))))))) (if (< t 5.196588770651547e-123) (/ x (+ x (* y (exp (* 2.0 (/ (- (* (* z (sqrt (+ t a))) (* (* 3.0 t) (- a (/ 5.0 6.0)))) (* (- (* (+ (/ 5.0 6.0) a) (* 3.0 t)) 2.0) (* (- a (/ 5.0 6.0)) (* (- b c) t)))) (* (* (* t t) 3.0) (- a (/ 5.0 6.0))))))))) (/ x (+ x (* y (exp (* 2.0 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))))))))))
(/ x (+ x (* y (exp (* 2.0 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))))))))))