\frac{x}{\left(y - z\right) \cdot \left(t - z\right)}\begin{array}{l}
\mathbf{if}\;x \le 1.174635818302163510929144995131904565534 \cdot 10^{175}:\\
\;\;\;\;\frac{\frac{x}{t - z}}{y - z}\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{y - z} \cdot \frac{\sqrt[3]{\sqrt[3]{x} \cdot \sqrt[3]{x}}}{\sqrt[3]{t - z} \cdot \sqrt[3]{t - z}}\right) \cdot \frac{\sqrt[3]{\sqrt[3]{x}}}{\sqrt[3]{t - z}}\\
\end{array}double f(double x, double y, double z, double t) {
double r522616 = x;
double r522617 = y;
double r522618 = z;
double r522619 = r522617 - r522618;
double r522620 = t;
double r522621 = r522620 - r522618;
double r522622 = r522619 * r522621;
double r522623 = r522616 / r522622;
return r522623;
}
double f(double x, double y, double z, double t) {
double r522624 = x;
double r522625 = 1.1746358183021635e+175;
bool r522626 = r522624 <= r522625;
double r522627 = t;
double r522628 = z;
double r522629 = r522627 - r522628;
double r522630 = r522624 / r522629;
double r522631 = y;
double r522632 = r522631 - r522628;
double r522633 = r522630 / r522632;
double r522634 = cbrt(r522624);
double r522635 = r522634 * r522634;
double r522636 = r522635 / r522632;
double r522637 = cbrt(r522635);
double r522638 = cbrt(r522629);
double r522639 = r522638 * r522638;
double r522640 = r522637 / r522639;
double r522641 = r522636 * r522640;
double r522642 = cbrt(r522634);
double r522643 = r522642 / r522638;
double r522644 = r522641 * r522643;
double r522645 = r522626 ? r522633 : r522644;
return r522645;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 8.0 |
|---|---|
| Target | 8.7 |
| Herbie | 1.8 |
if x < 1.1746358183021635e+175Initial program 6.2
rmApplied add-cube-cbrt6.7
Applied times-frac1.6
rmApplied associate-*l/2.4
Simplified1.7
if 1.1746358183021635e+175 < x Initial program 24.1
rmApplied add-cube-cbrt24.6
Applied times-frac2.3
rmApplied add-cube-cbrt2.5
Applied add-cube-cbrt2.6
Applied cbrt-prod2.6
Applied times-frac2.6
Applied associate-*r*2.3
Final simplification1.8
herbie shell --seed 2019297
(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))))