\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 r1051337 = x;
double r1051338 = y;
double r1051339 = 2.0;
double r1051340 = z;
double r1051341 = t;
double r1051342 = a;
double r1051343 = r1051341 + r1051342;
double r1051344 = sqrt(r1051343);
double r1051345 = r1051340 * r1051344;
double r1051346 = r1051345 / r1051341;
double r1051347 = b;
double r1051348 = c;
double r1051349 = r1051347 - r1051348;
double r1051350 = 5.0;
double r1051351 = 6.0;
double r1051352 = r1051350 / r1051351;
double r1051353 = r1051342 + r1051352;
double r1051354 = 3.0;
double r1051355 = r1051341 * r1051354;
double r1051356 = r1051339 / r1051355;
double r1051357 = r1051353 - r1051356;
double r1051358 = r1051349 * r1051357;
double r1051359 = r1051346 - r1051358;
double r1051360 = r1051339 * r1051359;
double r1051361 = exp(r1051360);
double r1051362 = r1051338 * r1051361;
double r1051363 = r1051337 + r1051362;
double r1051364 = r1051337 / r1051363;
return r1051364;
}
double f(double x, double y, double z, double t, double a, double b, double c) {
double r1051365 = x;
double r1051366 = y;
double r1051367 = 2.0;
double r1051368 = z;
double r1051369 = t;
double r1051370 = cbrt(r1051369);
double r1051371 = r1051370 * r1051370;
double r1051372 = r1051368 / r1051371;
double r1051373 = a;
double r1051374 = r1051369 + r1051373;
double r1051375 = sqrt(r1051374);
double r1051376 = r1051375 / r1051370;
double r1051377 = r1051372 * r1051376;
double r1051378 = b;
double r1051379 = c;
double r1051380 = r1051378 - r1051379;
double r1051381 = 5.0;
double r1051382 = 6.0;
double r1051383 = r1051381 / r1051382;
double r1051384 = r1051373 + r1051383;
double r1051385 = 3.0;
double r1051386 = r1051369 * r1051385;
double r1051387 = r1051367 / r1051386;
double r1051388 = r1051384 - r1051387;
double r1051389 = r1051380 * r1051388;
double r1051390 = r1051377 - r1051389;
double r1051391 = r1051367 * r1051390;
double r1051392 = exp(r1051391);
double r1051393 = r1051366 * r1051392;
double r1051394 = r1051365 + r1051393;
double r1051395 = r1051365 / r1051394;
return r1051395;
}




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