\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\frac{1}{{\left({a}^{1}\right)}^{1} \cdot \frac{e^{\log \left(\frac{1}{z}\right) \cdot y + \left(\log \left(\frac{1}{a}\right) \cdot t + b\right)} \cdot y}{x}}double f(double x, double y, double z, double t, double a, double b) {
double r650187 = x;
double r650188 = y;
double r650189 = z;
double r650190 = log(r650189);
double r650191 = r650188 * r650190;
double r650192 = t;
double r650193 = 1.0;
double r650194 = r650192 - r650193;
double r650195 = a;
double r650196 = log(r650195);
double r650197 = r650194 * r650196;
double r650198 = r650191 + r650197;
double r650199 = b;
double r650200 = r650198 - r650199;
double r650201 = exp(r650200);
double r650202 = r650187 * r650201;
double r650203 = r650202 / r650188;
return r650203;
}
double f(double x, double y, double z, double t, double a, double b) {
double r650204 = 1.0;
double r650205 = a;
double r650206 = 1.0;
double r650207 = pow(r650205, r650206);
double r650208 = pow(r650207, r650206);
double r650209 = z;
double r650210 = r650204 / r650209;
double r650211 = log(r650210);
double r650212 = y;
double r650213 = r650211 * r650212;
double r650214 = r650204 / r650205;
double r650215 = log(r650214);
double r650216 = t;
double r650217 = r650215 * r650216;
double r650218 = b;
double r650219 = r650217 + r650218;
double r650220 = r650213 + r650219;
double r650221 = exp(r650220);
double r650222 = r650221 * r650212;
double r650223 = x;
double r650224 = r650222 / r650223;
double r650225 = r650208 * r650224;
double r650226 = r650204 / r650225;
return r650226;
}




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.0 |
|---|---|
| Target | 11.2 |
| Herbie | 1.2 |
Initial program 2.0
Taylor expanded around inf 2.0
Simplified1.2
rmApplied add-cube-cbrt1.3
Applied add-sqr-sqrt1.3
Applied *-un-lft-identity1.3
Applied times-frac1.3
Applied unpow-prod-down1.3
Applied times-frac1.3
Applied associate-*r*1.3
rmApplied clear-num1.3
Simplified6.2
Taylor expanded around inf 1.2
Final simplification1.2
herbie shell --seed 2020056
(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))