Average Error: 1.9 → 0.4
Time: 16.7s
Precision: 64
\[x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}\]
\[x \cdot \mathsf{expm1}\left(\mathsf{log1p}\left({e}^{\left(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)\right)}\right)\right)\]
x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}
x \cdot \mathsf{expm1}\left(\mathsf{log1p}\left({e}^{\left(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)\right)}\right)\right)
double f(double x, double y, double z, double t, double a, double b) {
        double r115298 = x;
        double r115299 = y;
        double r115300 = z;
        double r115301 = log(r115300);
        double r115302 = t;
        double r115303 = r115301 - r115302;
        double r115304 = r115299 * r115303;
        double r115305 = a;
        double r115306 = 1.0;
        double r115307 = r115306 - r115300;
        double r115308 = log(r115307);
        double r115309 = b;
        double r115310 = r115308 - r115309;
        double r115311 = r115305 * r115310;
        double r115312 = r115304 + r115311;
        double r115313 = exp(r115312);
        double r115314 = r115298 * r115313;
        return r115314;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r115315 = x;
        double r115316 = exp(1.0);
        double r115317 = y;
        double r115318 = z;
        double r115319 = log(r115318);
        double r115320 = t;
        double r115321 = r115319 - r115320;
        double r115322 = r115317 * r115321;
        double r115323 = a;
        double r115324 = 1.0;
        double r115325 = log(r115324);
        double r115326 = 0.5;
        double r115327 = 2.0;
        double r115328 = pow(r115318, r115327);
        double r115329 = pow(r115324, r115327);
        double r115330 = r115328 / r115329;
        double r115331 = r115326 * r115330;
        double r115332 = r115324 * r115318;
        double r115333 = r115331 + r115332;
        double r115334 = r115325 - r115333;
        double r115335 = b;
        double r115336 = r115334 - r115335;
        double r115337 = r115323 * r115336;
        double r115338 = r115322 + r115337;
        double r115339 = pow(r115316, r115338);
        double r115340 = log1p(r115339);
        double r115341 = expm1(r115340);
        double r115342 = r115315 * r115341;
        return r115342;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Bits error versus a

Bits error versus b

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 1.9

    \[x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}\]
  2. Taylor expanded around 0 0.4

    \[\leadsto x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\color{blue}{\left(\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)\right)} - b\right)}\]
  3. Using strategy rm
  4. Applied *-un-lft-identity0.4

    \[\leadsto x \cdot e^{\color{blue}{1 \cdot \left(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)\right)}}\]
  5. Applied exp-prod0.4

    \[\leadsto x \cdot \color{blue}{{\left(e^{1}\right)}^{\left(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)\right)}}\]
  6. Simplified0.4

    \[\leadsto x \cdot {\color{blue}{e}}^{\left(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)\right)}\]
  7. Using strategy rm
  8. Applied expm1-log1p-u0.4

    \[\leadsto x \cdot \color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left({e}^{\left(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)\right)}\right)\right)}\]
  9. Final simplification0.4

    \[\leadsto x \cdot \mathsf{expm1}\left(\mathsf{log1p}\left({e}^{\left(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)\right)}\right)\right)\]

Reproduce

herbie shell --seed 2019347 +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))))))