Average Error: 4.0 → 2.8
Time: 7.0s
Precision: 64
\[\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\]
\[\frac{x}{x + y \cdot e^{2 \cdot \mathsf{fma}\left(z \cdot \sqrt{t + a}, \frac{1}{t}, -\left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\]
\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}
\frac{x}{x + y \cdot e^{2 \cdot \mathsf{fma}\left(z \cdot \sqrt{t + a}, \frac{1}{t}, -\left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}
double f(double x, double y, double z, double t, double a, double b, double c) {
        double r79796 = x;
        double r79797 = y;
        double r79798 = 2.0;
        double r79799 = z;
        double r79800 = t;
        double r79801 = a;
        double r79802 = r79800 + r79801;
        double r79803 = sqrt(r79802);
        double r79804 = r79799 * r79803;
        double r79805 = r79804 / r79800;
        double r79806 = b;
        double r79807 = c;
        double r79808 = r79806 - r79807;
        double r79809 = 5.0;
        double r79810 = 6.0;
        double r79811 = r79809 / r79810;
        double r79812 = r79801 + r79811;
        double r79813 = 3.0;
        double r79814 = r79800 * r79813;
        double r79815 = r79798 / r79814;
        double r79816 = r79812 - r79815;
        double r79817 = r79808 * r79816;
        double r79818 = r79805 - r79817;
        double r79819 = r79798 * r79818;
        double r79820 = exp(r79819);
        double r79821 = r79797 * r79820;
        double r79822 = r79796 + r79821;
        double r79823 = r79796 / r79822;
        return r79823;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r79824 = x;
        double r79825 = y;
        double r79826 = 2.0;
        double r79827 = z;
        double r79828 = t;
        double r79829 = a;
        double r79830 = r79828 + r79829;
        double r79831 = sqrt(r79830);
        double r79832 = r79827 * r79831;
        double r79833 = 1.0;
        double r79834 = r79833 / r79828;
        double r79835 = b;
        double r79836 = c;
        double r79837 = r79835 - r79836;
        double r79838 = 5.0;
        double r79839 = 6.0;
        double r79840 = r79838 / r79839;
        double r79841 = r79829 + r79840;
        double r79842 = 3.0;
        double r79843 = r79828 * r79842;
        double r79844 = r79826 / r79843;
        double r79845 = r79841 - r79844;
        double r79846 = r79837 * r79845;
        double r79847 = -r79846;
        double r79848 = fma(r79832, r79834, r79847);
        double r79849 = r79826 * r79848;
        double r79850 = exp(r79849);
        double r79851 = r79825 * r79850;
        double r79852 = r79824 + r79851;
        double r79853 = r79824 / r79852;
        return r79853;
}

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

Bits error versus c

Derivation

  1. Initial program 4.0

    \[\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\]
  2. Using strategy rm
  3. Applied div-inv4.0

    \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(\color{blue}{\left(z \cdot \sqrt{t + a}\right) \cdot \frac{1}{t}} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\]
  4. Applied fma-neg2.8

    \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \color{blue}{\mathsf{fma}\left(z \cdot \sqrt{t + a}, \frac{1}{t}, -\left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}}\]
  5. Final simplification2.8

    \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \mathsf{fma}\left(z \cdot \sqrt{t + a}, \frac{1}{t}, -\left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\]

Reproduce

herbie shell --seed 2020062 +o rules:numerics
(FPCore (x y z t a b c)
  :name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2"
  :precision binary64
  (/ x (+ x (* y (exp (* 2 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5 6)) (/ 2 (* t 3)))))))))))