\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 \mathsf{fma}\left(z \cdot \sqrt{t + a}, \frac{1}{t}, -\left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}double f(double x, double y, double z, double t, double a, double b, double c) {
double r54993 = x;
double r54994 = y;
double r54995 = 2.0;
double r54996 = z;
double r54997 = t;
double r54998 = a;
double r54999 = r54997 + r54998;
double r55000 = sqrt(r54999);
double r55001 = r54996 * r55000;
double r55002 = r55001 / r54997;
double r55003 = b;
double r55004 = c;
double r55005 = r55003 - r55004;
double r55006 = 5.0;
double r55007 = 6.0;
double r55008 = r55006 / r55007;
double r55009 = r54998 + r55008;
double r55010 = 3.0;
double r55011 = r54997 * r55010;
double r55012 = r54995 / r55011;
double r55013 = r55009 - r55012;
double r55014 = r55005 * r55013;
double r55015 = r55002 - r55014;
double r55016 = r54995 * r55015;
double r55017 = exp(r55016);
double r55018 = r54994 * r55017;
double r55019 = r54993 + r55018;
double r55020 = r54993 / r55019;
return r55020;
}
double f(double x, double y, double z, double t, double a, double b, double c) {
double r55021 = x;
double r55022 = y;
double r55023 = 2.0;
double r55024 = z;
double r55025 = t;
double r55026 = a;
double r55027 = r55025 + r55026;
double r55028 = sqrt(r55027);
double r55029 = r55024 * r55028;
double r55030 = 1.0;
double r55031 = r55030 / r55025;
double r55032 = b;
double r55033 = c;
double r55034 = r55032 - r55033;
double r55035 = 5.0;
double r55036 = 6.0;
double r55037 = r55035 / r55036;
double r55038 = r55026 + r55037;
double r55039 = 3.0;
double r55040 = r55025 * r55039;
double r55041 = r55023 / r55040;
double r55042 = r55038 - r55041;
double r55043 = r55034 * r55042;
double r55044 = -r55043;
double r55045 = fma(r55029, r55031, r55044);
double r55046 = r55023 * r55045;
double r55047 = exp(r55046);
double r55048 = r55022 * r55047;
double r55049 = r55021 + r55048;
double r55050 = r55021 / r55049;
return r55050;
}



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 3.8
rmApplied div-inv3.8
Applied fma-neg2.6
rmApplied add-log-exp2.6
rmApplied rem-log-exp2.6
Final simplification2.6
herbie shell --seed 2020001 +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)))))))))))