Average Error: 1.9 → 2.0
Time: 1.2m
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}\;\left(t - 1\right) \cdot \log a \le -693.5771125449351757197291590273380279541 \lor \neg \left(\left(t - 1\right) \cdot \log a \le -115.603317971975243949600553605705499649\right):\\ \;\;\;\;\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\\ \mathbf{else}:\\ \;\;\;\;x \cdot \frac{\frac{\frac{{a}^{\left(-1\right)}}{{\left(\frac{1}{z}\right)}^{y}}}{e^{\left(-\log a\right) \cdot t + b}}}{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}\;\left(t - 1\right) \cdot \log a \le -693.5771125449351757197291590273380279541 \lor \neg \left(\left(t - 1\right) \cdot \log a \le -115.603317971975243949600553605705499649\right):\\
\;\;\;\;\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\\

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

\end{array}
double f(double x, double y, double z, double t, double a, double b) {
        double r163937 = x;
        double r163938 = y;
        double r163939 = z;
        double r163940 = log(r163939);
        double r163941 = r163938 * r163940;
        double r163942 = t;
        double r163943 = 1.0;
        double r163944 = r163942 - r163943;
        double r163945 = a;
        double r163946 = log(r163945);
        double r163947 = r163944 * r163946;
        double r163948 = r163941 + r163947;
        double r163949 = b;
        double r163950 = r163948 - r163949;
        double r163951 = exp(r163950);
        double r163952 = r163937 * r163951;
        double r163953 = r163952 / r163938;
        return r163953;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r163954 = t;
        double r163955 = 1.0;
        double r163956 = r163954 - r163955;
        double r163957 = a;
        double r163958 = log(r163957);
        double r163959 = r163956 * r163958;
        double r163960 = -693.5771125449352;
        bool r163961 = r163959 <= r163960;
        double r163962 = -115.60331797197524;
        bool r163963 = r163959 <= r163962;
        double r163964 = !r163963;
        bool r163965 = r163961 || r163964;
        double r163966 = x;
        double r163967 = y;
        double r163968 = z;
        double r163969 = log(r163968);
        double r163970 = r163967 * r163969;
        double r163971 = r163970 + r163959;
        double r163972 = b;
        double r163973 = r163971 - r163972;
        double r163974 = exp(r163973);
        double r163975 = r163966 * r163974;
        double r163976 = r163975 / r163967;
        double r163977 = -r163955;
        double r163978 = pow(r163957, r163977);
        double r163979 = 1.0;
        double r163980 = r163979 / r163968;
        double r163981 = pow(r163980, r163967);
        double r163982 = r163978 / r163981;
        double r163983 = -r163958;
        double r163984 = r163983 * r163954;
        double r163985 = r163984 + r163972;
        double r163986 = exp(r163985);
        double r163987 = r163982 / r163986;
        double r163988 = r163987 / r163967;
        double r163989 = r163966 * r163988;
        double r163990 = r163965 ? r163976 : r163989;
        return r163990;
}

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 (* (- t 1.0) (log a)) < -693.5771125449352 or -115.60331797197524 < (* (- t 1.0) (log a))

    1. Initial program 0.6

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

    if -693.5771125449352 < (* (- t 1.0) (log a)) < -115.60331797197524

    1. Initial program 6.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 6.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. Simplified10.6

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

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

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

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

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

Reproduce

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