Average Error: 1.9 → 2.0
Time: 17.7s
Precision: 64
\[\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\]
\[\frac{x}{\frac{y}{e^{\left(-\log a\right) \cdot \left(1 - t\right) - \left(b - y \cdot \log z\right)}}}\]
\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}
\frac{x}{\frac{y}{e^{\left(-\log a\right) \cdot \left(1 - t\right) - \left(b - y \cdot \log z\right)}}}
double f(double x, double y, double z, double t, double a, double b) {
        double r105604 = x;
        double r105605 = y;
        double r105606 = z;
        double r105607 = log(r105606);
        double r105608 = r105605 * r105607;
        double r105609 = t;
        double r105610 = 1.0;
        double r105611 = r105609 - r105610;
        double r105612 = a;
        double r105613 = log(r105612);
        double r105614 = r105611 * r105613;
        double r105615 = r105608 + r105614;
        double r105616 = b;
        double r105617 = r105615 - r105616;
        double r105618 = exp(r105617);
        double r105619 = r105604 * r105618;
        double r105620 = r105619 / r105605;
        return r105620;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r105621 = x;
        double r105622 = y;
        double r105623 = a;
        double r105624 = log(r105623);
        double r105625 = -r105624;
        double r105626 = 1.0;
        double r105627 = t;
        double r105628 = r105626 - r105627;
        double r105629 = r105625 * r105628;
        double r105630 = b;
        double r105631 = z;
        double r105632 = log(r105631);
        double r105633 = r105622 * r105632;
        double r105634 = r105630 - r105633;
        double r105635 = r105629 - r105634;
        double r105636 = exp(r105635);
        double r105637 = r105622 / r105636;
        double r105638 = r105621 / r105637;
        return r105638;
}

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. Initial program 1.9

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

    \[\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. Simplified2.0

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

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

Reproduce

herbie shell --seed 2020042 +o rules:numerics
(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))