\frac{x}{\left(y - z\right) \cdot \left(t - z\right)}\begin{array}{l}
\mathbf{if}\;\left(y - z\right) \cdot \left(t - z\right) \le -4.026222793044682 \cdot 10^{168}:\\
\;\;\;\;1 \cdot \frac{\frac{x}{t - z}}{y - z}\\
\mathbf{elif}\;\left(y - z\right) \cdot \left(t - z\right) \le -3.16701534575747388 \cdot 10^{-22}:\\
\;\;\;\;1 \cdot \left(x \cdot \frac{\frac{1}{y - z}}{t - z}\right)\\
\mathbf{else}:\\
\;\;\;\;1 \cdot \frac{\frac{x}{y - z}}{t - z}\\
\end{array}double f(double x, double y, double z, double t) {
double r798603 = x;
double r798604 = y;
double r798605 = z;
double r798606 = r798604 - r798605;
double r798607 = t;
double r798608 = r798607 - r798605;
double r798609 = r798606 * r798608;
double r798610 = r798603 / r798609;
return r798610;
}
double f(double x, double y, double z, double t) {
double r798611 = y;
double r798612 = z;
double r798613 = r798611 - r798612;
double r798614 = t;
double r798615 = r798614 - r798612;
double r798616 = r798613 * r798615;
double r798617 = -4.026222793044682e+168;
bool r798618 = r798616 <= r798617;
double r798619 = 1.0;
double r798620 = x;
double r798621 = r798620 / r798615;
double r798622 = r798621 / r798613;
double r798623 = r798619 * r798622;
double r798624 = -3.167015345757474e-22;
bool r798625 = r798616 <= r798624;
double r798626 = r798619 / r798613;
double r798627 = r798626 / r798615;
double r798628 = r798620 * r798627;
double r798629 = r798619 * r798628;
double r798630 = r798620 / r798613;
double r798631 = r798630 / r798615;
double r798632 = r798619 * r798631;
double r798633 = r798625 ? r798629 : r798632;
double r798634 = r798618 ? r798623 : r798633;
return r798634;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 7.4 |
|---|---|
| Target | 8.3 |
| Herbie | 1.4 |
if (* (- y z) (- t z)) < -4.026222793044682e+168Initial program 11.3
rmApplied add-cube-cbrt11.6
Applied times-frac0.7
rmApplied *-un-lft-identity0.7
Applied associate-*l*0.7
Simplified0.6
rmApplied div-inv0.7
rmApplied associate-*l/0.5
Simplified0.4
if -4.026222793044682e+168 < (* (- y z) (- t z)) < -3.167015345757474e-22Initial program 0.2
rmApplied add-cube-cbrt1.2
Applied times-frac5.3
rmApplied *-un-lft-identity5.3
Applied associate-*l*5.3
Simplified8.4
rmApplied *-un-lft-identity8.4
Applied div-inv8.5
Applied times-frac0.4
Simplified0.4
if -3.167015345757474e-22 < (* (- y z) (- t z)) Initial program 7.5
rmApplied add-cube-cbrt8.0
Applied times-frac1.6
rmApplied *-un-lft-identity1.6
Applied associate-*l*1.6
Simplified1.7
Final simplification1.4
herbie shell --seed 2020039
(FPCore (x y z t)
:name "Data.Random.Distribution.Triangular:triangularCDF from random-fu-0.2.6.2, B"
:precision binary64
:herbie-target
(if (< (/ x (* (- y z) (- t z))) 0.0) (/ (/ x (- y z)) (- t z)) (* x (/ 1 (* (- y z) (- t z)))))
(/ x (* (- y z) (- t z))))