\frac{\frac{1}{x}}{y \cdot \left(1 + z \cdot z\right)}\frac{\sqrt[3]{\frac{1}{x}} \cdot \frac{\sqrt[3]{1}}{\sqrt[3]{x}}}{y} \cdot \frac{\sqrt[3]{\frac{1}{x}}}{1 + z \cdot z}double f(double x, double y, double z) {
double r249244 = 1.0;
double r249245 = x;
double r249246 = r249244 / r249245;
double r249247 = y;
double r249248 = z;
double r249249 = r249248 * r249248;
double r249250 = r249244 + r249249;
double r249251 = r249247 * r249250;
double r249252 = r249246 / r249251;
return r249252;
}
double f(double x, double y, double z) {
double r249253 = 1.0;
double r249254 = x;
double r249255 = r249253 / r249254;
double r249256 = cbrt(r249255);
double r249257 = cbrt(r249253);
double r249258 = cbrt(r249254);
double r249259 = r249257 / r249258;
double r249260 = r249256 * r249259;
double r249261 = y;
double r249262 = r249260 / r249261;
double r249263 = z;
double r249264 = r249263 * r249263;
double r249265 = r249253 + r249264;
double r249266 = r249256 / r249265;
double r249267 = r249262 * r249266;
return r249267;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 6.5 |
|---|---|
| Target | 5.9 |
| Herbie | 6.7 |
Initial program 6.5
rmApplied add-cube-cbrt7.1
Applied times-frac6.8
rmApplied cbrt-div6.7
Final simplification6.7
herbie shell --seed 2019297
(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)))))