Average Error: 3.5 → 2.3
Time: 6.4s
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 \left(\mathsf{fma}\left(z \cdot \sqrt{t + a}, \frac{1}{t}, -\left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right) \cdot \left(b - c\right)\right) + \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right) \cdot \left(\left(-\left(b - c\right)\right) + \left(b - c\right)\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 \left(\mathsf{fma}\left(z \cdot \sqrt{t + a}, \frac{1}{t}, -\left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right) \cdot \left(b - c\right)\right) + \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right) \cdot \left(\left(-\left(b - c\right)\right) + \left(b - c\right)\right)\right)}}
double f(double x, double y, double z, double t, double a, double b, double c) {
        double r589873 = x;
        double r589874 = y;
        double r589875 = 2.0;
        double r589876 = z;
        double r589877 = t;
        double r589878 = a;
        double r589879 = r589877 + r589878;
        double r589880 = sqrt(r589879);
        double r589881 = r589876 * r589880;
        double r589882 = r589881 / r589877;
        double r589883 = b;
        double r589884 = c;
        double r589885 = r589883 - r589884;
        double r589886 = 5.0;
        double r589887 = 6.0;
        double r589888 = r589886 / r589887;
        double r589889 = r589878 + r589888;
        double r589890 = 3.0;
        double r589891 = r589877 * r589890;
        double r589892 = r589875 / r589891;
        double r589893 = r589889 - r589892;
        double r589894 = r589885 * r589893;
        double r589895 = r589882 - r589894;
        double r589896 = r589875 * r589895;
        double r589897 = exp(r589896);
        double r589898 = r589874 * r589897;
        double r589899 = r589873 + r589898;
        double r589900 = r589873 / r589899;
        return r589900;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r589901 = x;
        double r589902 = y;
        double r589903 = 2.0;
        double r589904 = z;
        double r589905 = t;
        double r589906 = a;
        double r589907 = r589905 + r589906;
        double r589908 = sqrt(r589907);
        double r589909 = r589904 * r589908;
        double r589910 = 1.0;
        double r589911 = r589910 / r589905;
        double r589912 = 5.0;
        double r589913 = 6.0;
        double r589914 = r589912 / r589913;
        double r589915 = r589906 + r589914;
        double r589916 = 3.0;
        double r589917 = r589905 * r589916;
        double r589918 = r589903 / r589917;
        double r589919 = r589915 - r589918;
        double r589920 = b;
        double r589921 = c;
        double r589922 = r589920 - r589921;
        double r589923 = r589919 * r589922;
        double r589924 = -r589923;
        double r589925 = fma(r589909, r589911, r589924);
        double r589926 = -r589922;
        double r589927 = r589926 + r589922;
        double r589928 = r589919 * r589927;
        double r589929 = r589925 + r589928;
        double r589930 = r589903 * r589929;
        double r589931 = exp(r589930);
        double r589932 = r589902 * r589931;
        double r589933 = r589901 + r589932;
        double r589934 = r589901 / r589933;
        return r589934;
}

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

Target

Original3.5
Target2.9
Herbie2.3
\[\begin{array}{l} \mathbf{if}\;t \lt -2.1183266448915811 \cdot 10^{-50}:\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(\left(a \cdot c + 0.83333333333333337 \cdot c\right) - a \cdot b\right)}}\\ \mathbf{elif}\;t \lt 5.19658877065154709 \cdot 10^{-123}:\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \frac{\left(z \cdot \sqrt{t + a}\right) \cdot \left(\left(3 \cdot t\right) \cdot \left(a - \frac{5}{6}\right)\right) - \left(\left(\frac{5}{6} + a\right) \cdot \left(3 \cdot t\right) - 2\right) \cdot \left(\left(a - \frac{5}{6}\right) \cdot \left(\left(b - c\right) \cdot t\right)\right)}{\left(\left(t \cdot t\right) \cdot 3\right) \cdot \left(a - \frac{5}{6}\right)}}}\\ \mathbf{else}:\\ \;\;\;\;\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)}}\\ \end{array}\]

Derivation

  1. Initial program 3.5

    \[\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-inv3.5

    \[\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 prod-diff22.2

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

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

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

Reproduce

herbie shell --seed 2020025 +o rules:numerics
(FPCore (x y z t a b c)
  :name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2, I"
  :precision binary64

  :herbie-target
  (if (< t -2.118326644891581e-50) (/ x (+ x (* y (exp (* 2 (- (+ (* a c) (* 0.8333333333333334 c)) (* a b))))))) (if (< t 5.196588770651547e-123) (/ x (+ x (* y (exp (* 2 (/ (- (* (* z (sqrt (+ t a))) (* (* 3 t) (- a (/ 5 6)))) (* (- (* (+ (/ 5 6) a) (* 3 t)) 2) (* (- a (/ 5 6)) (* (- b c) t)))) (* (* (* t t) 3) (- a (/ 5 6))))))))) (/ x (+ x (* y (exp (* 2 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5 6)) (/ 2 (* t 3))))))))))))

  (/ x (+ x (* y (exp (* 2 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5 6)) (/ 2 (* t 3)))))))))))