\left(\left(\left(x + y\right) + z\right) - z \cdot \log t\right) + \left(a - 0.5\right) \cdot b
\left(\left(z + \left(y + x\right)\right) - \left(\left(z \cdot \log \left(\sqrt[3]{t}\right) + z \cdot \log \left(\sqrt[3]{t}\right)\right) + \log \left({\left(\frac{1}{t}\right)}^{\frac{-1}{3}}\right) \cdot z\right)\right) + \left(a - 0.5\right) \cdot bdouble f(double x, double y, double z, double t, double a, double b) {
double r15879167 = x;
double r15879168 = y;
double r15879169 = r15879167 + r15879168;
double r15879170 = z;
double r15879171 = r15879169 + r15879170;
double r15879172 = t;
double r15879173 = log(r15879172);
double r15879174 = r15879170 * r15879173;
double r15879175 = r15879171 - r15879174;
double r15879176 = a;
double r15879177 = 0.5;
double r15879178 = r15879176 - r15879177;
double r15879179 = b;
double r15879180 = r15879178 * r15879179;
double r15879181 = r15879175 + r15879180;
return r15879181;
}
double f(double x, double y, double z, double t, double a, double b) {
double r15879182 = z;
double r15879183 = y;
double r15879184 = x;
double r15879185 = r15879183 + r15879184;
double r15879186 = r15879182 + r15879185;
double r15879187 = t;
double r15879188 = cbrt(r15879187);
double r15879189 = log(r15879188);
double r15879190 = r15879182 * r15879189;
double r15879191 = r15879190 + r15879190;
double r15879192 = 1.0;
double r15879193 = r15879192 / r15879187;
double r15879194 = -0.3333333333333333;
double r15879195 = pow(r15879193, r15879194);
double r15879196 = log(r15879195);
double r15879197 = r15879196 * r15879182;
double r15879198 = r15879191 + r15879197;
double r15879199 = r15879186 - r15879198;
double r15879200 = a;
double r15879201 = 0.5;
double r15879202 = r15879200 - r15879201;
double r15879203 = b;
double r15879204 = r15879202 * r15879203;
double r15879205 = r15879199 + r15879204;
return r15879205;
}




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
| Original | 0.1 |
|---|---|
| Target | 0.4 |
| Herbie | 0.1 |
Initial program 0.1
rmApplied add-cube-cbrt0.1
Applied log-prod0.1
Applied distribute-rgt-in0.1
Simplified0.1
Taylor expanded around inf 0.1
Final simplification0.1
herbie shell --seed 2019169 +o rules:numerics
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:logBeta from math-functions-0.1.5.2, A"
:herbie-target
(+ (+ (+ x y) (/ (* (- 1.0 (pow (log t) 2.0)) z) (+ 1.0 (log t)))) (* (- a 0.5) b))
(+ (- (+ (+ x y) z) (* z (log t))) (* (- a 0.5) b)))