\left(\left(\left(x + y\right) + z\right) - z \cdot \log t\right) + \left(a - 0.5\right) \cdot b
\left(\left(\left(\left(x + y\right) + z\right) - \log \left({t}^{\frac{1}{3}} \cdot \sqrt[3]{t}\right) \cdot z\right) - \log \left({\left(\sqrt{t}\right)}^{\frac{1}{3}} \cdot {\left(\sqrt{t}\right)}^{\frac{1}{3}}\right) \cdot z\right) + \left(a - 0.5\right) \cdot bdouble f(double x, double y, double z, double t, double a, double b) {
double r291165 = x;
double r291166 = y;
double r291167 = r291165 + r291166;
double r291168 = z;
double r291169 = r291167 + r291168;
double r291170 = t;
double r291171 = log(r291170);
double r291172 = r291168 * r291171;
double r291173 = r291169 - r291172;
double r291174 = a;
double r291175 = 0.5;
double r291176 = r291174 - r291175;
double r291177 = b;
double r291178 = r291176 * r291177;
double r291179 = r291173 + r291178;
return r291179;
}
double f(double x, double y, double z, double t, double a, double b) {
double r291180 = x;
double r291181 = y;
double r291182 = r291180 + r291181;
double r291183 = z;
double r291184 = r291182 + r291183;
double r291185 = t;
double r291186 = 0.3333333333333333;
double r291187 = pow(r291185, r291186);
double r291188 = cbrt(r291185);
double r291189 = r291187 * r291188;
double r291190 = log(r291189);
double r291191 = r291190 * r291183;
double r291192 = r291184 - r291191;
double r291193 = sqrt(r291185);
double r291194 = pow(r291193, r291186);
double r291195 = r291194 * r291194;
double r291196 = log(r291195);
double r291197 = r291196 * r291183;
double r291198 = r291192 - r291197;
double r291199 = a;
double r291200 = 0.5;
double r291201 = r291199 - r291200;
double r291202 = b;
double r291203 = r291201 * r291202;
double r291204 = r291198 + r291203;
return r291204;
}




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
Applied associate--r+0.1
rmApplied pow1/30.1
rmApplied add-sqr-sqrt0.1
Applied cbrt-prod0.1
Simplified0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2020035
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:logBeta from math-functions-0.1.5.2, A"
:precision binary64
:herbie-target
(+ (+ (+ x y) (/ (* (- 1 (pow (log t) 2)) z) (+ 1 (log t)))) (* (- a 0.5) b))
(+ (- (+ (+ x y) z) (* z (log t))) (* (- a 0.5) b)))