Average Error: 1.9 → 1.9
Time: 35.4s
Precision: 64
\[\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\]
\[\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\]
\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}
\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}
double f(double x, double y, double z, double t, double a, double b) {
        double r241676 = x;
        double r241677 = y;
        double r241678 = z;
        double r241679 = log(r241678);
        double r241680 = r241677 * r241679;
        double r241681 = t;
        double r241682 = 1.0;
        double r241683 = r241681 - r241682;
        double r241684 = a;
        double r241685 = log(r241684);
        double r241686 = r241683 * r241685;
        double r241687 = r241680 + r241686;
        double r241688 = b;
        double r241689 = r241687 - r241688;
        double r241690 = exp(r241689);
        double r241691 = r241676 * r241690;
        double r241692 = r241691 / r241677;
        return r241692;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r241693 = x;
        double r241694 = y;
        double r241695 = z;
        double r241696 = log(r241695);
        double r241697 = r241694 * r241696;
        double r241698 = t;
        double r241699 = 1.0;
        double r241700 = r241698 - r241699;
        double r241701 = a;
        double r241702 = log(r241701);
        double r241703 = r241700 * r241702;
        double r241704 = r241697 + r241703;
        double r241705 = b;
        double r241706 = r241704 - r241705;
        double r241707 = exp(r241706);
        double r241708 = r241693 * r241707;
        double r241709 = r241708 / r241694;
        return r241709;
}

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
Target11.3
Herbie1.9
\[\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. Initial program 1.9

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

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

Reproduce

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