\frac{x}{\left(y - z\right) \cdot \left(t - z\right)}\frac{\frac{x}{t - z}}{y - z}double f(double x, double y, double z, double t) {
double r36694624 = x;
double r36694625 = y;
double r36694626 = z;
double r36694627 = r36694625 - r36694626;
double r36694628 = t;
double r36694629 = r36694628 - r36694626;
double r36694630 = r36694627 * r36694629;
double r36694631 = r36694624 / r36694630;
return r36694631;
}
double f(double x, double y, double z, double t) {
double r36694632 = x;
double r36694633 = t;
double r36694634 = z;
double r36694635 = r36694633 - r36694634;
double r36694636 = r36694632 / r36694635;
double r36694637 = y;
double r36694638 = r36694637 - r36694634;
double r36694639 = r36694636 / r36694638;
return r36694639;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 8.2 |
|---|---|
| Target | 8.9 |
| Herbie | 2.1 |
Initial program 8.2
rmApplied *-un-lft-identity8.2
Applied times-frac2.2
rmApplied associate-*l/2.1
Simplified2.1
Final simplification2.1
herbie shell --seed 2019165
(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))))