\left(\left(\left(x + y\right) + z\right) - z \cdot \log t\right) + \left(a - 0.5\right) \cdot b
\left(x + \left(\left(y + \left(a - \frac{1}{2}\right) \cdot b\right) + z\right)\right) - \left(3 \cdot \log \left(\sqrt[3]{t}\right)\right) \cdot zdouble f(double x, double y, double z, double t, double a, double b) {
double r298098 = x;
double r298099 = y;
double r298100 = r298098 + r298099;
double r298101 = z;
double r298102 = r298100 + r298101;
double r298103 = t;
double r298104 = log(r298103);
double r298105 = r298101 * r298104;
double r298106 = r298102 - r298105;
double r298107 = a;
double r298108 = 0.5;
double r298109 = r298107 - r298108;
double r298110 = b;
double r298111 = r298109 * r298110;
double r298112 = r298106 + r298111;
return r298112;
}
double f(double x, double y, double z, double t, double a, double b) {
double r298113 = x;
double r298114 = y;
double r298115 = a;
double r298116 = 1.0;
double r298117 = 2.0;
double r298118 = r298116 / r298117;
double r298119 = r298115 - r298118;
double r298120 = b;
double r298121 = r298119 * r298120;
double r298122 = r298114 + r298121;
double r298123 = z;
double r298124 = r298122 + r298123;
double r298125 = r298113 + r298124;
double r298126 = 3.0;
double r298127 = t;
double r298128 = cbrt(r298127);
double r298129 = log(r298128);
double r298130 = r298126 * r298129;
double r298131 = r298130 * r298123;
double r298132 = r298125 - r298131;
return r298132;
}




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 associate--l+0.1
Applied associate-+l+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
Final simplification0.1
herbie shell --seed 2019303
(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)))