\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\frac{\frac{{\left(\frac{1}{a}\right)}^{1}}{y} \cdot x}{\frac{{\left(\frac{1}{z}\right)}^{y} \cdot e^{b}}{{a}^{t}}}double f(double x, double y, double z, double t, double a, double b) {
double r259297 = x;
double r259298 = y;
double r259299 = z;
double r259300 = log(r259299);
double r259301 = r259298 * r259300;
double r259302 = t;
double r259303 = 1.0;
double r259304 = r259302 - r259303;
double r259305 = a;
double r259306 = log(r259305);
double r259307 = r259304 * r259306;
double r259308 = r259301 + r259307;
double r259309 = b;
double r259310 = r259308 - r259309;
double r259311 = exp(r259310);
double r259312 = r259297 * r259311;
double r259313 = r259312 / r259298;
return r259313;
}
double f(double x, double y, double z, double t, double a, double b) {
double r259314 = 1.0;
double r259315 = a;
double r259316 = r259314 / r259315;
double r259317 = 1.0;
double r259318 = pow(r259316, r259317);
double r259319 = y;
double r259320 = r259318 / r259319;
double r259321 = x;
double r259322 = r259320 * r259321;
double r259323 = z;
double r259324 = r259314 / r259323;
double r259325 = pow(r259324, r259319);
double r259326 = b;
double r259327 = exp(r259326);
double r259328 = r259325 * r259327;
double r259329 = t;
double r259330 = pow(r259315, r259329);
double r259331 = r259328 / r259330;
double r259332 = r259322 / r259331;
return r259332;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a




Bits error versus b
Results
| Original | 2.1 |
|---|---|
| Target | 11.2 |
| Herbie | 26.9 |
if a < 2.018699136318795e+64Initial program 0.8
Taylor expanded around inf 0.8
Simplified0.2
rmApplied div-inv0.2
rmApplied add-sqr-sqrt0.2
Applied associate-*r*0.2
if 2.018699136318795e+64 < a Initial program 3.8
Taylor expanded around inf 3.8
Simplified3.0
rmApplied div-inv3.0
rmApplied add-sqr-sqrt3.1
Applied associate-*r*3.1
rmApplied sqrt-div3.1
Applied sqrt-div3.1
Applied associate-*r/3.1
Applied frac-times3.1
Applied associate-*l/4.3
Simplified1.3
Final simplification26.9
herbie shell --seed 2019294
(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.88458485041274715) (/ (* x (/ (pow a (- t 1)) y)) (- (+ b 1) (* y (log z)))) (if (< t 852031.22883740731) (/ (* (/ 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))