\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\frac{\sqrt[3]{e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}}{\sqrt[3]{y}} \cdot \left(\frac{\sqrt[3]{e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}}{\sqrt[3]{y}} \cdot \left(\frac{\sqrt[3]{e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}}{\sqrt[3]{y}} \cdot x\right)\right)double f(double x, double y, double z, double t, double a, double b) {
double r22917152 = x;
double r22917153 = y;
double r22917154 = z;
double r22917155 = log(r22917154);
double r22917156 = r22917153 * r22917155;
double r22917157 = t;
double r22917158 = 1.0;
double r22917159 = r22917157 - r22917158;
double r22917160 = a;
double r22917161 = log(r22917160);
double r22917162 = r22917159 * r22917161;
double r22917163 = r22917156 + r22917162;
double r22917164 = b;
double r22917165 = r22917163 - r22917164;
double r22917166 = exp(r22917165);
double r22917167 = r22917152 * r22917166;
double r22917168 = r22917167 / r22917153;
return r22917168;
}
double f(double x, double y, double z, double t, double a, double b) {
double r22917169 = y;
double r22917170 = z;
double r22917171 = log(r22917170);
double r22917172 = r22917169 * r22917171;
double r22917173 = t;
double r22917174 = 1.0;
double r22917175 = r22917173 - r22917174;
double r22917176 = a;
double r22917177 = log(r22917176);
double r22917178 = r22917175 * r22917177;
double r22917179 = r22917172 + r22917178;
double r22917180 = b;
double r22917181 = r22917179 - r22917180;
double r22917182 = exp(r22917181);
double r22917183 = cbrt(r22917182);
double r22917184 = cbrt(r22917169);
double r22917185 = r22917183 / r22917184;
double r22917186 = x;
double r22917187 = r22917185 * r22917186;
double r22917188 = r22917185 * r22917187;
double r22917189 = r22917185 * r22917188;
return r22917189;
}




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.8 |
|---|---|
| Target | 11.1 |
| Herbie | 0.9 |
Initial program 1.8
rmApplied *-un-lft-identity1.8
Applied times-frac2.2
Simplified2.2
rmApplied add-cube-cbrt2.2
Applied add-cube-cbrt2.2
Applied times-frac2.2
Applied associate-*r*1.1
Simplified0.9
Final simplification0.9
herbie shell --seed 2019170
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:incompleteBetaWorker from math-functions-0.1.5.2, A"
:herbie-target
(if (< t -0.8845848504127471) (/ (* x (/ (pow a (- t 1.0)) y)) (- (+ b 1.0) (* y (log z)))) (if (< t 852031.2288374073) (/ (* (/ x y) (pow a (- t 1.0))) (exp (- b (* (log z) y)))) (/ (* x (/ (pow a (- t 1.0)) y)) (- (+ b 1.0) (* y (log z))))))
(/ (* x (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) y))