\frac{\frac{1}{x}}{y \cdot \left(1 + z \cdot z\right)}\frac{\sqrt[3]{\frac{1}{y}}}{\frac{\sqrt{1 + z \cdot z}}{\sqrt[3]{\frac{1}{y}}}} \cdot \frac{\frac{\sqrt[3]{\frac{1}{y}}}{x}}{\sqrt{1 + z \cdot z}}double f(double x, double y, double z) {
double r369144 = 1.0;
double r369145 = x;
double r369146 = r369144 / r369145;
double r369147 = y;
double r369148 = z;
double r369149 = r369148 * r369148;
double r369150 = r369144 + r369149;
double r369151 = r369147 * r369150;
double r369152 = r369146 / r369151;
return r369152;
}
double f(double x, double y, double z) {
double r369153 = 1.0;
double r369154 = y;
double r369155 = r369153 / r369154;
double r369156 = cbrt(r369155);
double r369157 = z;
double r369158 = r369157 * r369157;
double r369159 = r369153 + r369158;
double r369160 = sqrt(r369159);
double r369161 = r369160 / r369156;
double r369162 = r369156 / r369161;
double r369163 = x;
double r369164 = r369156 / r369163;
double r369165 = r369164 / r369160;
double r369166 = r369162 * r369165;
return r369166;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 6.3 |
|---|---|
| Target | 5.7 |
| Herbie | 6.1 |
Initial program 6.3
rmApplied associate-/r*6.6
Simplified6.6
rmApplied add-sqr-sqrt6.6
Applied *-un-lft-identity6.6
Applied add-cube-cbrt7.2
Applied times-frac7.2
Applied times-frac6.1
Simplified6.1
Final simplification6.1
herbie shell --seed 2019353
(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)))))