Average Error: 0.6 → 0.4
Time: 36.8s
Precision: 64
\[1 - \frac{x}{\left(y - z\right) \cdot \left(y - t\right)}\]
\[\begin{array}{l} \mathbf{if}\;\frac{x}{\left(y - z\right) \cdot \left(y - t\right)} \le 2.075149733991123120410744372495800627202 \cdot 10^{278}:\\ \;\;\;\;1 - \frac{x}{\left(y - z\right) \cdot \left(y - t\right)}\\ \mathbf{else}:\\ \;\;\;\;1 - \frac{\frac{x}{y - t}}{y - z}\\ \end{array}\]
1 - \frac{x}{\left(y - z\right) \cdot \left(y - t\right)}
\begin{array}{l}
\mathbf{if}\;\frac{x}{\left(y - z\right) \cdot \left(y - t\right)} \le 2.075149733991123120410744372495800627202 \cdot 10^{278}:\\
\;\;\;\;1 - \frac{x}{\left(y - z\right) \cdot \left(y - t\right)}\\

\mathbf{else}:\\
\;\;\;\;1 - \frac{\frac{x}{y - t}}{y - z}\\

\end{array}
double f(double x, double y, double z, double t) {
        double r11624023 = 1.0;
        double r11624024 = x;
        double r11624025 = y;
        double r11624026 = z;
        double r11624027 = r11624025 - r11624026;
        double r11624028 = t;
        double r11624029 = r11624025 - r11624028;
        double r11624030 = r11624027 * r11624029;
        double r11624031 = r11624024 / r11624030;
        double r11624032 = r11624023 - r11624031;
        return r11624032;
}

double f(double x, double y, double z, double t) {
        double r11624033 = x;
        double r11624034 = y;
        double r11624035 = z;
        double r11624036 = r11624034 - r11624035;
        double r11624037 = t;
        double r11624038 = r11624034 - r11624037;
        double r11624039 = r11624036 * r11624038;
        double r11624040 = r11624033 / r11624039;
        double r11624041 = 2.075149733991123e+278;
        bool r11624042 = r11624040 <= r11624041;
        double r11624043 = 1.0;
        double r11624044 = r11624043 - r11624040;
        double r11624045 = r11624033 / r11624038;
        double r11624046 = r11624045 / r11624036;
        double r11624047 = r11624043 - r11624046;
        double r11624048 = r11624042 ? r11624044 : r11624047;
        return r11624048;
}

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. Split input into 2 regimes
  2. if (/ x (* (- y z) (- y t))) < 2.075149733991123e+278

    1. Initial program 0.3

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

    if 2.075149733991123e+278 < (/ x (* (- y z) (- y t)))

    1. Initial program 26.2

      \[1 - \frac{x}{\left(y - z\right) \cdot \left(y - t\right)}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity26.2

      \[\leadsto 1 - \frac{\color{blue}{1 \cdot x}}{\left(y - z\right) \cdot \left(y - t\right)}\]
    4. Applied times-frac11.0

      \[\leadsto 1 - \color{blue}{\frac{1}{y - z} \cdot \frac{x}{y - t}}\]
    5. Using strategy rm
    6. Applied associate-*l/10.8

      \[\leadsto 1 - \color{blue}{\frac{1 \cdot \frac{x}{y - t}}{y - z}}\]
    7. Simplified10.8

      \[\leadsto 1 - \frac{\color{blue}{\frac{x}{y - t}}}{y - z}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.4

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{x}{\left(y - z\right) \cdot \left(y - t\right)} \le 2.075149733991123120410744372495800627202 \cdot 10^{278}:\\ \;\;\;\;1 - \frac{x}{\left(y - z\right) \cdot \left(y - t\right)}\\ \mathbf{else}:\\ \;\;\;\;1 - \frac{\frac{x}{y - t}}{y - z}\\ \end{array}\]

Reproduce

herbie shell --seed 2019168 
(FPCore (x y z t)
  :name "Data.Random.Distribution.Triangular:triangularCDF from random-fu-0.2.6.2, A"
  (- 1.0 (/ x (* (- y z) (- y t)))))