\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^{2 \cdot \left(\mathsf{fma}\left(a + \left(\frac{5}{6} - \frac{2}{t \cdot 3}\right), -\left(b - c\right), \frac{z}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{\sqrt{t + a}}{\sqrt[3]{t}}\right) + \left(a + \left(\frac{5}{6} - \frac{2}{t \cdot 3}\right)\right) \cdot \left(\left(-\left(b - c\right)\right) + \left(b - c\right)\right)\right)}}double f(double x, double y, double z, double t, double a, double b, double c) {
double r89641 = x;
double r89642 = y;
double r89643 = 2.0;
double r89644 = z;
double r89645 = t;
double r89646 = a;
double r89647 = r89645 + r89646;
double r89648 = sqrt(r89647);
double r89649 = r89644 * r89648;
double r89650 = r89649 / r89645;
double r89651 = b;
double r89652 = c;
double r89653 = r89651 - r89652;
double r89654 = 5.0;
double r89655 = 6.0;
double r89656 = r89654 / r89655;
double r89657 = r89646 + r89656;
double r89658 = 3.0;
double r89659 = r89645 * r89658;
double r89660 = r89643 / r89659;
double r89661 = r89657 - r89660;
double r89662 = r89653 * r89661;
double r89663 = r89650 - r89662;
double r89664 = r89643 * r89663;
double r89665 = exp(r89664);
double r89666 = r89642 * r89665;
double r89667 = r89641 + r89666;
double r89668 = r89641 / r89667;
return r89668;
}
double f(double x, double y, double z, double t, double a, double b, double c) {
double r89669 = x;
double r89670 = y;
double r89671 = 2.0;
double r89672 = a;
double r89673 = 5.0;
double r89674 = 6.0;
double r89675 = r89673 / r89674;
double r89676 = t;
double r89677 = 3.0;
double r89678 = r89676 * r89677;
double r89679 = r89671 / r89678;
double r89680 = r89675 - r89679;
double r89681 = r89672 + r89680;
double r89682 = b;
double r89683 = c;
double r89684 = r89682 - r89683;
double r89685 = -r89684;
double r89686 = z;
double r89687 = cbrt(r89676);
double r89688 = r89687 * r89687;
double r89689 = r89686 / r89688;
double r89690 = r89676 + r89672;
double r89691 = sqrt(r89690);
double r89692 = r89691 / r89687;
double r89693 = r89689 * r89692;
double r89694 = fma(r89681, r89685, r89693);
double r89695 = r89685 + r89684;
double r89696 = r89681 * r89695;
double r89697 = r89694 + r89696;
double r89698 = r89671 * r89697;
double r89699 = exp(r89698);
double r89700 = r89670 * r89699;
double r89701 = r89669 + r89700;
double r89702 = r89669 / r89701;
return r89702;
}



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
Initial program 4.0
rmApplied log1p-expm1-u10.5
rmApplied add-cube-cbrt10.5
Applied times-frac9.2
Applied prod-diff39.1
Simplified39.1
Simplified1.4
Final simplification1.4
herbie shell --seed 2020047 +o rules:numerics
(FPCore (x y z t a b c)
:name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2"
:precision binary64
(/ x (+ x (* y (exp (* 2 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5 6)) (/ 2 (* t 3)))))))))))