Average Error: 3.6 → 1.7
Time: 29.9s
Precision: 64
\[\frac{x}{x + y \cdot e^{2.0 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{t \cdot 3.0}\right)\right)}}\]
\[\frac{x}{\mathsf{fma}\left(y, e^{2.0 \cdot \mathsf{fma}\left(\frac{5.0}{6.0} - \left(\frac{\frac{2.0}{t}}{3.0} - a\right), c - b, \left(\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \sqrt{a + t}\right) \cdot \frac{\sqrt[3]{z}}{t}\right)}, x\right)}\]
\frac{x}{x + y \cdot e^{2.0 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{t \cdot 3.0}\right)\right)}}
\frac{x}{\mathsf{fma}\left(y, e^{2.0 \cdot \mathsf{fma}\left(\frac{5.0}{6.0} - \left(\frac{\frac{2.0}{t}}{3.0} - a\right), c - b, \left(\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \sqrt{a + t}\right) \cdot \frac{\sqrt[3]{z}}{t}\right)}, x\right)}
double f(double x, double y, double z, double t, double a, double b, double c) {
        double r20514176 = x;
        double r20514177 = y;
        double r20514178 = 2.0;
        double r20514179 = z;
        double r20514180 = t;
        double r20514181 = a;
        double r20514182 = r20514180 + r20514181;
        double r20514183 = sqrt(r20514182);
        double r20514184 = r20514179 * r20514183;
        double r20514185 = r20514184 / r20514180;
        double r20514186 = b;
        double r20514187 = c;
        double r20514188 = r20514186 - r20514187;
        double r20514189 = 5.0;
        double r20514190 = 6.0;
        double r20514191 = r20514189 / r20514190;
        double r20514192 = r20514181 + r20514191;
        double r20514193 = 3.0;
        double r20514194 = r20514180 * r20514193;
        double r20514195 = r20514178 / r20514194;
        double r20514196 = r20514192 - r20514195;
        double r20514197 = r20514188 * r20514196;
        double r20514198 = r20514185 - r20514197;
        double r20514199 = r20514178 * r20514198;
        double r20514200 = exp(r20514199);
        double r20514201 = r20514177 * r20514200;
        double r20514202 = r20514176 + r20514201;
        double r20514203 = r20514176 / r20514202;
        return r20514203;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r20514204 = x;
        double r20514205 = y;
        double r20514206 = 2.0;
        double r20514207 = 5.0;
        double r20514208 = 6.0;
        double r20514209 = r20514207 / r20514208;
        double r20514210 = t;
        double r20514211 = r20514206 / r20514210;
        double r20514212 = 3.0;
        double r20514213 = r20514211 / r20514212;
        double r20514214 = a;
        double r20514215 = r20514213 - r20514214;
        double r20514216 = r20514209 - r20514215;
        double r20514217 = c;
        double r20514218 = b;
        double r20514219 = r20514217 - r20514218;
        double r20514220 = z;
        double r20514221 = cbrt(r20514220);
        double r20514222 = r20514221 * r20514221;
        double r20514223 = r20514214 + r20514210;
        double r20514224 = sqrt(r20514223);
        double r20514225 = r20514222 * r20514224;
        double r20514226 = r20514221 / r20514210;
        double r20514227 = r20514225 * r20514226;
        double r20514228 = fma(r20514216, r20514219, r20514227);
        double r20514229 = r20514206 * r20514228;
        double r20514230 = exp(r20514229);
        double r20514231 = fma(r20514205, r20514230, r20514204);
        double r20514232 = r20514204 / r20514231;
        return r20514232;
}

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.6
Target3.1
Herbie1.7
\[\begin{array}{l} \mathbf{if}\;t \lt -2.118326644891581 \cdot 10^{-50}:\\ \;\;\;\;\frac{x}{x + y \cdot e^{2.0 \cdot \left(\left(a \cdot c + 0.8333333333333334 \cdot c\right) - a \cdot b\right)}}\\ \mathbf{elif}\;t \lt 5.196588770651547 \cdot 10^{-123}:\\ \;\;\;\;\frac{x}{x + y \cdot e^{2.0 \cdot \frac{\left(z \cdot \sqrt{t + a}\right) \cdot \left(\left(3.0 \cdot t\right) \cdot \left(a - \frac{5.0}{6.0}\right)\right) - \left(\left(\frac{5.0}{6.0} + a\right) \cdot \left(3.0 \cdot t\right) - 2.0\right) \cdot \left(\left(a - \frac{5.0}{6.0}\right) \cdot \left(\left(b - c\right) \cdot t\right)\right)}{\left(\left(t \cdot t\right) \cdot 3.0\right) \cdot \left(a - \frac{5.0}{6.0}\right)}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{x + y \cdot e^{2.0 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{t \cdot 3.0}\right)\right)}}\\ \end{array}\]

