Average Error: 6.6 → 2.0
Time: 17.4s
Precision: 64
\[x + \frac{\left(y - x\right) \cdot z}{t}\]
\[\begin{array}{l} \mathbf{if}\;x \le -2.805118041439937941139552230088477979341 \cdot 10^{-286}:\\ \;\;\;\;x + \frac{z}{t} \cdot \left(y - x\right)\\ \mathbf{elif}\;x \le 9.722960166984673180429226333422988982195 \cdot 10^{-97}:\\ \;\;\;\;\frac{\sqrt[3]{z}}{t} \cdot \left(\left(\left(y - x\right) \cdot \sqrt[3]{z}\right) \cdot \sqrt[3]{z}\right) + x\\ \mathbf{else}:\\ \;\;\;\;x + \frac{z}{t} \cdot \left(y - x\right)\\ \end{array}\]
x + \frac{\left(y - x\right) \cdot z}{t}
\begin{array}{l}
\mathbf{if}\;x \le -2.805118041439937941139552230088477979341 \cdot 10^{-286}:\\
\;\;\;\;x + \frac{z}{t} \cdot \left(y - x\right)\\

\mathbf{elif}\;x \le 9.722960166984673180429226333422988982195 \cdot 10^{-97}:\\
\;\;\;\;\frac{\sqrt[3]{z}}{t} \cdot \left(\left(\left(y - x\right) \cdot \sqrt[3]{z}\right) \cdot \sqrt[3]{z}\right) + x\\

\mathbf{else}:\\
\;\;\;\;x + \frac{z}{t} \cdot \left(y - x\right)\\

\end{array}
double f(double x, double y, double z, double t) {
        double r16260689 = x;
        double r16260690 = y;
        double r16260691 = r16260690 - r16260689;
        double r16260692 = z;
        double r16260693 = r16260691 * r16260692;
        double r16260694 = t;
        double r16260695 = r16260693 / r16260694;
        double r16260696 = r16260689 + r16260695;
        return r16260696;
}

double f(double x, double y, double z, double t) {
        double r16260697 = x;
        double r16260698 = -2.805118041439938e-286;
        bool r16260699 = r16260697 <= r16260698;
        double r16260700 = z;
        double r16260701 = t;
        double r16260702 = r16260700 / r16260701;
        double r16260703 = y;
        double r16260704 = r16260703 - r16260697;
        double r16260705 = r16260702 * r16260704;
        double r16260706 = r16260697 + r16260705;
        double r16260707 = 9.722960166984673e-97;
        bool r16260708 = r16260697 <= r16260707;
        double r16260709 = cbrt(r16260700);
        double r16260710 = r16260709 / r16260701;
        double r16260711 = r16260704 * r16260709;
        double r16260712 = r16260711 * r16260709;
        double r16260713 = r16260710 * r16260712;
        double r16260714 = r16260713 + r16260697;
        double r16260715 = r16260708 ? r16260714 : r16260706;
        double r16260716 = r16260699 ? r16260706 : r16260715;
        return r16260716;
}

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

Target

Original6.6
Target2.1
Herbie2.0
\[\begin{array}{l} \mathbf{if}\;x \lt -9.025511195533004570453352523209034680317 \cdot 10^{-135}:\\ \;\;\;\;x - \frac{z}{t} \cdot \left(x - y\right)\\ \mathbf{elif}\;x \lt 4.275032163700714748507147332551979944314 \cdot 10^{-250}:\\ \;\;\;\;x + \frac{y - x}{t} \cdot z\\ \mathbf{else}:\\ \;\;\;\;x + \frac{y - x}{\frac{t}{z}}\\ \end{array}\]

Derivation

  1. Split input into 2 regimes
  2. if x < -2.805118041439938e-286 or 9.722960166984673e-97 < x

    1. Initial program 7.0

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

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

      \[\leadsto x + \color{blue}{\frac{y - x}{1} \cdot \frac{z}{t}}\]
    5. Simplified1.3

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

    if -2.805118041439938e-286 < x < 9.722960166984673e-97

    1. Initial program 5.2

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

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

      \[\leadsto x + \color{blue}{\frac{y - x}{1} \cdot \frac{z}{t}}\]
    5. Simplified5.1

      \[\leadsto x + \color{blue}{\left(y - x\right)} \cdot \frac{z}{t}\]
    6. Using strategy rm
    7. Applied *-un-lft-identity5.1

      \[\leadsto x + \left(y - x\right) \cdot \frac{z}{\color{blue}{1 \cdot t}}\]
    8. Applied add-cube-cbrt5.9

      \[\leadsto x + \left(y - x\right) \cdot \frac{\color{blue}{\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \sqrt[3]{z}}}{1 \cdot t}\]
    9. Applied times-frac5.9

      \[\leadsto x + \left(y - x\right) \cdot \color{blue}{\left(\frac{\sqrt[3]{z} \cdot \sqrt[3]{z}}{1} \cdot \frac{\sqrt[3]{z}}{t}\right)}\]
    10. Applied associate-*r*4.3

      \[\leadsto x + \color{blue}{\left(\left(y - x\right) \cdot \frac{\sqrt[3]{z} \cdot \sqrt[3]{z}}{1}\right) \cdot \frac{\sqrt[3]{z}}{t}}\]
    11. Simplified4.3

      \[\leadsto x + \color{blue}{\left(\left(\left(y - x\right) \cdot \sqrt[3]{z}\right) \cdot \sqrt[3]{z}\right)} \cdot \frac{\sqrt[3]{z}}{t}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification2.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -2.805118041439937941139552230088477979341 \cdot 10^{-286}:\\ \;\;\;\;x + \frac{z}{t} \cdot \left(y - x\right)\\ \mathbf{elif}\;x \le 9.722960166984673180429226333422988982195 \cdot 10^{-97}:\\ \;\;\;\;\frac{\sqrt[3]{z}}{t} \cdot \left(\left(\left(y - x\right) \cdot \sqrt[3]{z}\right) \cdot \sqrt[3]{z}\right) + x\\ \mathbf{else}:\\ \;\;\;\;x + \frac{z}{t} \cdot \left(y - x\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019170 +o rules:numerics
(FPCore (x y z t)
  :name "Numeric.Histogram:binBounds from Chart-1.5.3"

  :herbie-target
  (if (< x -9.025511195533005e-135) (- x (* (/ z t) (- x y))) (if (< x 4.275032163700715e-250) (+ x (* (/ (- y x) t) z)) (+ x (/ (- y x) (/ t z)))))

  (+ x (/ (* (- y x) z) t)))