\frac{x}{\left(y - z\right) \cdot \left(t - z\right)}\frac{\left(\sqrt[3]{\sqrt[3]{x}} \cdot \sqrt[3]{\sqrt[3]{x}}\right) \cdot \left(\sqrt[3]{\sqrt[3]{x}} \cdot \sqrt[3]{x}\right)}{y - z} \cdot \frac{\sqrt[3]{x}}{t - z}double f(double x, double y, double z, double t) {
double r748237 = x;
double r748238 = y;
double r748239 = z;
double r748240 = r748238 - r748239;
double r748241 = t;
double r748242 = r748241 - r748239;
double r748243 = r748240 * r748242;
double r748244 = r748237 / r748243;
return r748244;
}
double f(double x, double y, double z, double t) {
double r748245 = x;
double r748246 = cbrt(r748245);
double r748247 = cbrt(r748246);
double r748248 = r748247 * r748247;
double r748249 = r748247 * r748246;
double r748250 = r748248 * r748249;
double r748251 = y;
double r748252 = z;
double r748253 = r748251 - r748252;
double r748254 = r748250 / r748253;
double r748255 = t;
double r748256 = r748255 - r748252;
double r748257 = r748246 / r748256;
double r748258 = r748254 * r748257;
return r748258;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 7.5 |
|---|---|
| Target | 8.3 |
| Herbie | 1.9 |
Initial program 7.5
rmApplied add-cube-cbrt8.0
Applied times-frac1.7
rmApplied add-cube-cbrt1.9
Applied associate-*l*1.9
Final simplification1.9
herbie shell --seed 2019196 +o rules:numerics
(FPCore (x y z t)
:name "Data.Random.Distribution.Triangular:triangularCDF from random-fu-0.2.6.2, B"
:herbie-target
(if (< (/ x (* (- y z) (- t z))) 0.0) (/ (/ x (- y z)) (- t z)) (* x (/ 1.0 (* (- y z) (- t z)))))
(/ x (* (- y z) (- t z))))