e^{\left(x + y \cdot \log y\right) - z}{\left(\sqrt{e^{\left(\left(\sqrt{y} \cdot \log y\right) \cdot \sqrt{y} + \left(x - z\right)\right) \cdot 3}} \cdot \sqrt{e^{\left(\left(\sqrt{y} \cdot \log y\right) \cdot \sqrt{y} + \left(x - z\right)\right) \cdot 3}}\right)}^{\frac{1}{3}}double f(double x, double y, double z) {
double r17399363 = x;
double r17399364 = y;
double r17399365 = log(r17399364);
double r17399366 = r17399364 * r17399365;
double r17399367 = r17399363 + r17399366;
double r17399368 = z;
double r17399369 = r17399367 - r17399368;
double r17399370 = exp(r17399369);
return r17399370;
}
double f(double x, double y, double z) {
double r17399371 = y;
double r17399372 = sqrt(r17399371);
double r17399373 = log(r17399371);
double r17399374 = r17399372 * r17399373;
double r17399375 = r17399374 * r17399372;
double r17399376 = x;
double r17399377 = z;
double r17399378 = r17399376 - r17399377;
double r17399379 = r17399375 + r17399378;
double r17399380 = 3.0;
double r17399381 = r17399379 * r17399380;
double r17399382 = exp(r17399381);
double r17399383 = sqrt(r17399382);
double r17399384 = r17399383 * r17399383;
double r17399385 = 0.3333333333333333;
double r17399386 = pow(r17399384, r17399385);
return r17399386;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 0.0 |
|---|---|
| Target | 0.0 |
| Herbie | 0.1 |
Initial program 0.0
rmApplied add-cbrt-cube0.1
Simplified0.1
rmApplied pow1/30.1
rmApplied add-sqr-sqrt0.1
Applied associate-*l*0.1
rmApplied add-sqr-sqrt0.1
Final simplification0.1
herbie shell --seed 2019163
(FPCore (x y z)
:name "Statistics.Distribution.Poisson.Internal:probability from math-functions-0.1.5.2"
:herbie-target
(exp (+ (- x z) (* (log y) y)))
(exp (- (+ x (* y (log y))) z)))