Average Error: 2.0 → 1.6
Time: 19.0s
Precision: 64
\[x + \left(y - x\right) \cdot \frac{z}{t}\]
\[\begin{array}{l} \mathbf{if}\;z \le -9.321316198184014864250290572846970188364 \cdot 10^{-37}:\\ \;\;\;\;x - \frac{x - y}{t} \cdot z\\ \mathbf{elif}\;z \le 1.565053397910881773034896102378336415142 \cdot 10^{83}:\\ \;\;\;\;x - \frac{\left(x - y\right) \cdot z}{t}\\ \mathbf{else}:\\ \;\;\;\;x - \left(\left(x - y\right) \cdot \frac{\sqrt[3]{z}}{t}\right) \cdot \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)\\ \end{array}\]
x + \left(y - x\right) \cdot \frac{z}{t}
\begin{array}{l}
\mathbf{if}\;z \le -9.321316198184014864250290572846970188364 \cdot 10^{-37}:\\
\;\;\;\;x - \frac{x - y}{t} \cdot z\\

\mathbf{elif}\;z \le 1.565053397910881773034896102378336415142 \cdot 10^{83}:\\
\;\;\;\;x - \frac{\left(x - y\right) \cdot z}{t}\\

\mathbf{else}:\\
\;\;\;\;x - \left(\left(x - y\right) \cdot \frac{\sqrt[3]{z}}{t}\right) \cdot \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)\\

\end{array}
double f(double x, double y, double z, double t) {
        double r723279 = x;
        double r723280 = y;
        double r723281 = r723280 - r723279;
        double r723282 = z;
        double r723283 = t;
        double r723284 = r723282 / r723283;
        double r723285 = r723281 * r723284;
        double r723286 = r723279 + r723285;
        return r723286;
}

double f(double x, double y, double z, double t) {
        double r723287 = z;
        double r723288 = -9.321316198184015e-37;
        bool r723289 = r723287 <= r723288;
        double r723290 = x;
        double r723291 = y;
        double r723292 = r723290 - r723291;
        double r723293 = t;
        double r723294 = r723292 / r723293;
        double r723295 = r723294 * r723287;
        double r723296 = r723290 - r723295;
        double r723297 = 1.5650533979108818e+83;
        bool r723298 = r723287 <= r723297;
        double r723299 = r723292 * r723287;
        double r723300 = r723299 / r723293;
        double r723301 = r723290 - r723300;
        double r723302 = cbrt(r723287);
        double r723303 = r723302 / r723293;
        double r723304 = r723292 * r723303;
        double r723305 = r723302 * r723302;
        double r723306 = r723304 * r723305;
        double r723307 = r723290 - r723306;
        double r723308 = r723298 ? r723301 : r723307;
        double r723309 = r723289 ? r723296 : r723308;
        return r723309;
}

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

Original2.0
Target2.2
Herbie1.6
\[\begin{array}{l} \mathbf{if}\;\left(y - x\right) \cdot \frac{z}{t} \lt -1013646692435.88671875:\\ \;\;\;\;x + \frac{y - x}{\frac{t}{z}}\\ \mathbf{elif}\;\left(y - x\right) \cdot \frac{z}{t} \lt -0.0:\\ \;\;\;\;x + \frac{\left(y - x\right) \cdot z}{t}\\ \mathbf{else}:\\ \;\;\;\;x + \frac{y - x}{\frac{t}{z}}\\ \end{array}\]

Derivation

  1. Split input into 3 regimes
  2. if z < -9.321316198184015e-37

    1. Initial program 2.6

      \[x + \left(y - x\right) \cdot \frac{z}{t}\]
    2. Simplified2.6

      \[\leadsto \color{blue}{x - \frac{z}{t} \cdot \left(x - y\right)}\]
    3. Using strategy rm
    4. Applied div-inv2.7

      \[\leadsto x - \color{blue}{\left(z \cdot \frac{1}{t}\right)} \cdot \left(x - y\right)\]
    5. Applied associate-*l*1.6

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

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

    if -9.321316198184015e-37 < z < 1.5650533979108818e+83

    1. Initial program 1.2

      \[x + \left(y - x\right) \cdot \frac{z}{t}\]
    2. Simplified1.2

      \[\leadsto \color{blue}{x - \frac{z}{t} \cdot \left(x - y\right)}\]
    3. Using strategy rm
    4. Applied *-un-lft-identity1.2

      \[\leadsto x - \color{blue}{\left(1 \cdot \frac{z}{t}\right)} \cdot \left(x - y\right)\]
    5. Applied associate-*l*1.2

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

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

    if 1.5650533979108818e+83 < z

    1. Initial program 4.7

      \[x + \left(y - x\right) \cdot \frac{z}{t}\]
    2. Simplified4.7

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

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

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

      \[\leadsto x - \color{blue}{\left(\frac{\sqrt[3]{z} \cdot \sqrt[3]{z}}{1} \cdot \frac{\sqrt[3]{z}}{t}\right)} \cdot \left(x - y\right)\]
    7. Applied associate-*l*2.3

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;z \le -9.321316198184014864250290572846970188364 \cdot 10^{-37}:\\ \;\;\;\;x - \frac{x - y}{t} \cdot z\\ \mathbf{elif}\;z \le 1.565053397910881773034896102378336415142 \cdot 10^{83}:\\ \;\;\;\;x - \frac{\left(x - y\right) \cdot z}{t}\\ \mathbf{else}:\\ \;\;\;\;x - \left(\left(x - y\right) \cdot \frac{\sqrt[3]{z}}{t}\right) \cdot \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019174 
(FPCore (x y z t)
  :name "Graphics.Rendering.Plot.Render.Plot.Axis:tickPosition from plot-0.2.3.4"

  :herbie-target
  (if (< (* (- y x) (/ z t)) -1013646692435.8867) (+ x (/ (- y x) (/ t z))) (if (< (* (- y x) (/ z t)) -0.0) (+ x (/ (* (- y x) z) t)) (+ x (/ (- y x) (/ t z)))))

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