\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1.0\right) \cdot \log a\right) - b}}{y}\frac{\sqrt[3]{x}}{\frac{\sqrt[3]{y}}{\sqrt[3]{{e}^{\left(\left(y \cdot \log z + \left(t - 1.0\right) \cdot \log a\right) - b\right)}}}} \cdot \frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{\frac{\sqrt[3]{y} \cdot \sqrt[3]{y}}{\sqrt[3]{e^{\left(y \cdot \log z + \left(t - 1.0\right) \cdot \log a\right) - b}} \cdot \sqrt[3]{{e}^{\left(\left(y \cdot \log z + \left(t - 1.0\right) \cdot \log a\right) - b\right)}}}}double f(double x, double y, double z, double t, double a, double b) {
double r32687997 = x;
double r32687998 = y;
double r32687999 = z;
double r32688000 = log(r32687999);
double r32688001 = r32687998 * r32688000;
double r32688002 = t;
double r32688003 = 1.0;
double r32688004 = r32688002 - r32688003;
double r32688005 = a;
double r32688006 = log(r32688005);
double r32688007 = r32688004 * r32688006;
double r32688008 = r32688001 + r32688007;
double r32688009 = b;
double r32688010 = r32688008 - r32688009;
double r32688011 = exp(r32688010);
double r32688012 = r32687997 * r32688011;
double r32688013 = r32688012 / r32687998;
return r32688013;
}
double f(double x, double y, double z, double t, double a, double b) {
double r32688014 = x;
double r32688015 = cbrt(r32688014);
double r32688016 = y;
double r32688017 = cbrt(r32688016);
double r32688018 = exp(1.0);
double r32688019 = z;
double r32688020 = log(r32688019);
double r32688021 = r32688016 * r32688020;
double r32688022 = t;
double r32688023 = 1.0;
double r32688024 = r32688022 - r32688023;
double r32688025 = a;
double r32688026 = log(r32688025);
double r32688027 = r32688024 * r32688026;
double r32688028 = r32688021 + r32688027;
double r32688029 = b;
double r32688030 = r32688028 - r32688029;
double r32688031 = pow(r32688018, r32688030);
double r32688032 = cbrt(r32688031);
double r32688033 = r32688017 / r32688032;
double r32688034 = r32688015 / r32688033;
double r32688035 = r32688015 * r32688015;
double r32688036 = r32688017 * r32688017;
double r32688037 = exp(r32688030);
double r32688038 = cbrt(r32688037);
double r32688039 = r32688038 * r32688032;
double r32688040 = r32688036 / r32688039;
double r32688041 = r32688035 / r32688040;
double r32688042 = r32688034 * r32688041;
return r32688042;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a



Bits error versus b
Results
Initial program 1.9
rmApplied associate-/l*1.8
rmApplied add-cube-cbrt1.8
Applied add-cube-cbrt1.8
Applied times-frac1.8
Applied add-cube-cbrt1.8
Applied times-frac1.0
rmApplied *-un-lft-identity1.0
Applied exp-prod1.0
Simplified1.0
rmApplied *-un-lft-identity1.0
Applied *-un-lft-identity1.0
Applied distribute-lft-out--1.0
Applied exp-prod1.0
Simplified1.0
Final simplification1.0
herbie shell --seed 2019112 +o rules:numerics
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:incompleteBetaWorker from math-functions-0.1.5.2"
(/ (* x (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) y))