\frac{\frac{1}{x}}{y \cdot \left(1 + z \cdot z\right)}\frac{\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{\sqrt[3]{x} \cdot \sqrt[3]{x}}}{\sqrt[3]{y} \cdot \sqrt[3]{y}} \cdot \frac{\frac{\frac{\sqrt[3]{1}}{\sqrt[3]{x}}}{\sqrt[3]{y}}}{1 + z \cdot z}double f(double x, double y, double z) {
double r232470 = 1.0;
double r232471 = x;
double r232472 = r232470 / r232471;
double r232473 = y;
double r232474 = z;
double r232475 = r232474 * r232474;
double r232476 = r232470 + r232475;
double r232477 = r232473 * r232476;
double r232478 = r232472 / r232477;
return r232478;
}
double f(double x, double y, double z) {
double r232479 = 1.0;
double r232480 = cbrt(r232479);
double r232481 = r232480 * r232480;
double r232482 = x;
double r232483 = cbrt(r232482);
double r232484 = r232483 * r232483;
double r232485 = r232481 / r232484;
double r232486 = y;
double r232487 = cbrt(r232486);
double r232488 = r232487 * r232487;
double r232489 = r232485 / r232488;
double r232490 = r232480 / r232483;
double r232491 = r232490 / r232487;
double r232492 = z;
double r232493 = r232492 * r232492;
double r232494 = r232479 + r232493;
double r232495 = r232491 / r232494;
double r232496 = r232489 * r232495;
return r232496;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 6.7 |
|---|---|
| Target | 6.1 |
| Herbie | 6.3 |
Initial program 6.7
rmApplied add-cube-cbrt7.3
Applied times-frac7.1
rmApplied associate-*r/7.4
Simplified6.8
rmApplied *-un-lft-identity6.8
Applied add-cube-cbrt7.4
Applied add-cube-cbrt7.6
Applied add-cube-cbrt7.6
Applied times-frac7.6
Applied times-frac7.6
Applied times-frac6.3
Simplified6.3
Final simplification6.3
herbie shell --seed 2019323
(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))) #f) (/ (/ 1 y) (* (+ 1 (* z z)) x)) (if (< (* y (+ 1 (* z z))) 8.680743250567252e+305) (/ (/ 1 x) (* (+ 1 (* z z)) y)) (/ (/ 1 y) (* (+ 1 (* z z)) x))))
(/ (/ 1 x) (* y (+ 1 (* z z)))))