Average Error: 0.6 → 0.6
Time: 3.1s
Precision: 64
\[1 - \frac{x}{\left(y - z\right) \cdot \left(y - t\right)}\]
\[1 - x \cdot \frac{1}{\left(y - z\right) \cdot \left(y - t\right)}\]
1 - \frac{x}{\left(y - z\right) \cdot \left(y - t\right)}
1 - x \cdot \frac{1}{\left(y - z\right) \cdot \left(y - t\right)}
double f(double x, double y, double z, double t) {
        double r169977 = 1.0;
        double r169978 = x;
        double r169979 = y;
        double r169980 = z;
        double r169981 = r169979 - r169980;
        double r169982 = t;
        double r169983 = r169979 - r169982;
        double r169984 = r169981 * r169983;
        double r169985 = r169978 / r169984;
        double r169986 = r169977 - r169985;
        return r169986;
}

double f(double x, double y, double z, double t) {
        double r169987 = 1.0;
        double r169988 = x;
        double r169989 = 1.0;
        double r169990 = y;
        double r169991 = z;
        double r169992 = r169990 - r169991;
        double r169993 = t;
        double r169994 = r169990 - r169993;
        double r169995 = r169992 * r169994;
        double r169996 = r169989 / r169995;
        double r169997 = r169988 * r169996;
        double r169998 = r169987 - r169997;
        return r169998;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.6

    \[1 - \frac{x}{\left(y - z\right) \cdot \left(y - t\right)}\]
  2. Using strategy rm
  3. Applied div-inv0.6

    \[\leadsto 1 - \color{blue}{x \cdot \frac{1}{\left(y - z\right) \cdot \left(y - t\right)}}\]
  4. Final simplification0.6

    \[\leadsto 1 - x \cdot \frac{1}{\left(y - z\right) \cdot \left(y - t\right)}\]

Reproduce

herbie shell --seed 2020083 +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)))))