Average Error: 1.9 → 2.7
Time: 14.9s
Precision: 64
\[x + \left(y - x\right) \cdot \frac{z}{t}\]
\[\begin{array}{l} \mathbf{if}\;\frac{z}{t} \le \frac{-5241384180875533}{5192296858534827628530496329220096}:\\ \;\;\;\;x + \left(\sqrt[3]{\left(\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \left(y - x\right)\right) \cdot \frac{\sqrt[3]{z}}{t}} \cdot \sqrt[3]{\left(\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \left(y - x\right)\right) \cdot \frac{\sqrt[3]{z}}{t}}\right) \cdot \sqrt[3]{\left(\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \left(y - x\right)\right) \cdot \frac{\sqrt[3]{z}}{t}}\\ \mathbf{elif}\;\frac{z}{t} \le 0.0:\\ \;\;\;\;x + \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \left(\left(\sqrt[3]{y - x} \cdot \sqrt[3]{y - x}\right) \cdot \left(\frac{\sqrt[3]{y - x}}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{\sqrt[3]{z}}{\sqrt[3]{t}}\right)\right)\\ \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}\;\frac{z}{t} \le \frac{-5241384180875533}{5192296858534827628530496329220096}:\\
\;\;\;\;x + \left(\sqrt[3]{\left(\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \left(y - x\right)\right) \cdot \frac{\sqrt[3]{z}}{t}} \cdot \sqrt[3]{\left(\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \left(y - x\right)\right) \cdot \frac{\sqrt[3]{z}}{t}}\right) \cdot \sqrt[3]{\left(\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \left(y - x\right)\right) \cdot \frac{\sqrt[3]{z}}{t}}\\

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

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

\end{array}
double f(double x, double y, double z, double t) {
        double r431075 = x;
        double r431076 = y;
        double r431077 = r431076 - r431075;
        double r431078 = z;
        double r431079 = t;
        double r431080 = r431078 / r431079;
        double r431081 = r431077 * r431080;
        double r431082 = r431075 + r431081;
        return r431082;
}

double f(double x, double y, double z, double t) {
        double r431083 = z;
        double r431084 = t;
        double r431085 = r431083 / r431084;
        double r431086 = -5241384180875533.0;
        double r431087 = 5.192296858534828e+33;
        double r431088 = r431086 / r431087;
        bool r431089 = r431085 <= r431088;
        double r431090 = x;
        double r431091 = cbrt(r431083);
        double r431092 = r431091 * r431091;
        double r431093 = y;
        double r431094 = r431093 - r431090;
        double r431095 = r431092 * r431094;
        double r431096 = r431091 / r431084;
        double r431097 = r431095 * r431096;
        double r431098 = cbrt(r431097);
        double r431099 = r431098 * r431098;
        double r431100 = r431099 * r431098;
        double r431101 = r431090 + r431100;
        double r431102 = 0.0;
        bool r431103 = r431085 <= r431102;
        double r431104 = cbrt(r431094);
        double r431105 = r431104 * r431104;
        double r431106 = cbrt(r431084);
        double r431107 = r431106 * r431106;
        double r431108 = r431104 / r431107;
        double r431109 = r431091 / r431106;
        double r431110 = r431108 * r431109;
        double r431111 = r431105 * r431110;
        double r431112 = r431092 * r431111;
        double r431113 = r431090 + r431112;
        double r431114 = r431094 * r431085;
        double r431115 = r431090 + r431114;
        double r431116 = r431103 ? r431113 : r431115;
        double r431117 = r431089 ? r431101 : r431116;
        return r431117;
}

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

Original1.9
Target2.2
Herbie2.7
\[\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 t) < -1.0094538743985753e-18

    1. Initial program 3.5

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

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

      \[\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}\]
    5. Applied times-frac4.4

      \[\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)}\]
    6. Applied associate-*r*6.9

      \[\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}}\]
    7. Simplified6.9

      \[\leadsto x + \color{blue}{\left(\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \left(y - x\right)\right)} \cdot \frac{\sqrt[3]{z}}{t}\]
    8. Using strategy rm
    9. Applied add-cube-cbrt7.1

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

    if -1.0094538743985753e-18 < (/ z t) < 0.0

    1. Initial program 0.9

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

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

      \[\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}\]
    5. Applied times-frac1.1

      \[\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)}\]
    6. Applied associate-*r*3.4

      \[\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}}\]
    7. Simplified3.4

      \[\leadsto x + \color{blue}{\left(\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \left(y - x\right)\right)} \cdot \frac{\sqrt[3]{z}}{t}\]
    8. Using strategy rm
    9. Applied associate-*l*2.2

      \[\leadsto x + \color{blue}{\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \left(\left(y - x\right) \cdot \frac{\sqrt[3]{z}}{t}\right)}\]
    10. Using strategy rm
    11. Applied add-cube-cbrt2.2

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

      \[\leadsto x + \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \color{blue}{\left(\left(\sqrt[3]{y - x} \cdot \sqrt[3]{y - x}\right) \cdot \left(\sqrt[3]{y - x} \cdot \frac{\sqrt[3]{z}}{t}\right)\right)}\]
    13. Using strategy rm
    14. Applied add-cube-cbrt2.2

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

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

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

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

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

    if 0.0 < (/ z t)

    1. Initial program 2.0

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{z}{t} \le \frac{-5241384180875533}{5192296858534827628530496329220096}:\\ \;\;\;\;x + \left(\sqrt[3]{\left(\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \left(y - x\right)\right) \cdot \frac{\sqrt[3]{z}}{t}} \cdot \sqrt[3]{\left(\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \left(y - x\right)\right) \cdot \frac{\sqrt[3]{z}}{t}}\right) \cdot \sqrt[3]{\left(\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \left(y - x\right)\right) \cdot \frac{\sqrt[3]{z}}{t}}\\ \mathbf{elif}\;\frac{z}{t} \le 0.0:\\ \;\;\;\;x + \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \left(\left(\sqrt[3]{y - x} \cdot \sqrt[3]{y - x}\right) \cdot \left(\frac{\sqrt[3]{y - x}}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{\sqrt[3]{z}}{\sqrt[3]{t}}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;x + \left(y - x\right) \cdot \frac{z}{t}\\ \end{array}\]

Reproduce

herbie shell --seed 2019303 
(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))))