Average Error: 2.1 → 0.3
Time: 16.2s
Precision: 64
\[x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}\]
\[x \cdot {\left({\left(e^{2}\right)}^{\left(\mathsf{fma}\left(y, \log z - t, \left(\log 1 - \left(\mathsf{fma}\left(\frac{1}{2}, \frac{{z}^{2}}{{1}^{2}}, 1 \cdot z\right) + b\right)\right) \cdot a\right)\right)}\right)}^{\frac{1}{2}}\]
x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}
x \cdot {\left({\left(e^{2}\right)}^{\left(\mathsf{fma}\left(y, \log z - t, \left(\log 1 - \left(\mathsf{fma}\left(\frac{1}{2}, \frac{{z}^{2}}{{1}^{2}}, 1 \cdot z\right) + b\right)\right) \cdot a\right)\right)}\right)}^{\frac{1}{2}}
double f(double x, double y, double z, double t, double a, double b) {
        double r107009 = x;
        double r107010 = y;
        double r107011 = z;
        double r107012 = log(r107011);
        double r107013 = t;
        double r107014 = r107012 - r107013;
        double r107015 = r107010 * r107014;
        double r107016 = a;
        double r107017 = 1.0;
        double r107018 = r107017 - r107011;
        double r107019 = log(r107018);
        double r107020 = b;
        double r107021 = r107019 - r107020;
        double r107022 = r107016 * r107021;
        double r107023 = r107015 + r107022;
        double r107024 = exp(r107023);
        double r107025 = r107009 * r107024;
        return r107025;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r107026 = x;
        double r107027 = 2.0;
        double r107028 = exp(r107027);
        double r107029 = y;
        double r107030 = z;
        double r107031 = log(r107030);
        double r107032 = t;
        double r107033 = r107031 - r107032;
        double r107034 = 1.0;
        double r107035 = log(r107034);
        double r107036 = 0.5;
        double r107037 = pow(r107030, r107027);
        double r107038 = pow(r107034, r107027);
        double r107039 = r107037 / r107038;
        double r107040 = r107034 * r107030;
        double r107041 = fma(r107036, r107039, r107040);
        double r107042 = b;
        double r107043 = r107041 + r107042;
        double r107044 = r107035 - r107043;
        double r107045 = a;
        double r107046 = r107044 * r107045;
        double r107047 = fma(r107029, r107033, r107046);
        double r107048 = pow(r107028, r107047);
        double r107049 = pow(r107048, r107036);
        double r107050 = r107026 * r107049;
        return r107050;
}

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

    \[\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 add-sqr-sqrt0.5

    \[\leadsto x \cdot \color{blue}{\left(\sqrt{e^{y \cdot \left(\log z - t\right) + a \cdot \left(\left(\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)\right) - b\right)}} \cdot \sqrt{e^{y \cdot \left(\log z - t\right) + 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 pow10.5

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

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

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

    \[\leadsto x \cdot \left(\color{blue}{{\left(e^{y \cdot \left(\log z - t\right) + a \cdot \left(\left(\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)\right) - b\right)}\right)}^{\left(\frac{1}{2}\right)}} \cdot {\left(e^{y \cdot \left(\log z - t\right) + a \cdot \left(\left(\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)\right) - b\right)}\right)}^{\left(\frac{1}{2}\right)}\right)\]
  10. Applied pow-prod-down0.5

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

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

    \[\leadsto x \cdot {\left(e^{\color{blue}{\log \left(e^{2}\right)} \cdot \mathsf{fma}\left(y, \log z - t, \left(\log 1 - \left(\mathsf{fma}\left(\frac{1}{2}, \frac{{z}^{2}}{{1}^{2}}, 1 \cdot z\right) + b\right)\right) \cdot a\right)}\right)}^{\left(\frac{1}{2}\right)}\]
  14. Applied exp-to-pow0.3

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

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

Reproduce

herbie shell --seed 2020036 +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))))))