Average Error: 4.0 → 1.5
Time: 20.8s
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}{\mathsf{fma}\left(y, {\left(e^{2}\right)}^{\left(\mathsf{fma}\left(\frac{\frac{2}{3}}{t} - \left(a + \frac{5}{6}\right), b - c, \frac{z}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{\sqrt{t + a}}{\sqrt[3]{t}}\right)\right)}, x\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}{\mathsf{fma}\left(y, {\left(e^{2}\right)}^{\left(\mathsf{fma}\left(\frac{\frac{2}{3}}{t} - \left(a + \frac{5}{6}\right), b - c, \frac{z}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{\sqrt{t + a}}{\sqrt[3]{t}}\right)\right)}, x\right)}
double f(double x, double y, double z, double t, double a, double b, double c) {
        double r433390 = x;
        double r433391 = y;
        double r433392 = 2.0;
        double r433393 = z;
        double r433394 = t;
        double r433395 = a;
        double r433396 = r433394 + r433395;
        double r433397 = sqrt(r433396);
        double r433398 = r433393 * r433397;
        double r433399 = r433398 / r433394;
        double r433400 = b;
        double r433401 = c;
        double r433402 = r433400 - r433401;
        double r433403 = 5.0;
        double r433404 = 6.0;
        double r433405 = r433403 / r433404;
        double r433406 = r433395 + r433405;
        double r433407 = 3.0;
        double r433408 = r433394 * r433407;
        double r433409 = r433392 / r433408;
        double r433410 = r433406 - r433409;
        double r433411 = r433402 * r433410;
        double r433412 = r433399 - r433411;
        double r433413 = r433392 * r433412;
        double r433414 = exp(r433413);
        double r433415 = r433391 * r433414;
        double r433416 = r433390 + r433415;
        double r433417 = r433390 / r433416;
        return r433417;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r433418 = x;
        double r433419 = y;
        double r433420 = 2.0;
        double r433421 = exp(r433420);
        double r433422 = 3.0;
        double r433423 = r433420 / r433422;
        double r433424 = t;
        double r433425 = r433423 / r433424;
        double r433426 = a;
        double r433427 = 5.0;
        double r433428 = 6.0;
        double r433429 = r433427 / r433428;
        double r433430 = r433426 + r433429;
        double r433431 = r433425 - r433430;
        double r433432 = b;
        double r433433 = c;
        double r433434 = r433432 - r433433;
        double r433435 = z;
        double r433436 = cbrt(r433424);
        double r433437 = r433436 * r433436;
        double r433438 = r433435 / r433437;
        double r433439 = r433424 + r433426;
        double r433440 = sqrt(r433439);
        double r433441 = r433440 / r433436;
        double r433442 = r433438 * r433441;
        double r433443 = fma(r433431, r433434, r433442);
        double r433444 = pow(r433421, r433443);
        double r433445 = fma(r433419, r433444, r433418);
        double r433446 = r433418 / r433445;
        return r433446;
}

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

Original4.0
Target3.0
Herbie1.5
\[\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 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. Simplified2.7

    \[\leadsto \color{blue}{\frac{x}{\mathsf{fma}\left(y, {\left(e^{2}\right)}^{\left(\mathsf{fma}\left(\frac{\frac{2}{3}}{t} - \left(a + \frac{5}{6}\right), b - c, \frac{z \cdot \sqrt{t + a}}{t}\right)\right)}, x\right)}}\]
  3. Using strategy rm
  4. Applied add-cube-cbrt2.7

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

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

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

Reproduce

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