Average Error: 1.9 → 23.3
Time: 20.2s
Precision: 64
\[\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\]
\[\frac{\frac{x}{y}}{\frac{{\left(\frac{1}{a}\right)}^{t}}{{z}^{y}}} \cdot \frac{{\left(\frac{1}{a}\right)}^{1}}{e^{b}}\]
\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}
\frac{\frac{x}{y}}{\frac{{\left(\frac{1}{a}\right)}^{t}}{{z}^{y}}} \cdot \frac{{\left(\frac{1}{a}\right)}^{1}}{e^{b}}
double f(double x, double y, double z, double t, double a, double b) {
        double r520085 = x;
        double r520086 = y;
        double r520087 = z;
        double r520088 = log(r520087);
        double r520089 = r520086 * r520088;
        double r520090 = t;
        double r520091 = 1.0;
        double r520092 = r520090 - r520091;
        double r520093 = a;
        double r520094 = log(r520093);
        double r520095 = r520092 * r520094;
        double r520096 = r520089 + r520095;
        double r520097 = b;
        double r520098 = r520096 - r520097;
        double r520099 = exp(r520098);
        double r520100 = r520085 * r520099;
        double r520101 = r520100 / r520086;
        return r520101;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r520102 = x;
        double r520103 = y;
        double r520104 = r520102 / r520103;
        double r520105 = 1.0;
        double r520106 = a;
        double r520107 = r520105 / r520106;
        double r520108 = t;
        double r520109 = pow(r520107, r520108);
        double r520110 = z;
        double r520111 = pow(r520110, r520103);
        double r520112 = r520109 / r520111;
        double r520113 = r520104 / r520112;
        double r520114 = 1.0;
        double r520115 = pow(r520107, r520114);
        double r520116 = b;
        double r520117 = exp(r520116);
        double r520118 = r520115 / r520117;
        double r520119 = r520113 * r520118;
        return r520119;
}

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.0
Herbie23.3
\[\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. Using strategy rm
  3. Applied *-un-lft-identity1.9

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

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

    \[\leadsto \frac{x \cdot {\color{blue}{e}}^{\left(\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b\right)}}{y}\]
  6. Taylor expanded around inf 1.9

    \[\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}\]
  7. Simplified1.2

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

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

Reproduce

herbie shell --seed 1978988140 
(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.88458485041274715) (/ (* x (/ (pow a (- t 1)) y)) (- (+ b 1) (* y (log z)))) (if (< t 852031.22883740731) (/ (* (/ 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))