Average Error: 2.1 → 0.3
Time: 15.6s
Precision: 64
\[x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}\]
\[\left(x \cdot \sqrt{e^{\mathsf{fma}\left(y, \log z - t, a \cdot \left(\left(\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)\right) - b\right)\right)}}\right) \cdot \sqrt{\left(\sqrt[3]{e^{\mathsf{fma}\left(y, \log z - t, a \cdot \left(\left(\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)\right) - b\right)\right)}} \cdot \sqrt[3]{e^{\mathsf{fma}\left(y, \log z - t, a \cdot \left(\left(\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)\right) - b\right)\right)}}\right) \cdot \sqrt[3]{e^{\mathsf{fma}\left(y, \log z - t, a \cdot \left(\left(\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)\right) - b\right)\right)}}}\]
x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}
\left(x \cdot \sqrt{e^{\mathsf{fma}\left(y, \log z - t, a \cdot \left(\left(\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)\right) - b\right)\right)}}\right) \cdot \sqrt{\left(\sqrt[3]{e^{\mathsf{fma}\left(y, \log z - t, a \cdot \left(\left(\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)\right) - b\right)\right)}} \cdot \sqrt[3]{e^{\mathsf{fma}\left(y, \log z - t, a \cdot \left(\left(\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)\right) - b\right)\right)}}\right) \cdot \sqrt[3]{e^{\mathsf{fma}\left(y, \log z - t, a \cdot \left(\left(\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)\right) - b\right)\right)}}}
double f(double x, double y, double z, double t, double a, double b) {
        double r149950 = x;
        double r149951 = y;
        double r149952 = z;
        double r149953 = log(r149952);
        double r149954 = t;
        double r149955 = r149953 - r149954;
        double r149956 = r149951 * r149955;
        double r149957 = a;
        double r149958 = 1.0;
        double r149959 = r149958 - r149952;
        double r149960 = log(r149959);
        double r149961 = b;
        double r149962 = r149960 - r149961;
        double r149963 = r149957 * r149962;
        double r149964 = r149956 + r149963;
        double r149965 = exp(r149964);
        double r149966 = r149950 * r149965;
        return r149966;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r149967 = x;
        double r149968 = y;
        double r149969 = z;
        double r149970 = log(r149969);
        double r149971 = t;
        double r149972 = r149970 - r149971;
        double r149973 = a;
        double r149974 = 1.0;
        double r149975 = log(r149974);
        double r149976 = 0.5;
        double r149977 = 2.0;
        double r149978 = pow(r149969, r149977);
        double r149979 = pow(r149974, r149977);
        double r149980 = r149978 / r149979;
        double r149981 = r149976 * r149980;
        double r149982 = r149974 * r149969;
        double r149983 = r149981 + r149982;
        double r149984 = r149975 - r149983;
        double r149985 = b;
        double r149986 = r149984 - r149985;
        double r149987 = r149973 * r149986;
        double r149988 = fma(r149968, r149972, r149987);
        double r149989 = exp(r149988);
        double r149990 = sqrt(r149989);
        double r149991 = r149967 * r149990;
        double r149992 = cbrt(r149989);
        double r149993 = r149992 * r149992;
        double r149994 = r149993 * r149992;
        double r149995 = sqrt(r149994);
        double r149996 = r149991 * r149995;
        return r149996;
}

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

Derivation

  1. Initial program 2.1

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

    \[\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. Using strategy rm
  4. Applied fma-def0.3

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

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

    \[\leadsto \color{blue}{\left(x \cdot \sqrt{e^{\mathsf{fma}\left(y, \log z - t, a \cdot \left(\left(\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)\right) - b\right)\right)}}\right) \cdot \sqrt{e^{\mathsf{fma}\left(y, \log z - t, a \cdot \left(\left(\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)\right) - b\right)\right)}}}\]
  8. Using strategy rm
  9. Applied add-cube-cbrt0.3

    \[\leadsto \left(x \cdot \sqrt{e^{\mathsf{fma}\left(y, \log z - t, a \cdot \left(\left(\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)\right) - b\right)\right)}}\right) \cdot \sqrt{\color{blue}{\left(\sqrt[3]{e^{\mathsf{fma}\left(y, \log z - t, a \cdot \left(\left(\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)\right) - b\right)\right)}} \cdot \sqrt[3]{e^{\mathsf{fma}\left(y, \log z - t, a \cdot \left(\left(\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)\right) - b\right)\right)}}\right) \cdot \sqrt[3]{e^{\mathsf{fma}\left(y, \log z - t, a \cdot \left(\left(\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)\right) - b\right)\right)}}}}\]
  10. Final simplification0.3

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

Reproduce

herbie shell --seed 2019354 +o rules:numerics
(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))))))