\left(\left(\left(x + y\right) + z\right) - z \cdot \log t\right) + \left(a - 0.5\right) \cdot b
x - \left(\left(\log \left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right) \cdot z + \left(z \cdot \log \left(\sqrt[3]{t}\right) + \left(0.5 - a\right) \cdot b\right)\right) - \left(z + y\right)\right)double f(double x, double y, double z, double t, double a, double b) {
double r299195 = x;
double r299196 = y;
double r299197 = r299195 + r299196;
double r299198 = z;
double r299199 = r299197 + r299198;
double r299200 = t;
double r299201 = log(r299200);
double r299202 = r299198 * r299201;
double r299203 = r299199 - r299202;
double r299204 = a;
double r299205 = 0.5;
double r299206 = r299204 - r299205;
double r299207 = b;
double r299208 = r299206 * r299207;
double r299209 = r299203 + r299208;
return r299209;
}
double f(double x, double y, double z, double t, double a, double b) {
double r299210 = x;
double r299211 = t;
double r299212 = cbrt(r299211);
double r299213 = r299212 * r299212;
double r299214 = log(r299213);
double r299215 = z;
double r299216 = r299214 * r299215;
double r299217 = log(r299212);
double r299218 = r299215 * r299217;
double r299219 = 0.5;
double r299220 = a;
double r299221 = r299219 - r299220;
double r299222 = b;
double r299223 = r299221 * r299222;
double r299224 = r299218 + r299223;
double r299225 = r299216 + r299224;
double r299226 = y;
double r299227 = r299215 + r299226;
double r299228 = r299225 - r299227;
double r299229 = r299210 - r299228;
return r299229;
}




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
Simplified0.1
rmApplied add-cube-cbrt0.1
Applied log-prod0.1
Applied distribute-lft-in0.1
Applied associate-+l+0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019194
(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)))