Average Error: 2.3 → 1.9
Time: 4.5s
Precision: 64
\[x + \left(y - x\right) \cdot \frac{z}{t}\]
\[\begin{array}{l} \mathbf{if}\;t \le -5.710194955151591629493346688798012753313 \cdot 10^{144}:\\ \;\;\;\;x + \frac{y - x}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{z}{\sqrt[3]{t}}\\ \mathbf{elif}\;t \le 206588178.7833076417446136474609375:\\ \;\;\;\;x + \frac{\left(y - x\right) \cdot z}{t}\\ \mathbf{else}:\\ \;\;\;\;x + \left(y - x\right) \cdot \frac{z}{t}\\ \end{array}\]
x + \left(y - x\right) \cdot \frac{z}{t}
\begin{array}{l}
\mathbf{if}\;t \le -5.710194955151591629493346688798012753313 \cdot 10^{144}:\\
\;\;\;\;x + \frac{y - x}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{z}{\sqrt[3]{t}}\\

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

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

\end{array}
double f(double x, double y, double z, double t) {
        double r801351 = x;
        double r801352 = y;
        double r801353 = r801352 - r801351;
        double r801354 = z;
        double r801355 = t;
        double r801356 = r801354 / r801355;
        double r801357 = r801353 * r801356;
        double r801358 = r801351 + r801357;
        return r801358;
}

double f(double x, double y, double z, double t) {
        double r801359 = t;
        double r801360 = -5.7101949551515916e+144;
        bool r801361 = r801359 <= r801360;
        double r801362 = x;
        double r801363 = y;
        double r801364 = r801363 - r801362;
        double r801365 = cbrt(r801359);
        double r801366 = r801365 * r801365;
        double r801367 = r801364 / r801366;
        double r801368 = z;
        double r801369 = r801368 / r801365;
        double r801370 = r801367 * r801369;
        double r801371 = r801362 + r801370;
        double r801372 = 206588178.78330764;
        bool r801373 = r801359 <= r801372;
        double r801374 = r801364 * r801368;
        double r801375 = r801374 / r801359;
        double r801376 = r801362 + r801375;
        double r801377 = r801368 / r801359;
        double r801378 = r801364 * r801377;
        double r801379 = r801362 + r801378;
        double r801380 = r801373 ? r801376 : r801379;
        double r801381 = r801361 ? r801371 : r801380;
        return r801381;
}

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.3
Target2.3
Herbie1.9
\[\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 t < -5.7101949551515916e+144

    1. Initial program 1.1

      \[x + \left(y - x\right) \cdot \frac{z}{t}\]
    2. Using strategy rm
    3. Applied add-cube-cbrt1.3

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

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

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

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

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

    if -5.7101949551515916e+144 < t < 206588178.78330764

    1. Initial program 3.3

      \[x + \left(y - x\right) \cdot \frac{z}{t}\]
    2. Using strategy rm
    3. Applied associate-*r/2.6

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

    if 206588178.78330764 < t

    1. Initial program 1.2

      \[x + \left(y - x\right) \cdot \frac{z}{t}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification1.9

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

Reproduce

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

  :herbie-target
  (if (< (* (- y x) (/ z t)) -1013646692435.887) (+ 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))))