Average Error: 1.7 → 0.4
Time: 12.1s
Precision: 64
\[x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}\]
\[x \cdot {e}^{\left(y \cdot \left(\log z - t\right) + \left(a \cdot \log 1 - \left(a \cdot b + 1 \cdot \left(a \cdot z\right)\right)\right)\right)}\]
x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}
x \cdot {e}^{\left(y \cdot \left(\log z - t\right) + \left(a \cdot \log 1 - \left(a \cdot b + 1 \cdot \left(a \cdot z\right)\right)\right)\right)}
double f(double x, double y, double z, double t, double a, double b) {
        double r91087 = x;
        double r91088 = y;
        double r91089 = z;
        double r91090 = log(r91089);
        double r91091 = t;
        double r91092 = r91090 - r91091;
        double r91093 = r91088 * r91092;
        double r91094 = a;
        double r91095 = 1.0;
        double r91096 = r91095 - r91089;
        double r91097 = log(r91096);
        double r91098 = b;
        double r91099 = r91097 - r91098;
        double r91100 = r91094 * r91099;
        double r91101 = r91093 + r91100;
        double r91102 = exp(r91101);
        double r91103 = r91087 * r91102;
        return r91103;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r91104 = x;
        double r91105 = exp(1.0);
        double r91106 = y;
        double r91107 = z;
        double r91108 = log(r91107);
        double r91109 = t;
        double r91110 = r91108 - r91109;
        double r91111 = r91106 * r91110;
        double r91112 = a;
        double r91113 = 1.0;
        double r91114 = log(r91113);
        double r91115 = r91112 * r91114;
        double r91116 = b;
        double r91117 = r91112 * r91116;
        double r91118 = r91112 * r91107;
        double r91119 = r91113 * r91118;
        double r91120 = r91117 + r91119;
        double r91121 = r91115 - r91120;
        double r91122 = r91111 + r91121;
        double r91123 = pow(r91105, r91122);
        double r91124 = r91104 * r91123;
        return r91124;
}

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.7

    \[x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}\]
  2. Taylor expanded around 0 0.4

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

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

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

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

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

Reproduce

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