Average Error: 1.9 → 0.5
Time: 34.9s
Precision: 64
\[x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}\]
\[e^{a \cdot \left(\left(\log 1 - \left(z \cdot 1 + \frac{1}{2} \cdot \left(\frac{z}{1} \cdot \frac{z}{1}\right)\right)\right) - b\right) + \left(\log z - t\right) \cdot y} \cdot x\]
x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}
e^{a \cdot \left(\left(\log 1 - \left(z \cdot 1 + \frac{1}{2} \cdot \left(\frac{z}{1} \cdot \frac{z}{1}\right)\right)\right) - b\right) + \left(\log z - t\right) \cdot y} \cdot x
double f(double x, double y, double z, double t, double a, double b) {
        double r8642823 = x;
        double r8642824 = y;
        double r8642825 = z;
        double r8642826 = log(r8642825);
        double r8642827 = t;
        double r8642828 = r8642826 - r8642827;
        double r8642829 = r8642824 * r8642828;
        double r8642830 = a;
        double r8642831 = 1.0;
        double r8642832 = r8642831 - r8642825;
        double r8642833 = log(r8642832);
        double r8642834 = b;
        double r8642835 = r8642833 - r8642834;
        double r8642836 = r8642830 * r8642835;
        double r8642837 = r8642829 + r8642836;
        double r8642838 = exp(r8642837);
        double r8642839 = r8642823 * r8642838;
        return r8642839;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r8642840 = a;
        double r8642841 = 1.0;
        double r8642842 = log(r8642841);
        double r8642843 = z;
        double r8642844 = r8642843 * r8642841;
        double r8642845 = 0.5;
        double r8642846 = r8642843 / r8642841;
        double r8642847 = r8642846 * r8642846;
        double r8642848 = r8642845 * r8642847;
        double r8642849 = r8642844 + r8642848;
        double r8642850 = r8642842 - r8642849;
        double r8642851 = b;
        double r8642852 = r8642850 - r8642851;
        double r8642853 = r8642840 * r8642852;
        double r8642854 = log(r8642843);
        double r8642855 = t;
        double r8642856 = r8642854 - r8642855;
        double r8642857 = y;
        double r8642858 = r8642856 * r8642857;
        double r8642859 = r8642853 + r8642858;
        double r8642860 = exp(r8642859);
        double r8642861 = x;
        double r8642862 = r8642860 * r8642861;
        return r8642862;
}

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(1 \cdot z + \frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{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(\log 1 - \left(z \cdot 1 + \left(\frac{z}{1} \cdot \frac{z}{1}\right) \cdot \frac{1}{2}\right)\right)} - b\right)}\]
  4. Final simplification0.5

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

Reproduce

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