\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 -7.10938901979545519 \cdot 10^{300} \lor \neg \left(\left(y - z\right) \cdot \left(t - z\right) \le -2.4754507687590531 \cdot 10^{-14}\right):\\
\;\;\;\;\left(\sqrt[3]{1} \cdot \sqrt[3]{1}\right) \cdot \frac{\frac{x}{t - z}}{y - z}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{\left(t - z\right) \cdot \left(y - z\right)}\\
\end{array}double f(double x, double y, double z, double t) {
double r831324 = x;
double r831325 = y;
double r831326 = z;
double r831327 = r831325 - r831326;
double r831328 = t;
double r831329 = r831328 - r831326;
double r831330 = r831327 * r831329;
double r831331 = r831324 / r831330;
return r831331;
}
double f(double x, double y, double z, double t) {
double r831332 = y;
double r831333 = z;
double r831334 = r831332 - r831333;
double r831335 = t;
double r831336 = r831335 - r831333;
double r831337 = r831334 * r831336;
double r831338 = -7.109389019795455e+300;
bool r831339 = r831337 <= r831338;
double r831340 = -2.475450768759053e-14;
bool r831341 = r831337 <= r831340;
double r831342 = !r831341;
bool r831343 = r831339 || r831342;
double r831344 = 1.0;
double r831345 = cbrt(r831344);
double r831346 = r831345 * r831345;
double r831347 = x;
double r831348 = r831347 / r831336;
double r831349 = r831348 / r831334;
double r831350 = r831346 * r831349;
double r831351 = r831336 * r831334;
double r831352 = r831347 / r831351;
double r831353 = r831343 ? r831350 : r831352;
return r831353;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 7.7 |
|---|---|
| Target | 8.4 |
| Herbie | 1.5 |
if (* (- y z) (- t z)) < -7.109389019795455e+300 or -2.475450768759053e-14 < (* (- y z) (- t z)) Initial program 9.1
rmApplied *-un-lft-identity9.1
Applied times-frac1.9
rmApplied *-un-lft-identity1.9
Applied add-cube-cbrt1.9
Applied times-frac1.9
Applied associate-*l*1.9
Simplified1.8
if -7.109389019795455e+300 < (* (- y z) (- t z)) < -2.475450768759053e-14Initial program 0.2
rmApplied *-commutative0.2
Final simplification1.5
herbie shell --seed 2020045 +o rules:numerics
(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))))