\frac{\frac{1}{x}}{y \cdot \left(1 + z \cdot z\right)}\left(\sqrt[3]{1} \cdot \sqrt[3]{1}\right) \cdot \frac{\frac{\sqrt[3]{1}}{y}}{\left(1 + z \cdot z\right) \cdot x}double f(double x, double y, double z) {
double r308387 = 1.0;
double r308388 = x;
double r308389 = r308387 / r308388;
double r308390 = y;
double r308391 = z;
double r308392 = r308391 * r308391;
double r308393 = r308387 + r308392;
double r308394 = r308390 * r308393;
double r308395 = r308389 / r308394;
return r308395;
}
double f(double x, double y, double z) {
double r308396 = 1.0;
double r308397 = cbrt(r308396);
double r308398 = r308397 * r308397;
double r308399 = y;
double r308400 = r308397 / r308399;
double r308401 = z;
double r308402 = r308401 * r308401;
double r308403 = r308396 + r308402;
double r308404 = x;
double r308405 = r308403 * r308404;
double r308406 = r308400 / r308405;
double r308407 = r308398 * r308406;
return r308407;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 6.6 |
|---|---|
| Target | 5.9 |
| Herbie | 6.5 |
Initial program 6.6
rmApplied div-inv6.6
Applied times-frac6.5
rmApplied *-un-lft-identity6.5
Applied add-cube-cbrt6.5
Applied times-frac6.5
Applied associate-*l*6.5
Simplified6.5
Final simplification6.5
herbie shell --seed 2019303
(FPCore (x y z)
:name "Statistics.Distribution.CauchyLorentz:$cdensity from math-functions-0.1.5.2"
:precision binary64
:herbie-target
(if (< (* y (+ 1 (* z z))) -inf.bf) (/ (/ 1 y) (* (+ 1 (* z z)) x)) (if (< (* y (+ 1 (* z z))) 8.68074325056725162e305) (/ (/ 1 x) (* (+ 1 (* z z)) y)) (/ (/ 1 y) (* (+ 1 (* z z)) x))))
(/ (/ 1 x) (* y (+ 1 (* z z)))))