\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 -1.58864618275117732889084966831500711282 \cdot 10^{-55} \lor \neg \left(t \le 2592927404032904812036096\right):\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{\sqrt{t + a}}{\log \left(e^{\sqrt[3]{t}}\right)} - \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(\left(a - \frac{5}{6}\right) \cdot \left(t \cdot 3\right)\right) \cdot \frac{z \cdot \sqrt{t + a}}{\sqrt[3]{t}} - \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 r413249 = x;
double r413250 = y;
double r413251 = 2.0;
double r413252 = z;
double r413253 = t;
double r413254 = a;
double r413255 = r413253 + r413254;
double r413256 = sqrt(r413255);
double r413257 = r413252 * r413256;
double r413258 = r413257 / r413253;
double r413259 = b;
double r413260 = c;
double r413261 = r413259 - r413260;
double r413262 = 5.0;
double r413263 = 6.0;
double r413264 = r413262 / r413263;
double r413265 = r413254 + r413264;
double r413266 = 3.0;
double r413267 = r413253 * r413266;
double r413268 = r413251 / r413267;
double r413269 = r413265 - r413268;
double r413270 = r413261 * r413269;
double r413271 = r413258 - r413270;
double r413272 = r413251 * r413271;
double r413273 = exp(r413272);
double r413274 = r413250 * r413273;
double r413275 = r413249 + r413274;
double r413276 = r413249 / r413275;
return r413276;
}
double f(double x, double y, double z, double t, double a, double b, double c) {
double r413277 = t;
double r413278 = -1.5886461827511773e-55;
bool r413279 = r413277 <= r413278;
double r413280 = 2.592927404032905e+24;
bool r413281 = r413277 <= r413280;
double r413282 = !r413281;
bool r413283 = r413279 || r413282;
double r413284 = x;
double r413285 = y;
double r413286 = 2.0;
double r413287 = z;
double r413288 = cbrt(r413277);
double r413289 = r413288 * r413288;
double r413290 = r413287 / r413289;
double r413291 = a;
double r413292 = r413277 + r413291;
double r413293 = sqrt(r413292);
double r413294 = exp(r413288);
double r413295 = log(r413294);
double r413296 = r413293 / r413295;
double r413297 = r413290 * r413296;
double r413298 = b;
double r413299 = c;
double r413300 = r413298 - r413299;
double r413301 = 5.0;
double r413302 = 6.0;
double r413303 = r413301 / r413302;
double r413304 = r413291 + r413303;
double r413305 = 3.0;
double r413306 = r413277 * r413305;
double r413307 = r413286 / r413306;
double r413308 = r413304 - r413307;
double r413309 = r413300 * r413308;
double r413310 = r413297 - r413309;
double r413311 = r413286 * r413310;
double r413312 = exp(r413311);
double r413313 = r413285 * r413312;
double r413314 = r413284 + r413313;
double r413315 = r413284 / r413314;
double r413316 = r413291 - r413303;
double r413317 = r413316 * r413306;
double r413318 = r413287 * r413293;
double r413319 = r413318 / r413288;
double r413320 = r413317 * r413319;
double r413321 = r413291 * r413291;
double r413322 = r413303 * r413303;
double r413323 = r413321 - r413322;
double r413324 = r413323 * r413306;
double r413325 = r413316 * r413286;
double r413326 = r413324 - r413325;
double r413327 = r413300 * r413326;
double r413328 = r413289 * r413327;
double r413329 = r413320 - r413328;
double r413330 = r413289 * r413317;
double r413331 = r413329 / r413330;
double r413332 = r413286 * r413331;
double r413333 = exp(r413332);
double r413334 = r413285 * r413333;
double r413335 = r413284 + r413334;
double r413336 = r413284 / r413335;
double r413337 = r413283 ? r413315 : r413336;
return r413337;
}




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.9 |
|---|---|
| Target | 3.1 |
| Herbie | 5.1 |
if t < -1.5886461827511773e-55 or 2.592927404032905e+24 < t Initial program 2.9
rmApplied add-cube-cbrt2.9
Applied times-frac0.4
rmApplied add-log-exp4.8
if -1.5886461827511773e-55 < t < 2.592927404032905e+24Initial program 5.0
rmApplied add-cube-cbrt5.0
Applied times-frac5.2
rmApplied add-log-exp26.7
rmApplied flip-+28.0
Applied frac-sub28.0
Applied associate-*r/28.0
Applied associate-*l/28.0
Applied frac-sub27.8
Simplified5.4
Final simplification5.1
herbie shell --seed 2019208
(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.1183266448915811e-50) (/ x (+ x (* y (exp (* 2 (- (+ (* a c) (* 0.83333333333333337 c)) (* a b))))))) (if (< t 5.19658877065154709e-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)))))))))))