Average Error: 4.1 → 2.9
Time: 24.5s
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)}}\]
\[\begin{array}{l} \mathbf{if}\;t \le -8.606619718217222145283218420286548947144 \cdot 10^{-16} \lor \neg \left(t \le -5.323635264924309396140940049972566276942 \cdot 10^{-286}\right):\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{\sqrt{t + a}}{\sqrt[3]{t}} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \frac{\left(z \cdot \sqrt{t + a}\right) \cdot \left(\left(a - \frac{5}{6}\right) \cdot \left(t \cdot 3\right)\right) - t \cdot \left(\left(b - c\right) \cdot \left(\left(a \cdot a - \frac{5}{6} \cdot \frac{5}{6}\right) \cdot \left(t \cdot 3\right) - \left(a - \frac{5}{6}\right) \cdot 2\right)\right)}{t \cdot \left(\left(a - \frac{5}{6}\right) \cdot \left(t \cdot 3\right)\right)}}}\\ \end{array}\]
\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)}}
\begin{array}{l}
\mathbf{if}\;t \le -8.606619718217222145283218420286548947144 \cdot 10^{-16} \lor \neg \left(t \le -5.323635264924309396140940049972566276942 \cdot 10^{-286}\right):\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{\sqrt{t + a}}{\sqrt[3]{t}} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\\

