x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}x \cdot {e}^{\left(y \cdot \left(\log z - t\right) + \left(a \cdot \log 1 - \left(a \cdot b + 1 \cdot \left(a \cdot z\right)\right)\right)\right)}double f(double x, double y, double z, double t, double a, double b) {
double r91087 = x;
double r91088 = y;
double r91089 = z;
double r91090 = log(r91089);
double r91091 = t;
double r91092 = r91090 - r91091;
double r91093 = r91088 * r91092;
double r91094 = a;
double r91095 = 1.0;
double r91096 = r91095 - r91089;
double r91097 = log(r91096);
double r91098 = b;
double r91099 = r91097 - r91098;
double r91100 = r91094 * r91099;
double r91101 = r91093 + r91100;
double r91102 = exp(r91101);
double r91103 = r91087 * r91102;
return r91103;
}
double f(double x, double y, double z, double t, double a, double b) {
double r91104 = x;
double r91105 = exp(1.0);
double r91106 = y;
double r91107 = z;
double r91108 = log(r91107);
double r91109 = t;
double r91110 = r91108 - r91109;
double r91111 = r91106 * r91110;
double r91112 = a;
double r91113 = 1.0;
double r91114 = log(r91113);
double r91115 = r91112 * r91114;
double r91116 = b;
double r91117 = r91112 * r91116;
double r91118 = r91112 * r91107;
double r91119 = r91113 * r91118;
double r91120 = r91117 + r91119;
double r91121 = r91115 - r91120;
double r91122 = r91111 + r91121;
double r91123 = pow(r91105, r91122);
double r91124 = r91104 * r91123;
return r91124;
}



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
Initial program 1.7
Taylor expanded around 0 0.4
rmApplied *-un-lft-identity0.4
Applied exp-prod0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2020083
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:incompleteBetaApprox from math-functions-0.1.5.2, B"
:precision binary64
(* x (exp (+ (* y (- (log z) t)) (* a (- (log (- 1 z)) b))))))