Average Error: 2.1 → 0.5
Time: 29.7s
Precision: 64
\[x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1.0 - z\right) - b\right)}\]
\[\left(\sqrt{e^{a \cdot \left(\left(\left(\log 1.0 - z \cdot 1.0\right) - \frac{1}{2} \cdot \left(\frac{z}{1.0} \cdot \frac{z}{1.0}\right)\right) - b\right) + \left(\log z - t\right) \cdot y}} \cdot \sqrt{e^{a \cdot \left(\left(\left(\log 1.0 - z \cdot 1.0\right) - \frac{1}{2} \cdot \left(\frac{z}{1.0} \cdot \frac{z}{1.0}\right)\right) - b\right) + \left(\log z - t\right) \cdot y}}\right) \cdot x\]
x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1.0 - z\right) - b\right)}
\left(\sqrt{e^{a \cdot \left(\left(\left(\log 1.0 - z \cdot 1.0\right) - \frac{1}{2} \cdot \left(\frac{z}{1.0} \cdot \frac{z}{1.0}\right)\right) - b\right) + \left(\log z - t\right) \cdot y}} \cdot \sqrt{e^{a \cdot \left(\left(\left(\log 1.0 - z \cdot 1.0\right) - \frac{1}{2} \cdot \left(\frac{z}{1.0} \cdot \frac{z}{1.0}\right)\right) - b\right) + \left(\log z - t\right) \cdot y}}\right) \cdot x
double f(double x, double y, double z, double t, double a, double b) {
        double r6914479 = x;
        double r6914480 = y;
        double r6914481 = z;
        double r6914482 = log(r6914481);
        double r6914483 = t;
        double r6914484 = r6914482 - r6914483;
        double r6914485 = r6914480 * r6914484;
        double r6914486 = a;
        double r6914487 = 1.0;
        double r6914488 = r6914487 - r6914481;
        double r6914489 = log(r6914488);
        double r6914490 = b;
        double r6914491 = r6914489 - r6914490;
        double r6914492 = r6914486 * r6914491;
        double r6914493 = r6914485 + r6914492;
        double r6914494 = exp(r6914493);
        double r6914495 = r6914479 * r6914494;
        return r6914495;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r6914496 = a;
        double r6914497 = 1.0;
        double r6914498 = log(r6914497);
        double r6914499 = z;
        double r6914500 = r6914499 * r6914497;
        double r6914501 = r6914498 - r6914500;
        double r6914502 = 0.5;
        double r6914503 = r6914499 / r6914497;
        double r6914504 = r6914503 * r6914503;
        double r6914505 = r6914502 * r6914504;
        double r6914506 = r6914501 - r6914505;
        double r6914507 = b;
        double r6914508 = r6914506 - r6914507;
        double r6914509 = r6914496 * r6914508;
        double r6914510 = log(r6914499);
        double r6914511 = t;
        double r6914512 = r6914510 - r6914511;
        double r6914513 = y;
        double r6914514 = r6914512 * r6914513;
        double r6914515 = r6914509 + r6914514;
        double r6914516 = exp(r6914515);
        double r6914517 = sqrt(r6914516);
        double r6914518 = r6914517 * r6914517;
        double r6914519 = x;
        double r6914520 = r6914518 * r6914519;
        return r6914520;
}

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 2.1

    \[x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1.0 - 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.0 - \left(1.0 \cdot z + \frac{1}{2} \cdot \frac{{z}^{2}}{{1.0}^{2}}\right)\right)} - b\right)}\]
  3. Simplified0.5

    \[\leadsto x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\color{blue}{\left(\left(\log 1.0 - z \cdot 1.0\right) - \left(\frac{z}{1.0} \cdot \frac{z}{1.0}\right) \cdot \frac{1}{2}\right)} - b\right)}\]
  4. Using strategy rm
  5. Applied add-sqr-sqrt0.5

    \[\leadsto x \cdot \color{blue}{\left(\sqrt{e^{y \cdot \left(\log z - t\right) + a \cdot \left(\left(\left(\log 1.0 - z \cdot 1.0\right) - \left(\frac{z}{1.0} \cdot \frac{z}{1.0}\right) \cdot \frac{1}{2}\right) - b\right)}} \cdot \sqrt{e^{y \cdot \left(\log z - t\right) + a \cdot \left(\left(\left(\log 1.0 - z \cdot 1.0\right) - \left(\frac{z}{1.0} \cdot \frac{z}{1.0}\right) \cdot \frac{1}{2}\right) - b\right)}}\right)}\]
  6. Final simplification0.5

    \[\leadsto \left(\sqrt{e^{a \cdot \left(\left(\left(\log 1.0 - z \cdot 1.0\right) - \frac{1}{2} \cdot \left(\frac{z}{1.0} \cdot \frac{z}{1.0}\right)\right) - b\right) + \left(\log z - t\right) \cdot y}} \cdot \sqrt{e^{a \cdot \left(\left(\left(\log 1.0 - z \cdot 1.0\right) - \frac{1}{2} \cdot \left(\frac{z}{1.0} \cdot \frac{z}{1.0}\right)\right) - b\right) + \left(\log z - t\right) \cdot y}}\right) \cdot x\]

Reproduce

herbie shell --seed 2019165 
(FPCore (x y z t a b)
  :name "Numeric.SpecFunctions:incompleteBetaApprox from math-functions-0.1.5.2, B"
  (* x (exp (+ (* y (- (log z) t)) (* a (- (log (- 1.0 z)) b))))))