Derivation

  1. Initial program 3.6

    \[\frac{x}{x + y \cdot e^{2.0 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{t \cdot 3.0}\right)\right)}}\]
  2. Simplified1.7

    \[\leadsto \color{blue}{\frac{x}{\mathsf{fma}\left(y, e^{2.0 \cdot \mathsf{fma}\left(\frac{5.0}{6.0} - \left(\frac{\frac{2.0}{t}}{3.0} - a\right), c - b, \sqrt{a + t} \cdot \frac{z}{t}\right)}, x\right)}}\]
  3. Using strategy rm
  4. Applied *-un-lft-identity1.7

    \[\leadsto \frac{x}{\mathsf{fma}\left(y, e^{2.0 \cdot \mathsf{fma}\left(\frac{5.0}{6.0} - \left(\frac{\frac{2.0}{t}}{3.0} - a\right), c - b, \sqrt{a + t} \cdot \frac{z}{\color{blue}{1 \cdot t}}\right)}, x\right)}\]
  5. Applied add-cube-cbrt1.7

    \[\leadsto \frac{x}{\mathsf{fma}\left(y, e^{2.0 \cdot \mathsf{fma}\left(\frac{5.0}{6.0} - \left(\frac{\frac{2.0}{t}}{3.0} - a\right), c - b, \sqrt{a + t} \cdot \frac{\color{blue}{\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \sqrt[3]{z}}}{1 \cdot t}\right)}, x\right)}\]
  6. Applied times-frac1.7

    \[\leadsto \frac{x}{\mathsf{fma}\left(y, e^{2.0 \cdot \mathsf{fma}\left(\frac{5.0}{6.0} - \left(\frac{\frac{2.0}{t}}{3.0} - a\right), c - b, \sqrt{a + t} \cdot \color{blue}{\left(\frac{\sqrt[3]{z} \cdot \sqrt[3]{z}}{1} \cdot \frac{\sqrt[3]{z}}{t}\right)}\right)}, x\right)}\]
  7. Applied associate-*r*1.7

    \[\leadsto \frac{x}{\mathsf{fma}\left(y, e^{2.0 \cdot \mathsf{fma}\left(\frac{5.0}{6.0} - \left(\frac{\frac{2.0}{t}}{3.0} - a\right), c - b, \color{blue}{\left(\sqrt{a + t} \cdot \frac{\sqrt[3]{z} \cdot \sqrt[3]{z}}{1}\right) \cdot \frac{\sqrt[3]{z}}{t}}\right)}, x\right)}\]
  8. Simplified1.7

    \[\leadsto \frac{x}{\mathsf{fma}\left(y, e^{2.0 \cdot \mathsf{fma}\left(\frac{5.0}{6.0} - \left(\frac{\frac{2.0}{t}}{3.0} - a\right), c - b, \color{blue}{\left(\sqrt{t + a} \cdot \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)\right)} \cdot \frac{\sqrt[3]{z}}{t}\right)}, x\right)}\]
  9. Final simplification1.7

    \[\leadsto \frac{x}{\mathsf{fma}\left(y, e^{2.0 \cdot \mathsf{fma}\left(\frac{5.0}{6.0} - \left(\frac{\frac{2.0}{t}}{3.0} - a\right), c - b, \left(\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \sqrt{a + t}\right) \cdot \frac{\sqrt[3]{z}}{t}\right)}, x\right)}\]

Reproduce

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

  :herbie-target
  (if (< t -2.118326644891581e-50) (/ x (+ x (* y (exp (* 2.0 (- (+ (* a c) (* 0.8333333333333334 c)) (* a b))))))) (if (< t 5.196588770651547e-123) (/ x (+ x (* y (exp (* 2.0 (/ (- (* (* z (sqrt (+ t a))) (* (* 3.0 t) (- a (/ 5.0 6.0)))) (* (- (* (+ (/ 5.0 6.0) a) (* 3.0 t)) 2.0) (* (- a (/ 5.0 6.0)) (* (- b c) t)))) (* (* (* t t) 3.0) (- a (/ 5.0 6.0))))))))) (/ x (+ x (* y (exp (* 2.0 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))))))))))

  (/ x (+ x (* y (exp (* 2.0 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))))))))))