\left(\left(\left(x + y\right) + z\right) - z \cdot \log t\right) + \left(a - 0.5\right) \cdot b
\left(\left(\left(\left(\left(x + y\right) + z\right) - \log \left(\sqrt{t}\right) \cdot z\right) - z \cdot \left(2 \cdot \log \left(\sqrt[3]{\sqrt{t}}\right)\right)\right) - \left(z \cdot \frac{1}{3}\right) \cdot \log \left(\sqrt{t}\right)\right) + \left(a - 0.5\right) \cdot bdouble f(double x, double y, double z, double t, double a, double b) {
double r249511 = x;
double r249512 = y;
double r249513 = r249511 + r249512;
double r249514 = z;
double r249515 = r249513 + r249514;
double r249516 = t;
double r249517 = log(r249516);
double r249518 = r249514 * r249517;
double r249519 = r249515 - r249518;
double r249520 = a;
double r249521 = 0.5;
double r249522 = r249520 - r249521;
double r249523 = b;
double r249524 = r249522 * r249523;
double r249525 = r249519 + r249524;
return r249525;
}
double f(double x, double y, double z, double t, double a, double b) {
double r249526 = x;
double r249527 = y;
double r249528 = r249526 + r249527;
double r249529 = z;
double r249530 = r249528 + r249529;
double r249531 = t;
double r249532 = sqrt(r249531);
double r249533 = log(r249532);
double r249534 = r249533 * r249529;
double r249535 = r249530 - r249534;
double r249536 = 2.0;
double r249537 = cbrt(r249532);
double r249538 = log(r249537);
double r249539 = r249536 * r249538;
double r249540 = r249529 * r249539;
double r249541 = r249535 - r249540;
double r249542 = 0.3333333333333333;
double r249543 = r249529 * r249542;
double r249544 = r249543 * r249533;
double r249545 = r249541 - r249544;
double r249546 = a;
double r249547 = 0.5;
double r249548 = r249546 - r249547;
double r249549 = b;
double r249550 = r249548 * r249549;
double r249551 = r249545 + r249550;
return r249551;
}




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-sqr-sqrt0.1
Applied log-prod0.1
Applied distribute-lft-in0.1
Applied associate--r+0.1
Simplified0.1
rmApplied add-cube-cbrt0.1
Applied log-prod0.1
Applied distribute-lft-in0.1
Applied associate--r+0.1
Simplified0.1
rmApplied pow1/30.1
Applied log-pow0.1
Applied associate-*r*0.1
Final simplification0.1
herbie shell --seed 2019198
(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)))