Average Error: 1.9 → 1.3
Time: 40.1s
Precision: 64
\[\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\]
\[\frac{\frac{1}{\frac{e^{\mathsf{fma}\left(-\log z, y, b - t \cdot \log a\right)}}{x} \cdot {a}^{1}}}{y}\]
\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}
\frac{\frac{1}{\frac{e^{\mathsf{fma}\left(-\log z, y, b - t \cdot \log a\right)}}{x} \cdot {a}^{1}}}{y}
double f(double x, double y, double z, double t, double a, double b) {
        double r110956 = x;
        double r110957 = y;
        double r110958 = z;
        double r110959 = log(r110958);
        double r110960 = r110957 * r110959;
        double r110961 = t;
        double r110962 = 1.0;
        double r110963 = r110961 - r110962;
        double r110964 = a;
        double r110965 = log(r110964);
        double r110966 = r110963 * r110965;
        double r110967 = r110960 + r110966;
        double r110968 = b;
        double r110969 = r110967 - r110968;
        double r110970 = exp(r110969);
        double r110971 = r110956 * r110970;
        double r110972 = r110971 / r110957;
        return r110972;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r110973 = 1.0;
        double r110974 = z;
        double r110975 = log(r110974);
        double r110976 = -r110975;
        double r110977 = y;
        double r110978 = b;
        double r110979 = t;
        double r110980 = a;
        double r110981 = log(r110980);
        double r110982 = r110979 * r110981;
        double r110983 = r110978 - r110982;
        double r110984 = fma(r110976, r110977, r110983);
        double r110985 = exp(r110984);
        double r110986 = x;
        double r110987 = r110985 / r110986;
        double r110988 = 1.0;
        double r110989 = pow(r110980, r110988);
        double r110990 = r110987 * r110989;
        double r110991 = r110973 / r110990;
        double r110992 = r110991 / r110977;
        return r110992;
}

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 1.9

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

    \[\leadsto \color{blue}{\frac{x \cdot 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. Simplified7.7

    \[\leadsto \color{blue}{\frac{\frac{x \cdot {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 pow-neg7.7

    \[\leadsto \frac{\frac{x \cdot \color{blue}{\frac{1}{{a}^{1}}}}{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(t, -\log a, b\right)\right)}}}{y}\]
  6. Applied un-div-inv7.7

    \[\leadsto \frac{\frac{\color{blue}{\frac{x}{{a}^{1}}}}{e^{\mathsf{fma}\left(y, -\log z, \mathsf{fma}\left(t, -\log a, b\right)\right)}}}{y}\]
  7. Using strategy rm
  8. Applied clear-num7.8

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

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

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

Reproduce

herbie shell --seed 2019195 +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))