\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 r381457 = x;
double r381458 = y;
double r381459 = 2.0;
double r381460 = z;
double r381461 = t;
double r381462 = a;
double r381463 = r381461 + r381462;
double r381464 = sqrt(r381463);
double r381465 = r381460 * r381464;
double r381466 = r381465 / r381461;
double r381467 = b;
double r381468 = c;
double r381469 = r381467 - r381468;
double r381470 = 5.0;
double r381471 = 6.0;
double r381472 = r381470 / r381471;
double r381473 = r381462 + r381472;
double r381474 = 3.0;
double r381475 = r381461 * r381474;
double r381476 = r381459 / r381475;
double r381477 = r381473 - r381476;
double r381478 = r381469 * r381477;
double r381479 = r381466 - r381478;
double r381480 = r381459 * r381479;
double r381481 = exp(r381480);
double r381482 = r381458 * r381481;
double r381483 = r381457 + r381482;
double r381484 = r381457 / r381483;
return r381484;
}
double f(double x, double y, double z, double t, double a, double b, double c) {
double r381485 = x;
double r381486 = y;
double r381487 = 2.0;
double r381488 = z;
double r381489 = t;
double r381490 = cbrt(r381489);
double r381491 = r381490 * r381490;
double r381492 = r381488 / r381491;
double r381493 = a;
double r381494 = r381489 + r381493;
double r381495 = sqrt(r381494);
double r381496 = r381495 / r381490;
double r381497 = r381492 * r381496;
double r381498 = b;
double r381499 = c;
double r381500 = r381498 - r381499;
double r381501 = 5.0;
double r381502 = 6.0;
double r381503 = r381501 / r381502;
double r381504 = r381493 + r381503;
double r381505 = 3.0;
double r381506 = r381489 * r381505;
double r381507 = r381487 / r381506;
double r381508 = r381504 - r381507;
double r381509 = r381500 * r381508;
double r381510 = r381497 - r381509;
double r381511 = r381487 * r381510;
double r381512 = exp(r381511);
double r381513 = r381486 * r381512;
double r381514 = r381485 + r381513;
double r381515 = r381485 / r381514;
return r381515;
}




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.1 |
|---|---|
| Target | 3.2 |
| Herbie | 2.9 |
Initial program 4.1
rmApplied add-cube-cbrt4.1
Applied times-frac2.9
Final simplification2.9
herbie shell --seed 2019297
(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)))))))))))