\left(\left(\left(x + y\right) + z\right) - z \cdot \log t\right) + \left(a - 0.5\right) \cdot b
\left(\left(\left(x + \left(z + y\right)\right) - z \cdot \left(\log \left(\sqrt{t}\right) + \log \left(\left|\sqrt[3]{t}\right|\right)\right)\right) - \log \left(\sqrt{\sqrt[3]{{t}^{\frac{2}{3}}} \cdot \sqrt[3]{\sqrt[3]{t}}}\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 r422663 = x;
double r422664 = y;
double r422665 = r422663 + r422664;
double r422666 = z;
double r422667 = r422665 + r422666;
double r422668 = t;
double r422669 = log(r422668);
double r422670 = r422666 * r422669;
double r422671 = r422667 - r422670;
double r422672 = a;
double r422673 = 0.5;
double r422674 = r422672 - r422673;
double r422675 = b;
double r422676 = r422674 * r422675;
double r422677 = r422671 + r422676;
return r422677;
}
double f(double x, double y, double z, double t, double a, double b) {
double r422678 = x;
double r422679 = z;
double r422680 = y;
double r422681 = r422679 + r422680;
double r422682 = r422678 + r422681;
double r422683 = t;
double r422684 = sqrt(r422683);
double r422685 = log(r422684);
double r422686 = cbrt(r422683);
double r422687 = fabs(r422686);
double r422688 = log(r422687);
double r422689 = r422685 + r422688;
double r422690 = r422679 * r422689;
double r422691 = r422682 - r422690;
double r422692 = 0.6666666666666666;
double r422693 = pow(r422683, r422692);
double r422694 = cbrt(r422693);
double r422695 = cbrt(r422686);
double r422696 = r422694 * r422695;
double r422697 = sqrt(r422696);
double r422698 = log(r422697);
double r422699 = r422698 * r422679;
double r422700 = r422691 - r422699;
double r422701 = a;
double r422702 = 0.5;
double r422703 = r422701 - r422702;
double r422704 = b;
double r422705 = r422703 * r422704;
double r422706 = r422700 + r422705;
return r422706;
}




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 sqrt-prod0.1
Applied log-prod0.1
Applied distribute-rgt-in0.1
Applied associate--r+0.1
Simplified0.1
rmApplied add-cube-cbrt0.1
Applied cbrt-prod0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2020047
(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)))