\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\frac{\frac{x}{y}}{\frac{{\left(\frac{1}{a}\right)}^{t}}{{z}^{y}}} \cdot \frac{{\left(\frac{1}{a}\right)}^{1}}{e^{b}}double f(double x, double y, double z, double t, double a, double b) {
double r520085 = x;
double r520086 = y;
double r520087 = z;
double r520088 = log(r520087);
double r520089 = r520086 * r520088;
double r520090 = t;
double r520091 = 1.0;
double r520092 = r520090 - r520091;
double r520093 = a;
double r520094 = log(r520093);
double r520095 = r520092 * r520094;
double r520096 = r520089 + r520095;
double r520097 = b;
double r520098 = r520096 - r520097;
double r520099 = exp(r520098);
double r520100 = r520085 * r520099;
double r520101 = r520100 / r520086;
return r520101;
}
double f(double x, double y, double z, double t, double a, double b) {
double r520102 = x;
double r520103 = y;
double r520104 = r520102 / r520103;
double r520105 = 1.0;
double r520106 = a;
double r520107 = r520105 / r520106;
double r520108 = t;
double r520109 = pow(r520107, r520108);
double r520110 = z;
double r520111 = pow(r520110, r520103);
double r520112 = r520109 / r520111;
double r520113 = r520104 / r520112;
double r520114 = 1.0;
double r520115 = pow(r520107, r520114);
double r520116 = b;
double r520117 = exp(r520116);
double r520118 = r520115 / r520117;
double r520119 = r520113 * r520118;
return r520119;
}




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 | 1.9 |
|---|---|
| Target | 11.0 |
| Herbie | 23.3 |
Initial program 1.9
rmApplied *-un-lft-identity1.9
Applied exp-prod2.0
Simplified2.0
Taylor expanded around inf 1.9
Simplified1.2
Final simplification23.3
herbie shell --seed 1978988140
(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))