Average Error: 1.9 → 2.6
Time: 38.9s
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}\;t \le 7.683339156886951568489082663084525135709 \cdot 10^{-177} \lor \neg \left(t \le 3.541246463368194008742434730785011242134 \cdot 10^{-75}\right):\\ \;\;\;\;\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\\ \mathbf{else}:\\ \;\;\;\;\left({\left(\frac{1}{{a}^{1}}\right)}^{1} \cdot \frac{x}{y}\right) \cdot e^{\log \left({a}^{t} \cdot {z}^{y}\right) - b}\\ \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}\;t \le 7.683339156886951568489082663084525135709 \cdot 10^{-177} \lor \neg \left(t \le 3.541246463368194008742434730785011242134 \cdot 10^{-75}\right):\\
\;\;\;\;\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\\

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

\end{array}
double f(double x, double y, double z, double t, double a, double b) {
        double r79026 = x;
        double r79027 = y;
        double r79028 = z;
        double r79029 = log(r79028);
        double r79030 = r79027 * r79029;
        double r79031 = t;
        double r79032 = 1.0;
        double r79033 = r79031 - r79032;
        double r79034 = a;
        double r79035 = log(r79034);
        double r79036 = r79033 * r79035;
        double r79037 = r79030 + r79036;
        double r79038 = b;
        double r79039 = r79037 - r79038;
        double r79040 = exp(r79039);
        double r79041 = r79026 * r79040;
        double r79042 = r79041 / r79027;
        return r79042;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r79043 = t;
        double r79044 = 7.683339156886952e-177;
        bool r79045 = r79043 <= r79044;
        double r79046 = 3.541246463368194e-75;
        bool r79047 = r79043 <= r79046;
        double r79048 = !r79047;
        bool r79049 = r79045 || r79048;
        double r79050 = x;
        double r79051 = y;
        double r79052 = z;
        double r79053 = log(r79052);
        double r79054 = r79051 * r79053;
        double r79055 = 1.0;
        double r79056 = r79043 - r79055;
        double r79057 = a;
        double r79058 = log(r79057);
        double r79059 = r79056 * r79058;
        double r79060 = r79054 + r79059;
        double r79061 = b;
        double r79062 = r79060 - r79061;
        double r79063 = exp(r79062);
        double r79064 = r79050 * r79063;
        double r79065 = r79064 / r79051;
        double r79066 = 1.0;
        double r79067 = pow(r79057, r79055);
        double r79068 = r79066 / r79067;
        double r79069 = pow(r79068, r79055);
        double r79070 = r79050 / r79051;
        double r79071 = r79069 * r79070;
        double r79072 = pow(r79057, r79043);
        double r79073 = pow(r79052, r79051);
        double r79074 = r79072 * r79073;
        double r79075 = log(r79074);
        double r79076 = r79075 - r79061;
        double r79077 = exp(r79076);
        double r79078 = r79071 * r79077;
        double r79079 = r79049 ? r79065 : r79078;
        return r79079;
}

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 < 7.683339156886952e-177 or 3.541246463368194e-75 < t

    1. Initial program 1.7

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

    if 7.683339156886952e-177 < t < 3.541246463368194e-75

    1. Initial program 3.8

      \[\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\]
    2. Using strategy rm
    3. Applied associate-/l*3.6

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

      \[\leadsto \frac{x}{\color{blue}{\frac{y \cdot e^{b}}{{a}^{\left(t - 1\right)} \cdot {z}^{y}}}}\]
    5. Using strategy rm
    6. Applied pow-sub8.8

      \[\leadsto \frac{x}{\frac{y \cdot e^{b}}{\color{blue}{\frac{{a}^{t}}{{a}^{1}}} \cdot {z}^{y}}}\]
    7. Applied associate-*l/8.7

      \[\leadsto \frac{x}{\frac{y \cdot e^{b}}{\color{blue}{\frac{{a}^{t} \cdot {z}^{y}}{{a}^{1}}}}}\]
    8. Applied associate-/r/8.7

      \[\leadsto \frac{x}{\color{blue}{\frac{y \cdot e^{b}}{{a}^{t} \cdot {z}^{y}} \cdot {a}^{1}}}\]
    9. Taylor expanded around inf 8.8

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

      \[\leadsto \color{blue}{{\left(\frac{1}{{a}^{1}}\right)}^{1} \cdot \left(\frac{x}{y} \cdot e^{\left(-\left(-\log \left({a}^{t} \cdot {z}^{y}\right)\right)\right) - b}\right)}\]
    11. Using strategy rm
    12. Applied associate-*r*12.0

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

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

Reproduce

herbie shell --seed 2019304 
(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))