Average Error: 1.8 → 1.5
Time: 7.0m
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 -2.57110383934263432 \cdot 10^{-203} \lor \neg \left(y \le 0.139731382195094705\right):\\ \;\;\;\;\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\frac{{a}^{\left(-1\right)}}{{\left(\frac{1}{z}\right)}^{y}}}{e^{\left(-\log a\right) \cdot t + b}} \cdot \frac{1}{y}}{\frac{1}{x}}\\ \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 -2.57110383934263432 \cdot 10^{-203} \lor \neg \left(y \le 0.139731382195094705\right):\\
\;\;\;\;\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\\

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

\end{array}
double f(double x, double y, double z, double t, double a, double b) {
        double r963637 = x;
        double r963638 = y;
        double r963639 = z;
        double r963640 = log(r963639);
        double r963641 = r963638 * r963640;
        double r963642 = t;
        double r963643 = 1.0;
        double r963644 = r963642 - r963643;
        double r963645 = a;
        double r963646 = log(r963645);
        double r963647 = r963644 * r963646;
        double r963648 = r963641 + r963647;
        double r963649 = b;
        double r963650 = r963648 - r963649;
        double r963651 = exp(r963650);
        double r963652 = r963637 * r963651;
        double r963653 = r963652 / r963638;
        return r963653;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r963654 = y;
        double r963655 = -2.5711038393426343e-203;
        bool r963656 = r963654 <= r963655;
        double r963657 = 0.1397313821950947;
        bool r963658 = r963654 <= r963657;
        double r963659 = !r963658;
        bool r963660 = r963656 || r963659;
        double r963661 = x;
        double r963662 = z;
        double r963663 = log(r963662);
        double r963664 = r963654 * r963663;
        double r963665 = t;
        double r963666 = 1.0;
        double r963667 = r963665 - r963666;
        double r963668 = a;
        double r963669 = log(r963668);
        double r963670 = r963667 * r963669;
        double r963671 = r963664 + r963670;
        double r963672 = b;
        double r963673 = r963671 - r963672;
        double r963674 = exp(r963673);
        double r963675 = r963661 * r963674;
        double r963676 = r963675 / r963654;
        double r963677 = -r963666;
        double r963678 = pow(r963668, r963677);
        double r963679 = 1.0;
        double r963680 = r963679 / r963662;
        double r963681 = pow(r963680, r963654);
        double r963682 = r963678 / r963681;
        double r963683 = -r963669;
        double r963684 = r963683 * r963665;
        double r963685 = r963684 + r963672;
        double r963686 = exp(r963685);
        double r963687 = r963682 / r963686;
        double r963688 = r963679 / r963654;
        double r963689 = r963687 * r963688;
        double r963690 = r963679 / r963661;
        double r963691 = r963689 / r963690;
        double r963692 = r963660 ? r963676 : r963691;
        return r963692;
}

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. Split input into 2 regimes
  2. if y < -2.5711038393426343e-203 or 0.1397313821950947 < y

    1. Initial program 0.9

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

    if -2.5711038393426343e-203 < y < 0.1397313821950947

    1. Initial program 3.5

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

      \[\leadsto \color{blue}{\frac{x \cdot 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. Simplified14.1

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

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

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

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

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

Reproduce

herbie shell --seed 2019199 
(FPCore (x y z t a b)
  :name "Numeric.SpecFunctions:incompleteBetaWorker from math-functions-0.1.5.2"
  (/ (* x (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) y))