\frac{x}{\left(y - z\right) \cdot \left(t - z\right)}\frac{\frac{\sqrt[3]{x}}{y - z}}{\sqrt[3]{t - z}} \cdot \left(\frac{\sqrt[3]{x}}{\sqrt[3]{t - z}} \cdot \frac{\sqrt[3]{x}}{\sqrt[3]{t - z}}\right)double f(double x, double y, double z, double t) {
double r22491409 = x;
double r22491410 = y;
double r22491411 = z;
double r22491412 = r22491410 - r22491411;
double r22491413 = t;
double r22491414 = r22491413 - r22491411;
double r22491415 = r22491412 * r22491414;
double r22491416 = r22491409 / r22491415;
return r22491416;
}
double f(double x, double y, double z, double t) {
double r22491417 = x;
double r22491418 = cbrt(r22491417);
double r22491419 = y;
double r22491420 = z;
double r22491421 = r22491419 - r22491420;
double r22491422 = r22491418 / r22491421;
double r22491423 = t;
double r22491424 = r22491423 - r22491420;
double r22491425 = cbrt(r22491424);
double r22491426 = r22491422 / r22491425;
double r22491427 = r22491418 / r22491425;
double r22491428 = r22491427 * r22491427;
double r22491429 = r22491426 * r22491428;
return r22491429;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 7.6 |
|---|---|
| Target | 8.3 |
| Herbie | 1.3 |
Initial program 7.6
rmApplied associate-/r*2.1
rmApplied add-cube-cbrt2.7
Applied *-un-lft-identity2.7
Applied add-cube-cbrt2.8
Applied times-frac2.8
Applied times-frac1.2
Simplified1.3
Final simplification1.3
herbie shell --seed 2019171
(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))))