Average Error: 2.1 → 0.5
Time: 31.6s
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 r7128693 = x;
        double r7128694 = y;
        double r7128695 = z;
        double r7128696 = log(r7128695);
        double r7128697 = t;
        double r7128698 = r7128696 - r7128697;
        double r7128699 = r7128694 * r7128698;
        double r7128700 = a;
        double r7128701 = 1.0;
        double r7128702 = r7128701 - r7128695;
        double r7128703 = log(r7128702);
        double r7128704 = b;
        double r7128705 = r7128703 - r7128704;
        double r7128706 = r7128700 * r7128705;
        double r7128707 = r7128699 + r7128706;
        double r7128708 = exp(r7128707);
        double r7128709 = r7128693 * r7128708;
        return r7128709;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r7128710 = a;
        double r7128711 = 1.0;
        double r7128712 = log(r7128711);
        double r7128713 = z;
        double r7128714 = r7128713 * r7128711;
        double r7128715 = r7128712 - r7128714;
        double r7128716 = 0.5;
        double r7128717 = r7128713 / r7128711;
        double r7128718 = r7128717 * r7128717;
        double r7128719 = r7128716 * r7128718;
        double r7128720 = r7128715 - r7128719;
        double r7128721 = b;
        double r7128722 = r7128720 - r7128721;
        double r7128723 = r7128710 * r7128722;
        double r7128724 = log(r7128713);
        double r7128725 = t;
        double r7128726 = r7128724 - r7128725;
        double r7128727 = y;
        double r7128728 = r7128726 * r7128727;
        double r7128729 = r7128723 + r7128728;
        double r7128730 = exp(r7128729);
        double r7128731 = sqrt(r7128730);
        double r7128732 = r7128731 * r7128731;
        double r7128733 = x;
        double r7128734 = r7128732 * r7128733;
        return r7128734;
}

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 - 1.0 \cdot z\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 - 1.0 \cdot z\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 - 1.0 \cdot z\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 2019162 
(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))))))