x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\left(\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)\right) - b\right)}double f(double x, double y, double z, double t, double a, double b) {
double r63089 = x;
double r63090 = y;
double r63091 = z;
double r63092 = log(r63091);
double r63093 = t;
double r63094 = r63092 - r63093;
double r63095 = r63090 * r63094;
double r63096 = a;
double r63097 = 1.0;
double r63098 = r63097 - r63091;
double r63099 = log(r63098);
double r63100 = b;
double r63101 = r63099 - r63100;
double r63102 = r63096 * r63101;
double r63103 = r63095 + r63102;
double r63104 = exp(r63103);
double r63105 = r63089 * r63104;
return r63105;
}
double f(double x, double y, double z, double t, double a, double b) {
double r63106 = x;
double r63107 = y;
double r63108 = z;
double r63109 = log(r63108);
double r63110 = t;
double r63111 = r63109 - r63110;
double r63112 = r63107 * r63111;
double r63113 = a;
double r63114 = 1.0;
double r63115 = log(r63114);
double r63116 = 0.5;
double r63117 = 2.0;
double r63118 = pow(r63108, r63117);
double r63119 = pow(r63114, r63117);
double r63120 = r63118 / r63119;
double r63121 = r63116 * r63120;
double r63122 = r63114 * r63108;
double r63123 = r63121 + r63122;
double r63124 = r63115 - r63123;
double r63125 = b;
double r63126 = r63124 - r63125;
double r63127 = r63113 * r63126;
double r63128 = r63112 + r63127;
double r63129 = exp(r63128);
double r63130 = r63106 * r63129;
return r63130;
}



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.9
Taylor expanded around 0 0.5
Final simplification0.5
herbie shell --seed 2019291
(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))))))