Average Error: 16.7 → 9.8
Time: 21.6s
Precision: 64
\[\left(x + y\right) - \frac{\left(z - t\right) \cdot y}{a - t}\]
\[\begin{array}{l} \mathbf{if}\;a \le -6.955680798979961680626772729670352712961 \cdot 10^{-126}:\\ \;\;\;\;\left(x + y\right) - \frac{\frac{z - t}{\sqrt[3]{a - t}}}{\sqrt[3]{a - t}} \cdot \frac{y}{\sqrt[3]{a - t}}\\ \mathbf{elif}\;a \le 3.079941655681878287412652690058055952037 \cdot 10^{-104}:\\ \;\;\;\;\frac{z \cdot y}{t} + x\\ \mathbf{else}:\\ \;\;\;\;\left(x + y\right) - \left(\frac{z - t}{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}} \cdot \left(\sqrt[3]{\frac{y}{\sqrt[3]{a - t}}} \cdot \sqrt[3]{\frac{y}{\sqrt[3]{a - t}}}\right)\right) \cdot \sqrt[3]{\frac{y}{\sqrt[3]{a - t}}}\\ \end{array}\]
\left(x + y\right) - \frac{\left(z - t\right) \cdot y}{a - t}
\begin{array}{l}
\mathbf{if}\;a \le -6.955680798979961680626772729670352712961 \cdot 10^{-126}:\\
\;\;\;\;\left(x + y\right) - \frac{\frac{z - t}{\sqrt[3]{a - t}}}{\sqrt[3]{a - t}} \cdot \frac{y}{\sqrt[3]{a - t}}\\

\mathbf{elif}\;a \le 3.079941655681878287412652690058055952037 \cdot 10^{-104}:\\
\;\;\;\;\frac{z \cdot y}{t} + x\\

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

\end{array}
double f(double x, double y, double z, double t, double a) {
        double r520086 = x;
        double r520087 = y;
        double r520088 = r520086 + r520087;
        double r520089 = z;
        double r520090 = t;
        double r520091 = r520089 - r520090;
        double r520092 = r520091 * r520087;
        double r520093 = a;
        double r520094 = r520093 - r520090;
        double r520095 = r520092 / r520094;
        double r520096 = r520088 - r520095;
        return r520096;
}

double f(double x, double y, double z, double t, double a) {
        double r520097 = a;
        double r520098 = -6.955680798979962e-126;
        bool r520099 = r520097 <= r520098;
        double r520100 = x;
        double r520101 = y;
        double r520102 = r520100 + r520101;
        double r520103 = z;
        double r520104 = t;
        double r520105 = r520103 - r520104;
        double r520106 = r520097 - r520104;
        double r520107 = cbrt(r520106);
        double r520108 = r520105 / r520107;
        double r520109 = r520108 / r520107;
        double r520110 = r520101 / r520107;
        double r520111 = r520109 * r520110;
        double r520112 = r520102 - r520111;
        double r520113 = 3.079941655681878e-104;
        bool r520114 = r520097 <= r520113;
        double r520115 = r520103 * r520101;
        double r520116 = r520115 / r520104;
        double r520117 = r520116 + r520100;
        double r520118 = r520107 * r520107;
        double r520119 = r520105 / r520118;
        double r520120 = cbrt(r520110);
        double r520121 = r520120 * r520120;
        double r520122 = r520119 * r520121;
        double r520123 = r520122 * r520120;
        double r520124 = r520102 - r520123;
        double r520125 = r520114 ? r520117 : r520124;
        double r520126 = r520099 ? r520112 : r520125;
        return r520126;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Bits error versus a

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original16.7
Target8.6
Herbie9.8
\[\begin{array}{l} \mathbf{if}\;\left(x + y\right) - \frac{\left(z - t\right) \cdot y}{a - t} \lt -1.366497088939072697550672266103566343531 \cdot 10^{-7}:\\ \;\;\;\;\left(y + x\right) - \left(\left(z - t\right) \cdot \frac{1}{a - t}\right) \cdot y\\ \mathbf{elif}\;\left(x + y\right) - \frac{\left(z - t\right) \cdot y}{a - t} \lt 1.475429344457723334351036314450840066235 \cdot 10^{-239}:\\ \;\;\;\;\frac{y \cdot \left(a - z\right) - x \cdot t}{a - t}\\ \mathbf{else}:\\ \;\;\;\;\left(y + x\right) - \left(\left(z - t\right) \cdot \frac{1}{a - t}\right) \cdot y\\ \end{array}\]

Derivation

  1. Split input into 3 regimes
  2. if a < -6.955680798979962e-126

    1. Initial program 15.4

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

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

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

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

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

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

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

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

    if -6.955680798979962e-126 < a < 3.079941655681878e-104

    1. Initial program 20.4

      \[\left(x + y\right) - \frac{\left(z - t\right) \cdot y}{a - t}\]
    2. Taylor expanded around inf 12.1

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

    if 3.079941655681878e-104 < a

    1. Initial program 15.2

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

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

      \[\leadsto \left(x + y\right) - \color{blue}{\frac{z - t}{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}} \cdot \frac{y}{\sqrt[3]{a - t}}}\]
    5. Using strategy rm
    6. Applied add-cube-cbrt8.6

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

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

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

Reproduce

herbie shell --seed 2019305 
(FPCore (x y z t a)
  :name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisTick from plot-0.2.3.4, B"
  :precision binary64

  :herbie-target
  (if (< (- (+ x y) (/ (* (- z t) y) (- a t))) -1.3664970889390727e-7) (- (+ y x) (* (* (- z t) (/ 1 (- a t))) y)) (if (< (- (+ x y) (/ (* (- z t) y) (- a t))) 1.47542934445772333e-239) (/ (- (* y (- a z)) (* x t)) (- a t)) (- (+ y x) (* (* (- z t) (/ 1 (- a t))) y))))

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