\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t
\left(\left(\left(\log z + \log \left({\left(x + y\right)}^{\frac{1}{3}}\right)\right) + \log \left(\sqrt[3]{x + y} \cdot \sqrt[3]{x + y}\right)\right) - t\right) + \left(a - 0.5\right) \cdot \log tdouble f(double x, double y, double z, double t, double a) {
double r19395203 = x;
double r19395204 = y;
double r19395205 = r19395203 + r19395204;
double r19395206 = log(r19395205);
double r19395207 = z;
double r19395208 = log(r19395207);
double r19395209 = r19395206 + r19395208;
double r19395210 = t;
double r19395211 = r19395209 - r19395210;
double r19395212 = a;
double r19395213 = 0.5;
double r19395214 = r19395212 - r19395213;
double r19395215 = log(r19395210);
double r19395216 = r19395214 * r19395215;
double r19395217 = r19395211 + r19395216;
return r19395217;
}
double f(double x, double y, double z, double t, double a) {
double r19395218 = z;
double r19395219 = log(r19395218);
double r19395220 = x;
double r19395221 = y;
double r19395222 = r19395220 + r19395221;
double r19395223 = 0.3333333333333333;
double r19395224 = pow(r19395222, r19395223);
double r19395225 = log(r19395224);
double r19395226 = r19395219 + r19395225;
double r19395227 = cbrt(r19395222);
double r19395228 = r19395227 * r19395227;
double r19395229 = log(r19395228);
double r19395230 = r19395226 + r19395229;
double r19395231 = t;
double r19395232 = r19395230 - r19395231;
double r19395233 = a;
double r19395234 = 0.5;
double r19395235 = r19395233 - r19395234;
double r19395236 = log(r19395231);
double r19395237 = r19395235 * r19395236;
double r19395238 = r19395232 + r19395237;
return r19395238;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 0.3 |
|---|---|
| Target | 0.3 |
| Herbie | 0.3 |
Initial program 0.3
rmApplied add-cube-cbrt0.3
Applied log-prod0.3
Applied associate-+l+0.3
rmApplied pow1/30.3
Final simplification0.3
herbie shell --seed 2019200
(FPCore (x y z t a)
:name "Numeric.SpecFunctions:logGammaL from math-functions-0.1.5.2"
:herbie-target
(+ (log (+ x y)) (+ (- (log z) t) (* (- a 0.5) (log t))))
(+ (- (+ (log (+ x y)) (log z)) t) (* (- a 0.5) (log t))))