\frac{x}{y \cdot y} - 3\mathsf{fma}\left(1, \frac{1}{\frac{y}{\frac{x}{y}}}, -{\left(\sqrt[3]{3}\right)}^{3}\right) + \mathsf{fma}\left(-\sqrt[3]{3}, \sqrt[3]{3} \cdot \sqrt[3]{3}, {\left(\sqrt[3]{3}\right)}^{3}\right)double f(double x, double y) {
double r193675 = x;
double r193676 = y;
double r193677 = r193676 * r193676;
double r193678 = r193675 / r193677;
double r193679 = 3.0;
double r193680 = r193678 - r193679;
return r193680;
}
double f(double x, double y) {
double r193681 = 1.0;
double r193682 = y;
double r193683 = x;
double r193684 = r193683 / r193682;
double r193685 = r193682 / r193684;
double r193686 = r193681 / r193685;
double r193687 = 3.0;
double r193688 = cbrt(r193687);
double r193689 = 3.0;
double r193690 = pow(r193688, r193689);
double r193691 = -r193690;
double r193692 = fma(r193681, r193686, r193691);
double r193693 = -r193688;
double r193694 = r193688 * r193688;
double r193695 = fma(r193693, r193694, r193690);
double r193696 = r193692 + r193695;
return r193696;
}




Bits error versus x




Bits error versus y
| Original | 4.8 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 4.8
rmApplied associate-/r*0.1
rmApplied *-un-lft-identity0.1
Applied *-un-lft-identity0.1
Applied times-frac0.1
Applied associate-/l*0.1
rmApplied add-cube-cbrt0.1
Applied *-un-lft-identity0.1
Applied prod-diff0.1
Simplified0.8
Simplified0.1
Final simplification0.1
herbie shell --seed 2019322 +o rules:numerics
(FPCore (x y)
:name "Statistics.Sample:$skurtosis from math-functions-0.1.5.2"
:precision binary64
:herbie-target
(- (/ (/ x y) y) 3)
(- (/ x (* y y)) 3))