Average Error: 2.0 → 0.5
Time: 32.6s
Precision: 64
\[x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}\]
\[x \cdot \left({e}^{\left(\frac{y \cdot \left(\log z - t\right) + a \cdot \left(\left(\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)\right) - b\right)}{2}\right)} \cdot {e}^{\left(\frac{y \cdot \left(\log z - t\right) + a \cdot \left(\left(\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)\right) - b\right)}{2}\right)}\right)\]
x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}
x \cdot \left({e}^{\left(\frac{y \cdot \left(\log z - t\right) + a \cdot \left(\left(\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)\right) - b\right)}{2}\right)} \cdot {e}^{\left(\frac{y \cdot \left(\log z - t\right) + a \cdot \left(\left(\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)\right) - b\right)}{2}\right)}\right)
double f(double x, double y, double z, double t, double a, double b) {
        double r96145 = x;
        double r96146 = y;
        double r96147 = z;
        double r96148 = log(r96147);
        double r96149 = t;
        double r96150 = r96148 - r96149;
        double r96151 = r96146 * r96150;
        double r96152 = a;
        double r96153 = 1.0;
        double r96154 = r96153 - r96147;
        double r96155 = log(r96154);
        double r96156 = b;
        double r96157 = r96155 - r96156;
        double r96158 = r96152 * r96157;
        double r96159 = r96151 + r96158;
        double r96160 = exp(r96159);
        double r96161 = r96145 * r96160;
        return r96161;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r96162 = x;
        double r96163 = exp(1.0);
        double r96164 = y;
        double r96165 = z;
        double r96166 = log(r96165);
        double r96167 = t;
        double r96168 = r96166 - r96167;
        double r96169 = r96164 * r96168;
        double r96170 = a;
        double r96171 = 1.0;
        double r96172 = log(r96171);
        double r96173 = 0.5;
        double r96174 = 2.0;
        double r96175 = pow(r96165, r96174);
        double r96176 = pow(r96171, r96174);
        double r96177 = r96175 / r96176;
        double r96178 = r96173 * r96177;
        double r96179 = r96171 * r96165;
        double r96180 = r96178 + r96179;
        double r96181 = r96172 - r96180;
        double r96182 = b;
        double r96183 = r96181 - r96182;
        double r96184 = r96170 * r96183;
        double r96185 = r96169 + r96184;
        double r96186 = r96185 / r96174;
        double r96187 = pow(r96163, r96186);
        double r96188 = r96187 * r96187;
        double r96189 = r96162 * r96188;
        return r96189;
}

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 2.0

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

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

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

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

    \[\leadsto x \cdot {\color{blue}{e}}^{\left(y \cdot \left(\log z - t\right) + a \cdot \left(\left(\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)\right) - b\right)\right)}\]
  7. Using strategy rm
  8. Applied sqr-pow0.5

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

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

Reproduce

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