Average Error: 1.9 → 0.6
Time: 33.5s
Precision: 64
\[\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\]
\[\begin{array}{l} \mathbf{if}\;x \le -3.87699396231292923 \cdot 10^{-107}:\\ \;\;\;\;\frac{x \cdot \frac{{a}^{\left(-1\right)}}{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-t, \log a, b\right)\right)}}}{y}\\ \mathbf{elif}\;x \le 5.6413362742687982 \cdot 10^{-108}:\\ \;\;\;\;\frac{x}{\sqrt[3]{y} \cdot \sqrt[3]{y}} \cdot \frac{\frac{{a}^{\left(-1\right)}}{e^{b - \mathsf{fma}\left(\log z, y, \log a \cdot t\right)}}}{\sqrt[3]{y}}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{x}{\sqrt{e^{b - \mathsf{fma}\left(\log z, y, \log a \cdot t\right)}}} \cdot \frac{{a}^{\left(-1\right)}}{\sqrt{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-t, \log a, b\right)\right)}}}\right) \cdot \frac{1}{y}\\ \end{array}\]
\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}
\begin{array}{l}
\mathbf{if}\;x \le -3.87699396231292923 \cdot 10^{-107}:\\
\;\;\;\;\frac{x \cdot \frac{{a}^{\left(-1\right)}}{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-t, \log a, b\right)\right)}}}{y}\\

\mathbf{elif}\;x \le 5.6413362742687982 \cdot 10^{-108}:\\
\;\;\;\;\frac{x}{\sqrt[3]{y} \cdot \sqrt[3]{y}} \cdot \frac{\frac{{a}^{\left(-1\right)}}{e^{b - \mathsf{fma}\left(\log z, y, \log a \cdot t\right)}}}{\sqrt[3]{y}}\\

\mathbf{else}:\\
\;\;\;\;\left(\frac{x}{\sqrt{e^{b - \mathsf{fma}\left(\log z, y, \log a \cdot t\right)}}} \cdot \frac{{a}^{\left(-1\right)}}{\sqrt{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-t, \log a, b\right)\right)}}}\right) \cdot \frac{1}{y}\\

\end{array}
double f(double x, double y, double z, double t, double a, double b) {
        double r319675 = x;
        double r319676 = y;
        double r319677 = z;
        double r319678 = log(r319677);
        double r319679 = r319676 * r319678;
        double r319680 = t;
        double r319681 = 1.0;
        double r319682 = r319680 - r319681;
        double r319683 = a;
        double r319684 = log(r319683);
        double r319685 = r319682 * r319684;
        double r319686 = r319679 + r319685;
        double r319687 = b;
        double r319688 = r319686 - r319687;
        double r319689 = exp(r319688);
        double r319690 = r319675 * r319689;
        double r319691 = r319690 / r319676;
        return r319691;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r319692 = x;
        double r319693 = -3.876993962312929e-107;
        bool r319694 = r319692 <= r319693;
        double r319695 = a;
        double r319696 = 1.0;
        double r319697 = -r319696;
        double r319698 = pow(r319695, r319697);
        double r319699 = y;
        double r319700 = z;
        double r319701 = log(r319700);
        double r319702 = -r319701;
        double r319703 = t;
        double r319704 = -r319703;
        double r319705 = log(r319695);
        double r319706 = b;
        double r319707 = fma(r319704, r319705, r319706);
        double r319708 = fma(r319699, r319702, r319707);
        double r319709 = exp(r319708);
        double r319710 = r319698 / r319709;
        double r319711 = r319692 * r319710;
        double r319712 = r319711 / r319699;
        double r319713 = 5.641336274268798e-108;
        bool r319714 = r319692 <= r319713;
        double r319715 = cbrt(r319699);
        double r319716 = r319715 * r319715;
        double r319717 = r319692 / r319716;
        double r319718 = r319705 * r319703;
        double r319719 = fma(r319701, r319699, r319718);
        double r319720 = r319706 - r319719;
        double r319721 = exp(r319720);
        double r319722 = r319698 / r319721;
        double r319723 = r319722 / r319715;
        double r319724 = r319717 * r319723;
        double r319725 = sqrt(r319721);
        double r319726 = r319692 / r319725;
        double r319727 = sqrt(r319709);
        double r319728 = r319698 / r319727;
        double r319729 = r319726 * r319728;
        double r319730 = 1.0;
        double r319731 = r319730 / r319699;
        double r319732 = r319729 * r319731;
        double r319733 = r319714 ? r319724 : r319732;
        double r319734 = r319694 ? r319712 : r319733;
        return r319734;
}

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

Target

Original1.9
Target11.1
Herbie0.6
\[\begin{array}{l} \mathbf{if}\;t \lt -0.88458485041274715:\\ \;\;\;\;\frac{x \cdot \frac{{a}^{\left(t - 1\right)}}{y}}{\left(b + 1\right) - y \cdot \log z}\\ \mathbf{elif}\;t \lt 852031.22883740731:\\ \;\;\;\;\frac{\frac{x}{y} \cdot {a}^{\left(t - 1\right)}}{e^{b - \log z \cdot y}}\\ \mathbf{else}:\\ \;\;\;\;\frac{x \cdot \frac{{a}^{\left(t - 1\right)}}{y}}{\left(b + 1\right) - y \cdot \log z}\\ \end{array}\]

