\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 r393539 = x;
double r393540 = y;
double r393541 = 2.0;
double r393542 = z;
double r393543 = t;
double r393544 = a;
double r393545 = r393543 + r393544;
double r393546 = sqrt(r393545);
double r393547 = r393542 * r393546;
double r393548 = r393547 / r393543;
double r393549 = b;
double r393550 = c;
double r393551 = r393549 - r393550;
double r393552 = 5.0;
double r393553 = 6.0;
double r393554 = r393552 / r393553;
double r393555 = r393544 + r393554;
double r393556 = 3.0;
double r393557 = r393543 * r393556;
double r393558 = r393541 / r393557;
double r393559 = r393555 - r393558;
double r393560 = r393551 * r393559;
double r393561 = r393548 - r393560;
double r393562 = r393541 * r393561;
double r393563 = exp(r393562);
double r393564 = r393540 * r393563;
double r393565 = r393539 + r393564;
double r393566 = r393539 / r393565;
return r393566;
}
double f(double x, double y, double z, double t, double a, double b, double c) {
double r393567 = x;
double r393568 = y;
double r393569 = 2.0;
double r393570 = z;
double r393571 = t;
double r393572 = cbrt(r393571);
double r393573 = r393572 * r393572;
double r393574 = r393570 / r393573;
double r393575 = a;
double r393576 = r393571 + r393575;
double r393577 = sqrt(r393576);
double r393578 = r393577 / r393572;
double r393579 = r393574 * r393578;
double r393580 = b;
double r393581 = c;
double r393582 = r393580 - r393581;
double r393583 = 5.0;
double r393584 = 6.0;
double r393585 = r393583 / r393584;
double r393586 = r393575 + r393585;
double r393587 = 3.0;
double r393588 = r393571 * r393587;
double r393589 = r393569 / r393588;
double r393590 = r393586 - r393589;
double r393591 = r393582 * r393590;
double r393592 = r393579 - r393591;
double r393593 = r393569 * r393592;
double r393594 = exp(r393593);
double r393595 = r393568 * r393594;
double r393596 = r393567 + r393595;
double r393597 = r393567 / r393596;
return r393597;
}




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 | 2.9 |
| Herbie | 2.7 |
Initial program 4.0
rmApplied add-cube-cbrt4.0
Applied times-frac2.7
Final simplification2.7
herbie shell --seed 2019212
(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)))))))))))