x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}x \cdot e^{\mathsf{fma}\left(y, \log z - t, \mathsf{fma}\left(\sqrt[3]{\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)} \cdot \sqrt[3]{\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)}, \sqrt[3]{\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)}, -b \cdot 1\right) \cdot a\right) + a \cdot \mathsf{fma}\left(-b, 1, b \cdot 1\right)}double f(double x, double y, double z, double t, double a, double b) {
double r122185 = x;
double r122186 = y;
double r122187 = z;
double r122188 = log(r122187);
double r122189 = t;
double r122190 = r122188 - r122189;
double r122191 = r122186 * r122190;
double r122192 = a;
double r122193 = 1.0;
double r122194 = r122193 - r122187;
double r122195 = log(r122194);
double r122196 = b;
double r122197 = r122195 - r122196;
double r122198 = r122192 * r122197;
double r122199 = r122191 + r122198;
double r122200 = exp(r122199);
double r122201 = r122185 * r122200;
return r122201;
}
double f(double x, double y, double z, double t, double a, double b) {
double r122202 = x;
double r122203 = y;
double r122204 = z;
double r122205 = log(r122204);
double r122206 = t;
double r122207 = r122205 - r122206;
double r122208 = 1.0;
double r122209 = log(r122208);
double r122210 = 0.5;
double r122211 = 2.0;
double r122212 = pow(r122204, r122211);
double r122213 = pow(r122208, r122211);
double r122214 = r122212 / r122213;
double r122215 = r122210 * r122214;
double r122216 = r122208 * r122204;
double r122217 = r122215 + r122216;
double r122218 = r122209 - r122217;
double r122219 = cbrt(r122218);
double r122220 = r122219 * r122219;
double r122221 = b;
double r122222 = 1.0;
double r122223 = r122221 * r122222;
double r122224 = -r122223;
double r122225 = fma(r122220, r122219, r122224);
double r122226 = a;
double r122227 = r122225 * r122226;
double r122228 = fma(r122203, r122207, r122227);
double r122229 = -r122221;
double r122230 = fma(r122229, r122222, r122223);
double r122231 = r122226 * r122230;
double r122232 = r122228 + r122231;
double r122233 = exp(r122232);
double r122234 = r122202 * r122233;
return r122234;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a



Bits error versus b
Initial program 1.9
Taylor expanded around 0 0.5
rmApplied *-un-lft-identity0.5
Applied add-cube-cbrt0.5
Applied prod-diff0.5
Applied distribute-lft-in0.5
Applied associate-+r+0.5
Simplified0.3
Final simplification0.3
herbie shell --seed 2020046 +o rules:numerics
(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))))))