Average Error: 4.0 → 2.8
Time: 27.9s
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^{\left(\frac{\sqrt{a + t}}{\sqrt[3]{t}} \cdot \frac{z}{\sqrt[3]{t} \cdot \sqrt[3]{t}} - \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right) \cdot \left(b - c\right)\right) \cdot 2}}\]
\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^{\left(\frac{\sqrt{a + t}}{\sqrt[3]{t}} \cdot \frac{z}{\sqrt[3]{t} \cdot \sqrt[3]{t}} - \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right) \cdot \left(b - c\right)\right) \cdot 2}}
double f(double x, double y, double z, double t, double a, double b, double c) {
        double r22285646 = x;
        double r22285647 = y;
        double r22285648 = 2.0;
        double r22285649 = z;
        double r22285650 = t;
        double r22285651 = a;
        double r22285652 = r22285650 + r22285651;
        double r22285653 = sqrt(r22285652);
        double r22285654 = r22285649 * r22285653;
        double r22285655 = r22285654 / r22285650;
        double r22285656 = b;
        double r22285657 = c;
        double r22285658 = r22285656 - r22285657;
        double r22285659 = 5.0;
        double r22285660 = 6.0;
        double r22285661 = r22285659 / r22285660;
        double r22285662 = r22285651 + r22285661;
        double r22285663 = 3.0;
        double r22285664 = r22285650 * r22285663;
        double r22285665 = r22285648 / r22285664;
        double r22285666 = r22285662 - r22285665;
        double r22285667 = r22285658 * r22285666;
        double r22285668 = r22285655 - r22285667;
        double r22285669 = r22285648 * r22285668;
        double r22285670 = exp(r22285669);
        double r22285671 = r22285647 * r22285670;
        double r22285672 = r22285646 + r22285671;
        double r22285673 = r22285646 / r22285672;
        return r22285673;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r22285674 = x;
        double r22285675 = y;
        double r22285676 = a;
        double r22285677 = t;
        double r22285678 = r22285676 + r22285677;
        double r22285679 = sqrt(r22285678);
        double r22285680 = cbrt(r22285677);
        double r22285681 = r22285679 / r22285680;
        double r22285682 = z;
        double r22285683 = r22285680 * r22285680;
        double r22285684 = r22285682 / r22285683;
        double r22285685 = r22285681 * r22285684;
        double r22285686 = 5.0;
        double r22285687 = 6.0;
        double r22285688 = r22285686 / r22285687;
        double r22285689 = r22285676 + r22285688;
        double r22285690 = 2.0;
        double r22285691 = 3.0;
        double r22285692 = r22285677 * r22285691;
        double r22285693 = r22285690 / r22285692;
        double r22285694 = r22285689 - r22285693;
        double r22285695 = b;
        double r22285696 = c;
        double r22285697 = r22285695 - r22285696;
        double r22285698 = r22285694 * r22285697;
        double r22285699 = r22285685 - r22285698;
        double r22285700 = r22285699 * r22285690;
        double r22285701 = exp(r22285700);
        double r22285702 = r22285675 * r22285701;
        double r22285703 = r22285674 + r22285702;
        double r22285704 = r22285674 / r22285703;
        return r22285704;
}

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.0
Target3.3
Herbie2.8
\[\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. 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 add-cube-cbrt4.0

    \[\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.8

    \[\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)}}\]
  5. Final simplification2.8

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

Reproduce

herbie shell --seed 2019179 
(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)))))))))))