Average Error: 2.0 → 1.3
Time: 19.8s
Precision: 64
\[\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\]
\[\frac{x}{\frac{y}{\frac{{\left(\frac{1}{a}\right)}^{1}}{e^{\mathsf{fma}\left(y, \log \left(\frac{1}{z}\right), \mathsf{fma}\left(\log \left(\frac{1}{a}\right), t, b\right)\right)}}}}\]
\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}
\frac{x}{\frac{y}{\frac{{\left(\frac{1}{a}\right)}^{1}}{e^{\mathsf{fma}\left(y, \log \left(\frac{1}{z}\right), \mathsf{fma}\left(\log \left(\frac{1}{a}\right), t, b\right)\right)}}}}
double f(double x, double y, double z, double t, double a, double b) {
        double r116985 = x;
        double r116986 = y;
        double r116987 = z;
        double r116988 = log(r116987);
        double r116989 = r116986 * r116988;
        double r116990 = t;
        double r116991 = 1.0;
        double r116992 = r116990 - r116991;
        double r116993 = a;
        double r116994 = log(r116993);
        double r116995 = r116992 * r116994;
        double r116996 = r116989 + r116995;
        double r116997 = b;
        double r116998 = r116996 - r116997;
        double r116999 = exp(r116998);
        double r117000 = r116985 * r116999;
        double r117001 = r117000 / r116986;
        return r117001;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r117002 = x;
        double r117003 = y;
        double r117004 = 1.0;
        double r117005 = a;
        double r117006 = r117004 / r117005;
        double r117007 = 1.0;
        double r117008 = pow(r117006, r117007);
        double r117009 = z;
        double r117010 = r117004 / r117009;
        double r117011 = log(r117010);
        double r117012 = log(r117006);
        double r117013 = t;
        double r117014 = b;
        double r117015 = fma(r117012, r117013, r117014);
        double r117016 = fma(r117003, r117011, r117015);
        double r117017 = exp(r117016);
        double r117018 = r117008 / r117017;
        double r117019 = r117003 / r117018;
        double r117020 = r117002 / r117019;
        return r117020;
}

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(y \cdot \log \left(\frac{1}{z}\right) + \left(\log \left(\frac{1}{a}\right) \cdot t + b\right)\right)}}}{y}\]
  3. Simplified1.3

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

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

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

Reproduce

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