Average Error: 16.4 → 9.4
Time: 23.1s
Precision: 64
\[\left(x + y\right) - \frac{\left(z - t\right) \cdot y}{a - t}\]
\[\begin{array}{l} \mathbf{if}\;a \le -7.762846694516815689795684444770363141674 \cdot 10^{-88}:\\ \;\;\;\;\left(x + y\right) - \left(\frac{z - t}{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}} \cdot \frac{\sqrt[3]{y} \cdot \sqrt[3]{y}}{\sqrt[3]{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}}}\right) \cdot \frac{\sqrt[3]{y}}{\sqrt[3]{\sqrt[3]{a - t}}}\\ \mathbf{elif}\;a \le 2.063469954457163314666352429351978120832 \cdot 10^{-108}:\\ \;\;\;\;x + \frac{z \cdot y}{t}\\ \mathbf{else}:\\ \;\;\;\;\left(x + y\right) - \left(\frac{z - t}{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}} \cdot \frac{\sqrt[3]{y} \cdot \sqrt[3]{y}}{\sqrt[3]{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}}}\right) \cdot \frac{\sqrt[3]{y}}{\sqrt[3]{\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 -7.762846694516815689795684444770363141674 \cdot 10^{-88}:\\
\;\;\;\;\left(x + y\right) - \left(\frac{z - t}{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}} \cdot \frac{\sqrt[3]{y} \cdot \sqrt[3]{y}}{\sqrt[3]{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}}}\right) \cdot \frac{\sqrt[3]{y}}{\sqrt[3]{\sqrt[3]{a - t}}}\\

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

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

\end{array}
double f(double x, double y, double z, double t, double a) {
        double r29643751 = x;
        double r29643752 = y;
        double r29643753 = r29643751 + r29643752;
        double r29643754 = z;
        double r29643755 = t;
        double r29643756 = r29643754 - r29643755;
        double r29643757 = r29643756 * r29643752;
        double r29643758 = a;
        double r29643759 = r29643758 - r29643755;
        double r29643760 = r29643757 / r29643759;
        double r29643761 = r29643753 - r29643760;
        return r29643761;
}

double f(double x, double y, double z, double t, double a) {
        double r29643762 = a;
        double r29643763 = -7.762846694516816e-88;
        bool r29643764 = r29643762 <= r29643763;
        double r29643765 = x;
        double r29643766 = y;
        double r29643767 = r29643765 + r29643766;
        double r29643768 = z;
        double r29643769 = t;
        double r29643770 = r29643768 - r29643769;
        double r29643771 = r29643762 - r29643769;
        double r29643772 = cbrt(r29643771);
        double r29643773 = r29643772 * r29643772;
        double r29643774 = r29643770 / r29643773;
        double r29643775 = cbrt(r29643766);
        double r29643776 = r29643775 * r29643775;
        double r29643777 = cbrt(r29643773);
        double r29643778 = r29643776 / r29643777;
        double r29643779 = r29643774 * r29643778;
        double r29643780 = cbrt(r29643772);
        double r29643781 = r29643775 / r29643780;
        double r29643782 = r29643779 * r29643781;
        double r29643783 = r29643767 - r29643782;
        double r29643784 = 2.0634699544571633e-108;
        bool r29643785 = r29643762 <= r29643784;
        double r29643786 = r29643768 * r29643766;
        double r29643787 = r29643786 / r29643769;
        double r29643788 = r29643765 + r29643787;
        double r29643789 = r29643785 ? r29643788 : r29643783;
        double r29643790 = r29643764 ? r29643783 : r29643789;
        return r29643790;
}

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.4
Target8.6
Herbie9.4
\[\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 2 regimes
  2. if a < -7.762846694516816e-88 or 2.0634699544571633e-108 < a

    1. Initial program 14.7

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

      \[\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.3

      \[\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.3

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

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

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

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

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

    if -7.762846694516816e-88 < a < 2.0634699544571633e-108

    1. Initial program 20.3

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

      \[\leadsto \color{blue}{\frac{z \cdot y}{t} + x}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification9.4

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

Reproduce

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

  :herbie-target
  (if (< (- (+ x y) (/ (* (- z t) y) (- a t))) -1.3664970889390727e-07) (- (+ y x) (* (* (- z t) (/ 1.0 (- a t))) y)) (if (< (- (+ x y) (/ (* (- z t) y) (- a t))) 1.4754293444577233e-239) (/ (- (* y (- a z)) (* x t)) (- a t)) (- (+ y x) (* (* (- z t) (/ 1.0 (- a t))) y))))

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