\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) - \log \left({t}^{\frac{2}{3}}\right) \cdot z\right) - \left(\log \left(\sqrt[3]{t}\right) \cdot z - \left(a - 0.5\right) \cdot b\right)double f(double x, double y, double z, double t, double a, double b) {
double r33440157 = x;
double r33440158 = y;
double r33440159 = r33440157 + r33440158;
double r33440160 = z;
double r33440161 = r33440159 + r33440160;
double r33440162 = t;
double r33440163 = log(r33440162);
double r33440164 = r33440160 * r33440163;
double r33440165 = r33440161 - r33440164;
double r33440166 = a;
double r33440167 = 0.5;
double r33440168 = r33440166 - r33440167;
double r33440169 = b;
double r33440170 = r33440168 * r33440169;
double r33440171 = r33440165 + r33440170;
return r33440171;
}
double f(double x, double y, double z, double t, double a, double b) {
double r33440172 = z;
double r33440173 = y;
double r33440174 = x;
double r33440175 = r33440173 + r33440174;
double r33440176 = r33440172 + r33440175;
double r33440177 = t;
double r33440178 = 0.6666666666666666;
double r33440179 = pow(r33440177, r33440178);
double r33440180 = log(r33440179);
double r33440181 = r33440180 * r33440172;
double r33440182 = r33440176 - r33440181;
double r33440183 = cbrt(r33440177);
double r33440184 = log(r33440183);
double r33440185 = r33440184 * r33440172;
double r33440186 = a;
double r33440187 = 0.5;
double r33440188 = r33440186 - r33440187;
double r33440189 = b;
double r33440190 = r33440188 * r33440189;
double r33440191 = r33440185 - r33440190;
double r33440192 = r33440182 - r33440191;
return r33440192;
}




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.3 |
| 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
Applied associate-+l-0.1
rmApplied pow1/30.1
Applied pow1/30.1
Applied pow-prod-up0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019158
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:logBeta from math-functions-0.1.5.2, A"
: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)))