Average Error: 1.8 → 0.4
Time: 32.8s
Precision: 64
\[x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1.0 - z\right) - b\right)}\]
\[\left(x \cdot \sqrt{e^{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) + \left(\log z - t\right) \cdot y}}\right) \cdot \sqrt{e^{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) + \left(\log z - t\right) \cdot y}}\]
x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1.0 - z\right) - b\right)}
\left(x \cdot \sqrt{e^{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) + \left(\log z - t\right) \cdot y}}\right) \cdot \sqrt{e^{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) + \left(\log z - t\right) \cdot y}}
double f(double x, double y, double z, double t, double a, double b) {
        double r8959882 = x;
        double r8959883 = y;
        double r8959884 = z;
        double r8959885 = log(r8959884);
        double r8959886 = t;
        double r8959887 = r8959885 - r8959886;
        double r8959888 = r8959883 * r8959887;
        double r8959889 = a;
        double r8959890 = 1.0;
        double r8959891 = r8959890 - r8959884;
        double r8959892 = log(r8959891);
        double r8959893 = b;
        double r8959894 = r8959892 - r8959893;
        double r8959895 = r8959889 * r8959894;
        double r8959896 = r8959888 + r8959895;
        double r8959897 = exp(r8959896);
        double r8959898 = r8959882 * r8959897;
        return r8959898;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r8959899 = x;
        double r8959900 = a;
        double r8959901 = 1.0;
        double r8959902 = log(r8959901);
        double r8959903 = z;
        double r8959904 = r8959903 * r8959901;
        double r8959905 = r8959902 - r8959904;
        double r8959906 = r8959903 / r8959901;
        double r8959907 = r8959906 * r8959906;
        double r8959908 = -0.5;
        double r8959909 = r8959907 * r8959908;
        double r8959910 = r8959905 + r8959909;
        double r8959911 = b;
        double r8959912 = r8959910 - r8959911;
        double r8959913 = r8959900 * r8959912;
        double r8959914 = log(r8959903);
        double r8959915 = t;
        double r8959916 = r8959914 - r8959915;
        double r8959917 = y;
        double r8959918 = r8959916 * r8959917;
        double r8959919 = r8959913 + r8959918;
        double r8959920 = exp(r8959919);
        double r8959921 = sqrt(r8959920);
        double r8959922 = r8959899 * r8959921;
        double r8959923 = r8959922 * r8959921;
        return r8959923;
}

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

    \[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.4

    \[\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.4

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

    \[\leadsto x \cdot \color{blue}{\left(\sqrt{e^{y \cdot \left(\log z - t\right) + a \cdot \left(\left(\left(\frac{z}{1.0} \cdot \frac{z}{1.0}\right) \cdot \frac{-1}{2} + \left(\log 1.0 - 1.0 \cdot z\right)\right) - b\right)}} \cdot \sqrt{e^{y \cdot \left(\log z - t\right) + a \cdot \left(\left(\left(\frac{z}{1.0} \cdot \frac{z}{1.0}\right) \cdot \frac{-1}{2} + \left(\log 1.0 - 1.0 \cdot z\right)\right) - b\right)}}\right)}\]
  6. Applied associate-*r*0.4

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

    \[\leadsto \left(x \cdot \sqrt{e^{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) + \left(\log z - t\right) \cdot y}}\right) \cdot \sqrt{e^{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) + \left(\log z - t\right) \cdot y}}\]

Reproduce

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