Average Error: 1.8 → 1.2
Time: 15.8s
Precision: 64
\[\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\]
\[\left(x \cdot \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)}}\right) \cdot \frac{1}{y}\]
\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}
\left(x \cdot \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)}}\right) \cdot \frac{1}{y}
double f(double x, double y, double z, double t, double a, double b) {
        double r89788 = x;
        double r89789 = y;
        double r89790 = z;
        double r89791 = log(r89790);
        double r89792 = r89789 * r89791;
        double r89793 = t;
        double r89794 = 1.0;
        double r89795 = r89793 - r89794;
        double r89796 = a;
        double r89797 = log(r89796);
        double r89798 = r89795 * r89797;
        double r89799 = r89792 + r89798;
        double r89800 = b;
        double r89801 = r89799 - r89800;
        double r89802 = exp(r89801);
        double r89803 = r89788 * r89802;
        double r89804 = r89803 / r89789;
        return r89804;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r89805 = x;
        double r89806 = 1.0;
        double r89807 = a;
        double r89808 = r89806 / r89807;
        double r89809 = 1.0;
        double r89810 = pow(r89808, r89809);
        double r89811 = y;
        double r89812 = z;
        double r89813 = r89806 / r89812;
        double r89814 = log(r89813);
        double r89815 = log(r89808);
        double r89816 = t;
        double r89817 = b;
        double r89818 = fma(r89815, r89816, r89817);
        double r89819 = fma(r89811, r89814, r89818);
        double r89820 = exp(r89819);
        double r89821 = r89810 / r89820;
        double r89822 = r89805 * r89821;
        double r89823 = r89806 / r89811;
        double r89824 = r89822 * r89823;
        return r89824;
}

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

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

    \[\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 div-inv1.2

    \[\leadsto \color{blue}{\left(x \cdot \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)}}\right) \cdot \frac{1}{y}}\]
  6. Final simplification1.2

    \[\leadsto \left(x \cdot \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)}}\right) \cdot \frac{1}{y}\]

Reproduce

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