Average Error: 0.7 → 0.8
Time: 11.3s
Precision: 64
\[1 - \frac{x}{\left(y - z\right) \cdot \left(y - t\right)}\]
\[1 - \frac{\frac{1}{y - t}}{y - z} \cdot x\]
1 - \frac{x}{\left(y - z\right) \cdot \left(y - t\right)}
1 - \frac{\frac{1}{y - t}}{y - z} \cdot x
double f(double x, double y, double z, double t) {
        double r280968 = 1.0;
        double r280969 = x;
        double r280970 = y;
        double r280971 = z;
        double r280972 = r280970 - r280971;
        double r280973 = t;
        double r280974 = r280970 - r280973;
        double r280975 = r280972 * r280974;
        double r280976 = r280969 / r280975;
        double r280977 = r280968 - r280976;
        return r280977;
}

double f(double x, double y, double z, double t) {
        double r280978 = 1.0;
        double r280979 = 1.0;
        double r280980 = y;
        double r280981 = t;
        double r280982 = r280980 - r280981;
        double r280983 = r280979 / r280982;
        double r280984 = z;
        double r280985 = r280980 - r280984;
        double r280986 = r280983 / r280985;
        double r280987 = x;
        double r280988 = r280986 * r280987;
        double r280989 = r280978 - r280988;
        return r280989;
}

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.7

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

    \[\leadsto 1 - \color{blue}{x \cdot \frac{1}{\left(y - z\right) \cdot \left(y - t\right)}}\]
  4. Using strategy rm
  5. Applied div-inv0.8

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

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

    \[\leadsto 1 - \frac{\frac{1}{y - t}}{y - z} \cdot x\]

Reproduce

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