Average Error: 3.9 → 1.6
Time: 12.7s
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, e^{2 \cdot \mathsf{fma}\left(c - b, \frac{5}{6} + \left(a - \frac{\frac{2}{t}}{3}\right), \sqrt{t + a} \cdot \frac{z}{t}\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, e^{2 \cdot \mathsf{fma}\left(c - b, \frac{5}{6} + \left(a - \frac{\frac{2}{t}}{3}\right), \sqrt{t + a} \cdot \frac{z}{t}\right)}, x\right)}
double f(double x, double y, double z, double t, double a, double b, double c) {
        double r422735 = x;
        double r422736 = y;
        double r422737 = 2.0;
        double r422738 = z;
        double r422739 = t;
        double r422740 = a;
        double r422741 = r422739 + r422740;
        double r422742 = sqrt(r422741);
        double r422743 = r422738 * r422742;
        double r422744 = r422743 / r422739;
        double r422745 = b;
        double r422746 = c;
        double r422747 = r422745 - r422746;
        double r422748 = 5.0;
        double r422749 = 6.0;
        double r422750 = r422748 / r422749;
        double r422751 = r422740 + r422750;
        double r422752 = 3.0;
        double r422753 = r422739 * r422752;
        double r422754 = r422737 / r422753;
        double r422755 = r422751 - r422754;
        double r422756 = r422747 * r422755;
        double r422757 = r422744 - r422756;
        double r422758 = r422737 * r422757;
        double r422759 = exp(r422758);
        double r422760 = r422736 * r422759;
        double r422761 = r422735 + r422760;
        double r422762 = r422735 / r422761;
        return r422762;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r422763 = x;
        double r422764 = y;
        double r422765 = 2.0;
        double r422766 = c;
        double r422767 = b;
        double r422768 = r422766 - r422767;
        double r422769 = 5.0;
        double r422770 = 6.0;
        double r422771 = r422769 / r422770;
        double r422772 = a;
        double r422773 = t;
        double r422774 = r422765 / r422773;
        double r422775 = 3.0;
        double r422776 = r422774 / r422775;
        double r422777 = r422772 - r422776;
        double r422778 = r422771 + r422777;
        double r422779 = r422773 + r422772;
        double r422780 = sqrt(r422779);
        double r422781 = z;
        double r422782 = r422781 / r422773;
        double r422783 = r422780 * r422782;
        double r422784 = fma(r422768, r422778, r422783);
        double r422785 = r422765 * r422784;
        double r422786 = exp(r422785);
        double r422787 = fma(r422764, r422786, r422763);
        double r422788 = r422763 / r422787;
        return r422788;
}

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.9
Target2.9
Herbie1.6
\[\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 3.9

    \[\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. Simplified1.6

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

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

Reproduce

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