Average Error: 2.0 → 1.3
Time: 40.9s
Precision: 64
\[\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\]
\[x \cdot \frac{\frac{{a}^{\left(-1\right)}}{e^{b - \mathsf{fma}\left(\log z, y, t \cdot \log a\right)}}}{y}\]
\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}
x \cdot \frac{\frac{{a}^{\left(-1\right)}}{e^{b - \mathsf{fma}\left(\log z, y, t \cdot \log a\right)}}}{y}
double f(double x, double y, double z, double t, double a, double b) {
        double r66523 = x;
        double r66524 = y;
        double r66525 = z;
        double r66526 = log(r66525);
        double r66527 = r66524 * r66526;
        double r66528 = t;
        double r66529 = 1.0;
        double r66530 = r66528 - r66529;
        double r66531 = a;
        double r66532 = log(r66531);
        double r66533 = r66530 * r66532;
        double r66534 = r66527 + r66533;
        double r66535 = b;
        double r66536 = r66534 - r66535;
        double r66537 = exp(r66536);
        double r66538 = r66523 * r66537;
        double r66539 = r66538 / r66524;
        return r66539;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r66540 = x;
        double r66541 = a;
        double r66542 = 1.0;
        double r66543 = -r66542;
        double r66544 = pow(r66541, r66543);
        double r66545 = b;
        double r66546 = z;
        double r66547 = log(r66546);
        double r66548 = y;
        double r66549 = t;
        double r66550 = log(r66541);
        double r66551 = r66549 * r66550;
        double r66552 = fma(r66547, r66548, r66551);
        double r66553 = r66545 - r66552;
        double r66554 = exp(r66553);
        double r66555 = r66544 / r66554;
        double r66556 = r66555 / r66548;
        double r66557 = r66540 * r66556;
        return r66557;
}

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

Derivation

  1. Initial program 2.0

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

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

    \[\leadsto \frac{x \cdot \color{blue}{\frac{{a}^{\left(-1\right)}}{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(t, -\log a, b\right)\right)}}}}{y}\]
  4. Using strategy rm
  5. Applied div-inv1.3

    \[\leadsto \color{blue}{\left(x \cdot \frac{{a}^{\left(-1\right)}}{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(t, -\log a, b\right)\right)}}\right) \cdot \frac{1}{y}}\]
  6. Using strategy rm
  7. Applied associate-*l*1.3

    \[\leadsto \color{blue}{x \cdot \left(\frac{{a}^{\left(-1\right)}}{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(t, -\log a, b\right)\right)}} \cdot \frac{1}{y}\right)}\]
  8. Simplified1.3

    \[\leadsto x \cdot \color{blue}{\frac{\frac{{a}^{\left(-1\right)}}{e^{b - \mathsf{fma}\left(\log z, y, t \cdot \log a\right)}}}{y}}\]
  9. Final simplification1.3

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

Reproduce

herbie shell --seed 2019174 +o rules:numerics
(FPCore (x y z t a b)
  :name "Numeric.SpecFunctions:incompleteBetaWorker from math-functions-0.1.5.2"
  (/ (* x (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) y))