Average Error: 1.9 → 0.5
Time: 17.1s
Precision: 64
\[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)}\]
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 r112369 = x;
        double r112370 = y;
        double r112371 = z;
        double r112372 = log(r112371);
        double r112373 = t;
        double r112374 = r112372 - r112373;
        double r112375 = r112370 * r112374;
        double r112376 = a;
        double r112377 = 1.0;
        double r112378 = r112377 - r112371;
        double r112379 = log(r112378);
        double r112380 = b;
        double r112381 = r112379 - r112380;
        double r112382 = r112376 * r112381;
        double r112383 = r112375 + r112382;
        double r112384 = exp(r112383);
        double r112385 = r112369 * r112384;
        return r112385;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r112386 = x;
        double r112387 = y;
        double r112388 = z;
        double r112389 = log(r112388);
        double r112390 = t;
        double r112391 = r112389 - r112390;
        double r112392 = r112387 * r112391;
        double r112393 = a;
        double r112394 = 1.0;
        double r112395 = log(r112394);
        double r112396 = 0.5;
        double r112397 = 2.0;
        double r112398 = pow(r112388, r112397);
        double r112399 = pow(r112394, r112397);
        double r112400 = r112398 / r112399;
        double r112401 = r112396 * r112400;
        double r112402 = r112394 * r112388;
        double r112403 = r112401 + r112402;
        double r112404 = r112395 - r112403;
        double r112405 = b;
        double r112406 = r112404 - r112405;
        double r112407 = r112393 * r112406;
        double r112408 = r112392 + r112407;
        double r112409 = exp(r112408);
        double r112410 = r112386 * r112409;
        return r112410;
}

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.5

    \[\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. Final simplification0.5

    \[\leadsto 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)}\]

Reproduce

herbie shell --seed 2020046 
(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))))))