\frac{x}{\left(y - z\right) \cdot \left(t - z\right)}\begin{array}{l}
\mathbf{if}\;x \le -4.800350695501532909653686407635874960598 \cdot 10^{-272}:\\
\;\;\;\;\frac{\frac{x}{t - z}}{y - z}\\
\mathbf{elif}\;x \le 1.462607247572835755145071210685761706744 \cdot 10^{224}:\\
\;\;\;\;\frac{\frac{x}{y - z}}{t - z}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{x}}{y - z} \cdot \frac{\sqrt{x}}{t - z}\\
\end{array}double f(double x, double y, double z, double t) {
double r542313 = x;
double r542314 = y;
double r542315 = z;
double r542316 = r542314 - r542315;
double r542317 = t;
double r542318 = r542317 - r542315;
double r542319 = r542316 * r542318;
double r542320 = r542313 / r542319;
return r542320;
}
double f(double x, double y, double z, double t) {
double r542321 = x;
double r542322 = -4.800350695501533e-272;
bool r542323 = r542321 <= r542322;
double r542324 = t;
double r542325 = z;
double r542326 = r542324 - r542325;
double r542327 = r542321 / r542326;
double r542328 = y;
double r542329 = r542328 - r542325;
double r542330 = r542327 / r542329;
double r542331 = 1.4626072475728358e+224;
bool r542332 = r542321 <= r542331;
double r542333 = r542321 / r542329;
double r542334 = r542333 / r542326;
double r542335 = sqrt(r542321);
double r542336 = r542335 / r542329;
double r542337 = r542335 / r542326;
double r542338 = r542336 * r542337;
double r542339 = r542332 ? r542334 : r542338;
double r542340 = r542323 ? r542330 : r542339;
return r542340;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 7.5 |
|---|---|
| Target | 8.2 |
| Herbie | 1.9 |
if x < -4.800350695501533e-272Initial program 7.4
rmApplied *-un-lft-identity7.4
Applied times-frac2.1
rmApplied *-un-lft-identity2.1
Applied add-sqr-sqrt2.1
Applied times-frac2.1
Applied associate-*l*2.1
Simplified2.1
if -4.800350695501533e-272 < x < 1.4626072475728358e+224Initial program 5.1
rmApplied associate-/r*1.7
if 1.4626072475728358e+224 < x Initial program 27.3
rmApplied add-sqr-sqrt27.5
Applied times-frac1.6
Final simplification1.9
herbie shell --seed 2019195
(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))))