\mathbf{else}:\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \frac{\left(z \cdot \sqrt{t + a}\right) \cdot \left(\left(a - \frac{5}{6}\right) \cdot \left(t \cdot 3\right)\right) - t \cdot \left(\left(b - c\right) \cdot \left(\left(a \cdot a - \frac{5}{6} \cdot \frac{5}{6}\right) \cdot \left(t \cdot 3\right) - \left(a - \frac{5}{6}\right) \cdot 2\right)\right)}{t \cdot \left(\left(a - \frac{5}{6}\right) \cdot \left(t \cdot 3\right)\right)}}}\\

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c) {
        double r353554 = x;
        double r353555 = y;
        double r353556 = 2.0;
        double r353557 = z;
        double r353558 = t;
        double r353559 = a;
        double r353560 = r353558 + r353559;
        double r353561 = sqrt(r353560);
        double r353562 = r353557 * r353561;
        double r353563 = r353562 / r353558;
        double r353564 = b;
        double r353565 = c;
        double r353566 = r353564 - r353565;
        double r353567 = 5.0;
        double r353568 = 6.0;
        double r353569 = r353567 / r353568;
        double r353570 = r353559 + r353569;
        double r353571 = 3.0;
        double r353572 = r353558 * r353571;
        double r353573 = r353556 / r353572;
        double r353574 = r353570 - r353573;
        double r353575 = r353566 * r353574;
        double r353576 = r353563 - r353575;
        double r353577 = r353556 * r353576;
        double r353578 = exp(r353577);
        double r353579 = r353555 * r353578;
        double r353580 = r353554 + r353579;
        double r353581 = r353554 / r353580;
        return r353581;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r353582 = t;
        double r353583 = -8.606619718217222e-16;
        bool r353584 = r353582 <= r353583;
        double r353585 = -5.323635264924309e-286;
        bool r353586 = r353582 <= r353585;
        double r353587 = !r353586;
        bool r353588 = r353584 || r353587;
        double r353589 = x;
        double r353590 = y;
        double r353591 = 2.0;
        double r353592 = z;
        double r353593 = cbrt(r353582);
        double r353594 = r353593 * r353593;
        double r353595 = r353592 / r353594;
        double r353596 = a;
        double r353597 = r353582 + r353596;
        double r353598 = sqrt(r353597);
        double r353599 = r353598 / r353593;
        double r353600 = r353595 * r353599;
        double r353601 = b;
        double r353602 = c;
        double r353603 = r353601 - r353602;
        double r353604 = 5.0;
        double r353605 = 6.0;
        double r353606 = r353604 / r353605;
        double r353607 = r353596 + r353606;
        double r353608 = 3.0;
        double r353609 = r353582 * r353608;
        double r353610 = r353591 / r353609;
        double r353611 = r353607 - r353610;
        double r353612 = r353603 * r353611;
        double r353613 = r353600 - r353612;
        double r353614 = r353591 * r353613;
        double r353615 = exp(r353614);
        double r353616 = r353590 * r353615;
        double r353617 = r353589 + r353616;
        double r353618 = r353589 / r353617;
        double r353619 = r353592 * r353598;
        double r353620 = r353596 - r353606;
        double r353621 = r353620 * r353609;
        double r353622 = r353619 * r353621;
        double r353623 = r353596 * r353596;
        double r353624 = r353606 * r353606;
        double r353625 = r353623 - r353624;
        double r353626 = r353625 * r353609;
        double r353627 = r353620 * r353591;
        double r353628 = r353626 - r353627;
        double r353629 = r353603 * r353628;
        double r353630 = r353582 * r353629;
        double r353631 = r353622 - r353630;
        double r353632 = r353582 * r353621;
        double r353633 = r353631 / r353632;
        double r353634 = r353591 * r353633;
        double r353635 = exp(r353634);
        double r353636 = r353590 * r353635;
        double r353637 = r353589 + r353636;
        double r353638 = r353589 / r353637;
        double r353639 = r353588 ? r353618 : r353638;
        return r353639;
}

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

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original4.1
Target3.2
Herbie2.9
\[\begin{array}{l} \mathbf{if}\;t \lt -2.118326644891581057561884576920117070548 \cdot 10^{-50}:\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(\left(a \cdot c + 0.8333333333333333703407674875052180141211 \cdot c\right) - a \cdot b\right)}}\\ \mathbf{elif}\;t \lt 5.196588770651547088010424937268931048836 \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. Split input into 2 regimes
  2. if t < -8.606619718217222e-16 or -5.323635264924309e-286 < t

    1. Initial program 3.7

      \[\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 add-cube-cbrt3.7

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

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

    if -8.606619718217222e-16 < t < -5.323635264924309e-286

    1. Initial program 6.1

      \[\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 flip-+9.0

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

      \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \color{blue}{\frac{\left(a \cdot a - \frac{5}{6} \cdot \frac{5}{6}\right) \cdot \left(t \cdot 3\right) - \left(a - \frac{5}{6}\right) \cdot 2}{\left(a - \frac{5}{6}\right) \cdot \left(t \cdot 3\right)}}\right)}}\]
    5. Applied associate-*r/9.1

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

      \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \color{blue}{\frac{\left(z \cdot \sqrt{t + a}\right) \cdot \left(\left(a - \frac{5}{6}\right) \cdot \left(t \cdot 3\right)\right) - t \cdot \left(\left(b - c\right) \cdot \left(\left(a \cdot a - \frac{5}{6} \cdot \frac{5}{6}\right) \cdot \left(t \cdot 3\right) - \left(a - \frac{5}{6}\right) \cdot 2\right)\right)}{t \cdot \left(\left(a - \frac{5}{6}\right) \cdot \left(t \cdot 3\right)\right)}}}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification2.9

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -8.606619718217222145283218420286548947144 \cdot 10^{-16} \lor \neg \left(t \le -5.323635264924309396140940049972566276942 \cdot 10^{-286}\right):\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{\sqrt{t + a}}{\sqrt[3]{t}} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \frac{\left(z \cdot \sqrt{t + a}\right) \cdot \left(\left(a - \frac{5}{6}\right) \cdot \left(t \cdot 3\right)\right) - t \cdot \left(\left(b - c\right) \cdot \left(\left(a \cdot a - \frac{5}{6} \cdot \frac{5}{6}\right) \cdot \left(t \cdot 3\right) - \left(a - \frac{5}{6}\right) \cdot 2\right)\right)}{t \cdot \left(\left(a - \frac{5}{6}\right) \cdot \left(t \cdot 3\right)\right)}}}\\ \end{array}\]

Reproduce

herbie shell --seed 2019308 
(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.1183266448915811e-50) (/ x (+ x (* y (exp (* 2 (- (+ (* a c) (* 0.83333333333333337 c)) (* a b))))))) (if (< t 5.19658877065154709e-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)))))))))))