Derivation

  1. Split input into 3 regimes
  2. if x < -3.876993962312929e-107

    1. Initial program 1.0

      \[\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\]
    2. Taylor expanded around inf 1.0

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

      \[\leadsto \frac{x \cdot \color{blue}{\frac{{a}^{\left(-1\right)}}{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-\log a, t, b\right)\right)}}}}{y}\]
    4. Taylor expanded around 0 0.3

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

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

    if -3.876993962312929e-107 < x < 5.641336274268798e-108

    1. Initial program 3.3

      \[\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\]
    2. Taylor expanded around inf 3.3

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

      \[\leadsto \frac{x \cdot \color{blue}{\frac{{a}^{\left(-1\right)}}{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-\log a, t, b\right)\right)}}}}{y}\]
    4. Taylor expanded around 0 2.6

      \[\leadsto \frac{x \cdot \frac{{a}^{\left(-1\right)}}{e^{\mathsf{fma}\left(y, -\log z, \color{blue}{b - \log a \cdot t}\right)}}}{y}\]
    5. Simplified2.6

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

      \[\leadsto \frac{x \cdot \frac{{a}^{\left(-1\right)}}{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-t, \log a, b\right)\right)}}}{\color{blue}{\left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{y}}}\]
    8. Applied times-frac1.1

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

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

    if 5.641336274268798e-108 < x

    1. Initial program 1.1

      \[\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\]
    2. Taylor expanded around inf 1.2

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

      \[\leadsto \frac{x \cdot \color{blue}{\frac{{a}^{\left(-1\right)}}{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-\log a, t, b\right)\right)}}}}{y}\]
    4. Taylor expanded around 0 0.3

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

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

      \[\leadsto \frac{x \cdot \frac{{a}^{\left(-1\right)}}{\color{blue}{\sqrt{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-t, \log a, b\right)\right)}} \cdot \sqrt{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-t, \log a, b\right)\right)}}}}}{y}\]
    8. Applied *-un-lft-identity0.3

      \[\leadsto \frac{x \cdot \frac{{\color{blue}{\left(1 \cdot a\right)}}^{\left(-1\right)}}{\sqrt{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-t, \log a, b\right)\right)}} \cdot \sqrt{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-t, \log a, b\right)\right)}}}}{y}\]
    9. Applied unpow-prod-down0.3

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

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

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

      \[\leadsto \frac{\color{blue}{\frac{x}{\sqrt{e^{b - \mathsf{fma}\left(\log z, y, \log a \cdot t\right)}}}} \cdot \frac{{a}^{\left(-1\right)}}{\sqrt{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-t, \log a, b\right)\right)}}}}{y}\]
    13. Using strategy rm
    14. Applied div-inv0.3

      \[\leadsto \color{blue}{\left(\frac{x}{\sqrt{e^{b - \mathsf{fma}\left(\log z, y, \log a \cdot t\right)}}} \cdot \frac{{a}^{\left(-1\right)}}{\sqrt{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-t, \log a, b\right)\right)}}}\right) \cdot \frac{1}{y}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification0.6

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -3.87699396231292923 \cdot 10^{-107}:\\ \;\;\;\;\frac{x \cdot \frac{{a}^{\left(-1\right)}}{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-t, \log a, b\right)\right)}}}{y}\\ \mathbf{elif}\;x \le 5.6413362742687982 \cdot 10^{-108}:\\ \;\;\;\;\frac{x}{\sqrt[3]{y} \cdot \sqrt[3]{y}} \cdot \frac{\frac{{a}^{\left(-1\right)}}{e^{b - \mathsf{fma}\left(\log z, y, \log a \cdot t\right)}}}{\sqrt[3]{y}}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{x}{\sqrt{e^{b - \mathsf{fma}\left(\log z, y, \log a \cdot t\right)}}} \cdot \frac{{a}^{\left(-1\right)}}{\sqrt{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(-t, \log a, b\right)\right)}}}\right) \cdot \frac{1}{y}\\ \end{array}\]

Reproduce

herbie shell --seed 2019198 +o rules:numerics
(FPCore (x y z t a b)
  :name "Numeric.SpecFunctions:incompleteBetaWorker from math-functions-0.1.5.2, A"

  :herbie-target
  (if (< t -0.8845848504127471) (/ (* x (/ (pow a (- t 1.0)) y)) (- (+ b 1.0) (* y (log z)))) (if (< t 852031.2288374073) (/ (* (/ x y) (pow a (- t 1.0))) (exp (- b (* (log z) y)))) (/ (* x (/ (pow a (- t 1.0)) y)) (- (+ b 1.0) (* y (log z))))))

  (/ (* x (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) y))