\left(\left(x \cdot \log y - y\right) - z\right) + \log t
\left(\left(\left(\left(\left(x \cdot \log \left(\sqrt[3]{\sqrt[3]{y}}\right)\right) \cdot 4 + \log \left(\sqrt[3]{\sqrt[3]{y}}\right) \cdot \left(x \cdot 2\right)\right) + x \cdot \log \left(\sqrt[3]{y}\right)\right) - y\right) - z\right) + \log tdouble f(double x, double y, double z, double t) {
double r100854 = x;
double r100855 = y;
double r100856 = log(r100855);
double r100857 = r100854 * r100856;
double r100858 = r100857 - r100855;
double r100859 = z;
double r100860 = r100858 - r100859;
double r100861 = t;
double r100862 = log(r100861);
double r100863 = r100860 + r100862;
return r100863;
}
double f(double x, double y, double z, double t) {
double r100864 = x;
double r100865 = y;
double r100866 = cbrt(r100865);
double r100867 = cbrt(r100866);
double r100868 = log(r100867);
double r100869 = r100864 * r100868;
double r100870 = 4.0;
double r100871 = r100869 * r100870;
double r100872 = 2.0;
double r100873 = r100864 * r100872;
double r100874 = r100868 * r100873;
double r100875 = r100871 + r100874;
double r100876 = log(r100866);
double r100877 = r100864 * r100876;
double r100878 = r100875 + r100877;
double r100879 = r100878 - r100865;
double r100880 = z;
double r100881 = r100879 - r100880;
double r100882 = t;
double r100883 = log(r100882);
double r100884 = r100881 + r100883;
return r100884;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Results
Initial program 0.1
rmApplied add-cube-cbrt0.1
Applied log-prod0.1
Applied distribute-lft-in0.1
Simplified0.1
rmApplied add-cube-cbrt0.1
Applied log-prod0.1
Applied distribute-lft-in0.1
Applied distribute-lft-in0.1
Simplified0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2020043 +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)))