Average Error: 1.9 → 1.4
Time: 16.2s
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}\;y \le -1.8083024609859045665823801975839258441 \cdot 10^{-147} \lor \neg \left(y \le 3.644923159639203359098206726180046552643 \cdot 10^{-51}\right):\\ \;\;\;\;\frac{x \cdot \frac{{\left(\frac{1}{a}\right)}^{1}}{e^{y \cdot \log \left(\frac{1}{z}\right) + \left(\log \left(\frac{1}{a}\right) \cdot t + b\right)}}}{y}\\ \mathbf{else}:\\ \;\;\;\;x \cdot \left(\frac{{\left(\frac{1}{a}\right)}^{1}}{e^{\log \left(\frac{1}{a}\right) \cdot t + b} \cdot {\left(\frac{1}{z}\right)}^{y}} \cdot \frac{1}{y}\right)\\ \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}\;y \le -1.8083024609859045665823801975839258441 \cdot 10^{-147} \lor \neg \left(y \le 3.644923159639203359098206726180046552643 \cdot 10^{-51}\right):\\
\;\;\;\;\frac{x \cdot \frac{{\left(\frac{1}{a}\right)}^{1}}{e^{y \cdot \log \left(\frac{1}{z}\right) + \left(\log \left(\frac{1}{a}\right) \cdot t + b\right)}}}{y}\\

\mathbf{else}:\\
\;\;\;\;x \cdot \left(\frac{{\left(\frac{1}{a}\right)}^{1}}{e^{\log \left(\frac{1}{a}\right) \cdot t + b} \cdot {\left(\frac{1}{z}\right)}^{y}} \cdot \frac{1}{y}\right)\\

\end{array}
double f(double x, double y, double z, double t, double a, double b) {
        double r460725 = x;
        double r460726 = y;
        double r460727 = z;
        double r460728 = log(r460727);
        double r460729 = r460726 * r460728;
        double r460730 = t;
        double r460731 = 1.0;
        double r460732 = r460730 - r460731;
        double r460733 = a;
        double r460734 = log(r460733);
        double r460735 = r460732 * r460734;
        double r460736 = r460729 + r460735;
        double r460737 = b;
        double r460738 = r460736 - r460737;
        double r460739 = exp(r460738);
        double r460740 = r460725 * r460739;
        double r460741 = r460740 / r460726;
        return r460741;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r460742 = y;
        double r460743 = -1.8083024609859046e-147;
        bool r460744 = r460742 <= r460743;
        double r460745 = 3.6449231596392034e-51;
        bool r460746 = r460742 <= r460745;
        double r460747 = !r460746;
        bool r460748 = r460744 || r460747;
        double r460749 = x;
        double r460750 = 1.0;
        double r460751 = a;
        double r460752 = r460750 / r460751;
        double r460753 = 1.0;
        double r460754 = pow(r460752, r460753);
        double r460755 = z;
        double r460756 = r460750 / r460755;
        double r460757 = log(r460756);
        double r460758 = r460742 * r460757;
        double r460759 = log(r460752);
        double r460760 = t;
        double r460761 = r460759 * r460760;
        double r460762 = b;
        double r460763 = r460761 + r460762;
        double r460764 = r460758 + r460763;
        double r460765 = exp(r460764);
        double r460766 = r460754 / r460765;
        double r460767 = r460749 * r460766;
        double r460768 = r460767 / r460742;
        double r460769 = exp(r460763);
        double r460770 = pow(r460756, r460742);
        double r460771 = r460769 * r460770;
        double r460772 = r460754 / r460771;
        double r460773 = r460750 / r460742;
        double r460774 = r460772 * r460773;
        double r460775 = r460749 * r460774;
        double r460776 = r460748 ? r460768 : r460775;
        return r460776;
}

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

Target

Original1.9
Target10.8
Herbie1.4
\[\begin{array}{l} \mathbf{if}\;t \lt -0.8845848504127471478852839936735108494759:\\ \;\;\;\;\frac{x \cdot \frac{{a}^{\left(t - 1\right)}}{y}}{\left(b + 1\right) - y \cdot \log z}\\ \mathbf{elif}\;t \lt 852031.228837407310493290424346923828125:\\ \;\;\;\;\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 2 regimes
  2. if y < -1.8083024609859046e-147 or 3.6449231596392034e-51 < y

    1. Initial program 0.7

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

      \[\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{{\left(\frac{1}{a}\right)}^{1}}{e^{y \cdot \log \left(\frac{1}{z}\right) + \left(\log \left(\frac{1}{a}\right) \cdot t + b\right)}}}}{y}\]

    if -1.8083024609859046e-147 < y < 3.6449231596392034e-51

    1. Initial program 4.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 4.1

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

      \[\leadsto \frac{x \cdot \color{blue}{\frac{{\left(\frac{1}{a}\right)}^{1}}{e^{y \cdot \log \left(\frac{1}{z}\right) + \left(\log \left(\frac{1}{a}\right) \cdot t + b\right)}}}}{y}\]
    4. Using strategy rm
    5. Applied *-un-lft-identity2.8

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

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

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

      \[\leadsto x \cdot \color{blue}{\frac{\frac{{\left(\frac{1}{a}\right)}^{1}}{e^{\log \left(\frac{1}{a}\right) \cdot t + b} \cdot {\left(\frac{1}{z}\right)}^{y}}}{y}}\]
    9. Using strategy rm
    10. Applied div-inv3.3

      \[\leadsto x \cdot \color{blue}{\left(\frac{{\left(\frac{1}{a}\right)}^{1}}{e^{\log \left(\frac{1}{a}\right) \cdot t + b} \cdot {\left(\frac{1}{z}\right)}^{y}} \cdot \frac{1}{y}\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification1.4

    \[\leadsto \begin{array}{l} \mathbf{if}\;y \le -1.8083024609859045665823801975839258441 \cdot 10^{-147} \lor \neg \left(y \le 3.644923159639203359098206726180046552643 \cdot 10^{-51}\right):\\ \;\;\;\;\frac{x \cdot \frac{{\left(\frac{1}{a}\right)}^{1}}{e^{y \cdot \log \left(\frac{1}{z}\right) + \left(\log \left(\frac{1}{a}\right) \cdot t + b\right)}}}{y}\\ \mathbf{else}:\\ \;\;\;\;x \cdot \left(\frac{{\left(\frac{1}{a}\right)}^{1}}{e^{\log \left(\frac{1}{a}\right) \cdot t + b} \cdot {\left(\frac{1}{z}\right)}^{y}} \cdot \frac{1}{y}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019354 
(FPCore (x y z t a b)
  :name "Numeric.SpecFunctions:incompleteBetaWorker from math-functions-0.1.5.2, A"
  :precision binary64

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

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