\left(\left(\left(x + y\right) + z\right) - z \cdot \log t\right) + \left(a - 0.5\right) \cdot b
\left(\left(\left(z + \left(x + y\right)\right) - \left(\log \left(\left(\sqrt[3]{\sqrt[3]{t}} \cdot \sqrt[3]{\sqrt[3]{t}}\right) \cdot \sqrt[3]{\sqrt[3]{t}}\right) + \log \left(\sqrt[3]{t}\right)\right) \cdot z\right) - z \cdot \log \left({t}^{\frac{1}{3}}\right)\right) + b \cdot \left(a - 0.5\right)double f(double x, double y, double z, double t, double a, double b) {
double r14113366 = x;
double r14113367 = y;
double r14113368 = r14113366 + r14113367;
double r14113369 = z;
double r14113370 = r14113368 + r14113369;
double r14113371 = t;
double r14113372 = log(r14113371);
double r14113373 = r14113369 * r14113372;
double r14113374 = r14113370 - r14113373;
double r14113375 = a;
double r14113376 = 0.5;
double r14113377 = r14113375 - r14113376;
double r14113378 = b;
double r14113379 = r14113377 * r14113378;
double r14113380 = r14113374 + r14113379;
return r14113380;
}
double f(double x, double y, double z, double t, double a, double b) {
double r14113381 = z;
double r14113382 = x;
double r14113383 = y;
double r14113384 = r14113382 + r14113383;
double r14113385 = r14113381 + r14113384;
double r14113386 = t;
double r14113387 = cbrt(r14113386);
double r14113388 = cbrt(r14113387);
double r14113389 = r14113388 * r14113388;
double r14113390 = r14113389 * r14113388;
double r14113391 = log(r14113390);
double r14113392 = log(r14113387);
double r14113393 = r14113391 + r14113392;
double r14113394 = r14113393 * r14113381;
double r14113395 = r14113385 - r14113394;
double r14113396 = 0.3333333333333333;
double r14113397 = pow(r14113386, r14113396);
double r14113398 = log(r14113397);
double r14113399 = r14113381 * r14113398;
double r14113400 = r14113395 - r14113399;
double r14113401 = b;
double r14113402 = a;
double r14113403 = 0.5;
double r14113404 = r14113402 - r14113403;
double r14113405 = r14113401 * r14113404;
double r14113406 = r14113400 + r14113405;
return r14113406;
}




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-lft-in0.1
Applied associate--r+0.1
Simplified0.1
rmApplied pow1/30.1
rmApplied add-cube-cbrt0.1
Final simplification0.1
herbie shell --seed 2019172
(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)))