\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\frac{\left(x \cdot \frac{{\left(\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{1}\right)}^{1}}{\sqrt[3]{e^{\mathsf{fma}\left(y, \log \left(\frac{1}{z}\right), \mathsf{fma}\left(\log \left(\frac{1}{a}\right), t, b\right)\right)}} \cdot \sqrt[3]{e^{\mathsf{fma}\left(y, \log \left(\frac{1}{z}\right), \mathsf{fma}\left(\log \left(\frac{1}{a}\right), t, b\right)\right)}}}\right) \cdot \frac{{\left(\frac{\sqrt[3]{1}}{a}\right)}^{1}}{\sqrt[3]{e^{\mathsf{fma}\left(y, \log \left(\frac{1}{z}\right), \mathsf{fma}\left(\log \left(\frac{1}{a}\right), t, b\right)\right)}}}}{y}double f(double x, double y, double z, double t, double a, double b) {
double r1313 = x;
double r1314 = y;
double r1315 = z;
double r1316 = log(r1315);
double r1317 = r1314 * r1316;
double r1318 = t;
double r1319 = 1.0;
double r1320 = r1318 - r1319;
double r1321 = a;
double r1322 = log(r1321);
double r1323 = r1320 * r1322;
double r1324 = r1317 + r1323;
double r1325 = b;
double r1326 = r1324 - r1325;
double r1327 = exp(r1326);
double r1328 = r1313 * r1327;
double r1329 = r1328 / r1314;
return r1329;
}
double f(double x, double y, double z, double t, double a, double b) {
double r1330 = x;
double r1331 = 1.0;
double r1332 = cbrt(r1331);
double r1333 = r1332 * r1332;
double r1334 = r1333 / r1331;
double r1335 = 1.0;
double r1336 = pow(r1334, r1335);
double r1337 = y;
double r1338 = z;
double r1339 = r1331 / r1338;
double r1340 = log(r1339);
double r1341 = a;
double r1342 = r1331 / r1341;
double r1343 = log(r1342);
double r1344 = t;
double r1345 = b;
double r1346 = fma(r1343, r1344, r1345);
double r1347 = fma(r1337, r1340, r1346);
double r1348 = exp(r1347);
double r1349 = cbrt(r1348);
double r1350 = r1349 * r1349;
double r1351 = r1336 / r1350;
double r1352 = r1330 * r1351;
double r1353 = r1332 / r1341;
double r1354 = pow(r1353, r1335);
double r1355 = r1354 / r1349;
double r1356 = r1352 * r1355;
double r1357 = r1356 / r1337;
return r1357;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a




Bits error versus b
| Original | 1.8 |
|---|---|
| Target | 11.0 |
| Herbie | 1.1 |
Initial program 1.8
Taylor expanded around inf 1.8
Simplified1.1
rmApplied add-cube-cbrt1.1
Applied *-un-lft-identity1.1
Applied add-cube-cbrt1.1
Applied times-frac1.1
Applied unpow-prod-down1.1
Applied times-frac1.1
Applied associate-*r*1.1
Final simplification1.1
herbie shell --seed 2020025 +o rules:numerics
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:incompleteBetaWorker from math-functions-0.1.5.2, A"
:precision binary64
:herbie-target
(if (< t -0.8845848504127471) (/ (* x (/ (pow a (- t 1)) y)) (- (+ b 1) (* y (log z)))) (if (< t 852031.2288374073) (/ (* (/ x y) (pow a (- t 1))) (exp (- b (* (log z) y)))) (/ (* x (/ (pow a (- t 1)) y)) (- (+ b 1) (* y (log z))))))
(/ (* x (exp (- (+ (* y (log z)) (* (- t 1) (log a))) b))) y))