\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t
\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(\left(a - 0.5\right) \cdot \left(2 \cdot \log \left(\sqrt[3]{t}\right) + \log \left(\sqrt[3]{\sqrt[3]{t}} \cdot \sqrt[3]{\sqrt[3]{t}}\right)\right) + \log \left(\sqrt[3]{\sqrt[3]{t}}\right) \cdot \left(a - 0.5\right)\right)double f(double x, double y, double z, double t, double a) {
double r308218 = x;
double r308219 = y;
double r308220 = r308218 + r308219;
double r308221 = log(r308220);
double r308222 = z;
double r308223 = log(r308222);
double r308224 = r308221 + r308223;
double r308225 = t;
double r308226 = r308224 - r308225;
double r308227 = a;
double r308228 = 0.5;
double r308229 = r308227 - r308228;
double r308230 = log(r308225);
double r308231 = r308229 * r308230;
double r308232 = r308226 + r308231;
return r308232;
}
double f(double x, double y, double z, double t, double a) {
double r308233 = x;
double r308234 = y;
double r308235 = r308233 + r308234;
double r308236 = log(r308235);
double r308237 = z;
double r308238 = log(r308237);
double r308239 = r308236 + r308238;
double r308240 = t;
double r308241 = r308239 - r308240;
double r308242 = a;
double r308243 = 0.5;
double r308244 = r308242 - r308243;
double r308245 = 2.0;
double r308246 = cbrt(r308240);
double r308247 = log(r308246);
double r308248 = r308245 * r308247;
double r308249 = cbrt(r308246);
double r308250 = r308249 * r308249;
double r308251 = log(r308250);
double r308252 = r308248 + r308251;
double r308253 = r308244 * r308252;
double r308254 = log(r308249);
double r308255 = r308254 * r308244;
double r308256 = r308253 + r308255;
double r308257 = r308241 + r308256;
return r308257;
}




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 distribute-lft-in0.3
Simplified0.3
rmApplied add-cube-cbrt0.3
Applied log-prod0.3
Applied distribute-rgt-in0.3
Applied associate-+r+0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2020036
(FPCore (x y z t a)
:name "Numeric.SpecFunctions:logGammaL from math-functions-0.1.5.2"
:precision binary64
:herbie-target
(+ (log (+ x y)) (+ (- (log z) t) (* (- a 0.5) (log t))))
(+ (- (+ (log (+ x y)) (log z)) t) (* (- a 0.5) (log t))))