\left(\left(x \cdot \log y - y\right) - z\right) + \log t
\left(\left(x \cdot \left(2 \cdot \log \left(\sqrt[3]{y}\right)\right) + \left(x \cdot \log \left(\sqrt[3]{{y}^{\frac{2}{3}}}\right) + \log \left(\sqrt[3]{\sqrt[3]{y}}\right) \cdot x\right)\right) + \left(\log t - z\right)\right) - ydouble f(double x, double y, double z, double t) {
double r91043 = x;
double r91044 = y;
double r91045 = log(r91044);
double r91046 = r91043 * r91045;
double r91047 = r91046 - r91044;
double r91048 = z;
double r91049 = r91047 - r91048;
double r91050 = t;
double r91051 = log(r91050);
double r91052 = r91049 + r91051;
return r91052;
}
double f(double x, double y, double z, double t) {
double r91053 = x;
double r91054 = 2.0;
double r91055 = y;
double r91056 = cbrt(r91055);
double r91057 = log(r91056);
double r91058 = r91054 * r91057;
double r91059 = r91053 * r91058;
double r91060 = 0.6666666666666666;
double r91061 = pow(r91055, r91060);
double r91062 = cbrt(r91061);
double r91063 = log(r91062);
double r91064 = r91053 * r91063;
double r91065 = cbrt(r91056);
double r91066 = log(r91065);
double r91067 = r91066 * r91053;
double r91068 = r91064 + r91067;
double r91069 = r91059 + r91068;
double r91070 = t;
double r91071 = log(r91070);
double r91072 = z;
double r91073 = r91071 - r91072;
double r91074 = r91069 + r91073;
double r91075 = r91074 - r91055;
return r91075;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Results
Initial program 0.1
Simplified0.1
rmApplied fma-udef0.1
rmApplied add-cube-cbrt0.1
Applied log-prod0.1
Applied distribute-lft-in0.1
Simplified0.1
rmApplied add-cube-cbrt0.1
Applied cbrt-prod0.1
Applied log-prod0.1
Applied distribute-lft-in0.1
Simplified0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019212 +o rules:numerics
(FPCore (x y z t)
:name "Numeric.SpecFunctions:incompleteGamma from math-functions-0.1.5.2, A"
:precision binary64
(+ (- (- (* x (log y)) y) z) (log t)))