Average Error: 2.0 → 1.1
Time: 12.9s
Precision: 64
\[x + \left(y - x\right) \cdot \frac{z}{t}\]
\[\left(\frac{\sqrt[3]{y - x}}{\sqrt[3]{t}} \cdot \frac{z}{\sqrt[3]{t}}\right) \cdot \frac{\sqrt[3]{y - x} \cdot \sqrt[3]{y - x}}{\sqrt[3]{t}} + x\]
x + \left(y - x\right) \cdot \frac{z}{t}
\left(\frac{\sqrt[3]{y - x}}{\sqrt[3]{t}} \cdot \frac{z}{\sqrt[3]{t}}\right) \cdot \frac{\sqrt[3]{y - x} \cdot \sqrt[3]{y - x}}{\sqrt[3]{t}} + x
double f(double x, double y, double z, double t) {
        double r11441089 = x;
        double r11441090 = y;
        double r11441091 = r11441090 - r11441089;
        double r11441092 = z;
        double r11441093 = t;
        double r11441094 = r11441092 / r11441093;
        double r11441095 = r11441091 * r11441094;
        double r11441096 = r11441089 + r11441095;
        return r11441096;
}

double f(double x, double y, double z, double t) {
        double r11441097 = y;
        double r11441098 = x;
        double r11441099 = r11441097 - r11441098;
        double r11441100 = cbrt(r11441099);
        double r11441101 = t;
        double r11441102 = cbrt(r11441101);
        double r11441103 = r11441100 / r11441102;
        double r11441104 = z;
        double r11441105 = r11441104 / r11441102;
        double r11441106 = r11441103 * r11441105;
        double r11441107 = r11441100 * r11441100;
        double r11441108 = r11441107 / r11441102;
        double r11441109 = r11441106 * r11441108;
        double r11441110 = r11441109 + r11441098;
        return r11441110;
}

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.1
Herbie1.1
\[\begin{array}{l} \mathbf{if}\;\left(y - x\right) \cdot \frac{z}{t} \lt -1013646692435.8867:\\ \;\;\;\;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. Initial program 2.0

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

    \[\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-identity2.5

    \[\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-frac2.5

    \[\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*4.5

    \[\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. Simplified4.5

    \[\leadsto x + \color{blue}{\frac{y - x}{\sqrt[3]{t} \cdot \sqrt[3]{t}}} \cdot \frac{z}{\sqrt[3]{t}}\]
  8. Using strategy rm
  9. Applied add-cube-cbrt4.6

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

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

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

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

Reproduce

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