\frac{x}{x + y \cdot e^{2.0 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{t \cdot 3.0}\right)\right)}}\frac{x}{(y \cdot \left(e^{2.0 \cdot (\left(\frac{\sqrt[3]{z}}{\sqrt[3]{t}} \cdot \frac{\sqrt[3]{z}}{\sqrt[3]{t}}\right) \cdot \left(\frac{\sqrt{t + a}}{\frac{\sqrt[3]{t}}{\sqrt[3]{z}}}\right) + \left(\left(-\left(b - c\right)\right) \cdot \left(\left(a - \frac{2.0}{3.0 \cdot t}\right) + \frac{5.0}{6.0}\right)\right))_*}\right) + x)_*}double f(double x, double y, double z, double t, double a, double b, double c) {
double r38734012 = x;
double r38734013 = y;
double r38734014 = 2.0;
double r38734015 = z;
double r38734016 = t;
double r38734017 = a;
double r38734018 = r38734016 + r38734017;
double r38734019 = sqrt(r38734018);
double r38734020 = r38734015 * r38734019;
double r38734021 = r38734020 / r38734016;
double r38734022 = b;
double r38734023 = c;
double r38734024 = r38734022 - r38734023;
double r38734025 = 5.0;
double r38734026 = 6.0;
double r38734027 = r38734025 / r38734026;
double r38734028 = r38734017 + r38734027;
double r38734029 = 3.0;
double r38734030 = r38734016 * r38734029;
double r38734031 = r38734014 / r38734030;
double r38734032 = r38734028 - r38734031;
double r38734033 = r38734024 * r38734032;
double r38734034 = r38734021 - r38734033;
double r38734035 = r38734014 * r38734034;
double r38734036 = exp(r38734035);
double r38734037 = r38734013 * r38734036;
double r38734038 = r38734012 + r38734037;
double r38734039 = r38734012 / r38734038;
return r38734039;
}
double f(double x, double y, double z, double t, double a, double b, double c) {
double r38734040 = x;
double r38734041 = y;
double r38734042 = 2.0;
double r38734043 = z;
double r38734044 = cbrt(r38734043);
double r38734045 = t;
double r38734046 = cbrt(r38734045);
double r38734047 = r38734044 / r38734046;
double r38734048 = r38734047 * r38734047;
double r38734049 = a;
double r38734050 = r38734045 + r38734049;
double r38734051 = sqrt(r38734050);
double r38734052 = r38734046 / r38734044;
double r38734053 = r38734051 / r38734052;
double r38734054 = b;
double r38734055 = c;
double r38734056 = r38734054 - r38734055;
double r38734057 = -r38734056;
double r38734058 = 3.0;
double r38734059 = r38734058 * r38734045;
double r38734060 = r38734042 / r38734059;
double r38734061 = r38734049 - r38734060;
double r38734062 = 5.0;
double r38734063 = 6.0;
double r38734064 = r38734062 / r38734063;
double r38734065 = r38734061 + r38734064;
double r38734066 = r38734057 * r38734065;
double r38734067 = fma(r38734048, r38734053, r38734066);
double r38734068 = r38734042 * r38734067;
double r38734069 = exp(r38734068);
double r38734070 = fma(r38734041, r38734069, r38734040);
double r38734071 = r38734040 / r38734070;
return r38734071;
}



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
Simplified2.8
rmApplied add-cube-cbrt2.8
Applied add-cube-cbrt2.8
Applied times-frac2.8
Applied *-un-lft-identity2.8
Applied sqrt-prod2.8
Applied times-frac2.5
Applied fma-neg1.4
Simplified1.4
Final simplification1.4
herbie shell --seed 2019112 +o rules:numerics
(FPCore (x y z t a b c)
:name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2"
(/ x (+ x (* y (exp (* 2.0 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))))))))))