\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)}}\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)}}double f(double x, double y, double z, double t, double a, double b, double c) {
double r391519 = x;
double r391520 = y;
double r391521 = 2.0;
double r391522 = z;
double r391523 = t;
double r391524 = a;
double r391525 = r391523 + r391524;
double r391526 = sqrt(r391525);
double r391527 = r391522 * r391526;
double r391528 = r391527 / r391523;
double r391529 = b;
double r391530 = c;
double r391531 = r391529 - r391530;
double r391532 = 5.0;
double r391533 = 6.0;
double r391534 = r391532 / r391533;
double r391535 = r391524 + r391534;
double r391536 = 3.0;
double r391537 = r391523 * r391536;
double r391538 = r391521 / r391537;
double r391539 = r391535 - r391538;
double r391540 = r391531 * r391539;
double r391541 = r391528 - r391540;
double r391542 = r391521 * r391541;
double r391543 = exp(r391542);
double r391544 = r391520 * r391543;
double r391545 = r391519 + r391544;
double r391546 = r391519 / r391545;
return r391546;
}
double f(double x, double y, double z, double t, double a, double b, double c) {
double r391547 = x;
double r391548 = y;
double r391549 = 2.0;
double r391550 = z;
double r391551 = t;
double r391552 = cbrt(r391551);
double r391553 = r391552 * r391552;
double r391554 = r391550 / r391553;
double r391555 = a;
double r391556 = r391551 + r391555;
double r391557 = sqrt(r391556);
double r391558 = r391557 / r391552;
double r391559 = r391554 * r391558;
double r391560 = b;
double r391561 = c;
double r391562 = r391560 - r391561;
double r391563 = 5.0;
double r391564 = 6.0;
double r391565 = r391563 / r391564;
double r391566 = r391555 + r391565;
double r391567 = 3.0;
double r391568 = r391551 * r391567;
double r391569 = r391549 / r391568;
double r391570 = r391566 - r391569;
double r391571 = r391562 * r391570;
double r391572 = r391559 - r391571;
double r391573 = r391549 * r391572;
double r391574 = exp(r391573);
double r391575 = r391548 * r391574;
double r391576 = r391547 + r391575;
double r391577 = r391547 / r391576;
return r391577;
}




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.6 |
|---|---|
| Target | 3.2 |
| Herbie | 2.4 |
Initial program 3.6
rmApplied add-cube-cbrt3.6
Applied times-frac2.4
Final simplification2.4
herbie shell --seed 2020036
(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)))))))))))