1 - \frac{x}{\left(y - z\right) \cdot \left(y - t\right)}1 - \frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{y - z} \cdot \frac{\sqrt[3]{x}}{\mathsf{fma}\left(\sqrt[3]{y} \cdot \sqrt[3]{y}, \sqrt[3]{y}, -t \cdot 1\right) + \mathsf{fma}\left(-t, 1, t\right)}double f(double x, double y, double z, double t) {
double r300986 = 1.0;
double r300987 = x;
double r300988 = y;
double r300989 = z;
double r300990 = r300988 - r300989;
double r300991 = t;
double r300992 = r300988 - r300991;
double r300993 = r300990 * r300992;
double r300994 = r300987 / r300993;
double r300995 = r300986 - r300994;
return r300995;
}
double f(double x, double y, double z, double t) {
double r300996 = 1.0;
double r300997 = x;
double r300998 = cbrt(r300997);
double r300999 = r300998 * r300998;
double r301000 = y;
double r301001 = z;
double r301002 = r301000 - r301001;
double r301003 = r300999 / r301002;
double r301004 = cbrt(r301000);
double r301005 = r301004 * r301004;
double r301006 = t;
double r301007 = 1.0;
double r301008 = r301006 * r301007;
double r301009 = -r301008;
double r301010 = fma(r301005, r301004, r301009);
double r301011 = -r301006;
double r301012 = fma(r301011, r301007, r301006);
double r301013 = r301010 + r301012;
double r301014 = r300998 / r301013;
double r301015 = r301003 * r301014;
double r301016 = r300996 - r301015;
return r301016;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Initial program 0.6
rmApplied add-cube-cbrt0.7
Applied add-cube-cbrt0.8
Applied prod-diff0.8
Applied distribute-lft-in7.4
Simplified7.3
Simplified0.7
rmApplied distribute-lft-out0.7
Applied add-cube-cbrt0.8
Applied times-frac0.7
Final simplification0.7
herbie shell --seed 2020060 +o rules:numerics
(FPCore (x y z t)
:name "Data.Random.Distribution.Triangular:triangularCDF from random-fu-0.2.6.2, A"
:precision binary64
(- 1 (/ x (* (- y z) (- y t)))))