Average Error: 10.6 → 0.3
Time: 4.4s
Precision: 64
\[x + \frac{y \cdot \left(z - t\right)}{a - t}\]
\[\begin{array}{l} \mathbf{if}\;x + \frac{y \cdot \left(z - t\right)}{a - t} = -\infty:\\ \;\;\;\;\left(y \cdot \left(\frac{1}{a - t} \cdot z\right) + \left(-t\right) \cdot \frac{y}{a - t}\right) + x\\ \mathbf{elif}\;x + \frac{y \cdot \left(z - t\right)}{a - t} \le 4.9667000117107553 \cdot 10^{294}:\\ \;\;\;\;x + \frac{y \cdot \left(z - t\right)}{a - t}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{y}{a - t} \cdot z + \left(-t\right) \cdot \frac{1}{\frac{a - t}{y}}\right) + x\\ \end{array}\]
x + \frac{y \cdot \left(z - t\right)}{a - t}
\begin{array}{l}
\mathbf{if}\;x + \frac{y \cdot \left(z - t\right)}{a - t} = -\infty:\\
\;\;\;\;\left(y \cdot \left(\frac{1}{a - t} \cdot z\right) + \left(-t\right) \cdot \frac{y}{a - t}\right) + x\\

\mathbf{elif}\;x + \frac{y \cdot \left(z - t\right)}{a - t} \le 4.9667000117107553 \cdot 10^{294}:\\
\;\;\;\;x + \frac{y \cdot \left(z - t\right)}{a - t}\\

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

\end{array}
double f(double x, double y, double z, double t, double a) {
        double r842631 = x;
        double r842632 = y;
        double r842633 = z;
        double r842634 = t;
        double r842635 = r842633 - r842634;
        double r842636 = r842632 * r842635;
        double r842637 = a;
        double r842638 = r842637 - r842634;
        double r842639 = r842636 / r842638;
        double r842640 = r842631 + r842639;
        return r842640;
}

double f(double x, double y, double z, double t, double a) {
        double r842641 = x;
        double r842642 = y;
        double r842643 = z;
        double r842644 = t;
        double r842645 = r842643 - r842644;
        double r842646 = r842642 * r842645;
        double r842647 = a;
        double r842648 = r842647 - r842644;
        double r842649 = r842646 / r842648;
        double r842650 = r842641 + r842649;
        double r842651 = -inf.0;
        bool r842652 = r842650 <= r842651;
        double r842653 = 1.0;
        double r842654 = r842653 / r842648;
        double r842655 = r842654 * r842643;
        double r842656 = r842642 * r842655;
        double r842657 = -r842644;
        double r842658 = r842642 / r842648;
        double r842659 = r842657 * r842658;
        double r842660 = r842656 + r842659;
        double r842661 = r842660 + r842641;
        double r842662 = 4.9667000117107553e+294;
        bool r842663 = r842650 <= r842662;
        double r842664 = r842658 * r842643;
        double r842665 = r842648 / r842642;
        double r842666 = r842653 / r842665;
        double r842667 = r842657 * r842666;
        double r842668 = r842664 + r842667;
        double r842669 = r842668 + r842641;
        double r842670 = r842663 ? r842650 : r842669;
        double r842671 = r842652 ? r842661 : r842670;
        return r842671;
}

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

Original10.6
Target1.3
Herbie0.3
\[x + \frac{y}{\frac{a - t}{z - t}}\]

Derivation

  1. Split input into 3 regimes
  2. if (+ x (/ (* y (- z t)) (- a t))) < -inf.0

    1. Initial program 64.0

      \[x + \frac{y \cdot \left(z - t\right)}{a - t}\]
    2. Simplified0.2

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y}{a - t}, z - t, x\right)}\]
    3. Using strategy rm
    4. Applied div-inv0.3

      \[\leadsto \mathsf{fma}\left(\color{blue}{y \cdot \frac{1}{a - t}}, z - t, x\right)\]
    5. Using strategy rm
    6. Applied add-cube-cbrt1.1

      \[\leadsto \mathsf{fma}\left(y \cdot \frac{1}{\color{blue}{\left(\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}\right) \cdot \sqrt[3]{a - t}}}, z - t, x\right)\]
    7. Applied *-un-lft-identity1.1

      \[\leadsto \mathsf{fma}\left(y \cdot \frac{\color{blue}{1 \cdot 1}}{\left(\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}\right) \cdot \sqrt[3]{a - t}}, z - t, x\right)\]
    8. Applied times-frac1.1

      \[\leadsto \mathsf{fma}\left(y \cdot \color{blue}{\left(\frac{1}{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}} \cdot \frac{1}{\sqrt[3]{a - t}}\right)}, z - t, x\right)\]
    9. Applied associate-*r*1.1

      \[\leadsto \mathsf{fma}\left(\color{blue}{\left(y \cdot \frac{1}{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}}\right) \cdot \frac{1}{\sqrt[3]{a - t}}}, z - t, x\right)\]
    10. Simplified1.1

      \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{y}{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}}} \cdot \frac{1}{\sqrt[3]{a - t}}, z - t, x\right)\]
    11. Using strategy rm
    12. Applied fma-udef1.1

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

      \[\leadsto \color{blue}{\left(\frac{y}{a - t} \cdot z + \left(-t\right) \cdot \frac{y}{a - t}\right)} + x\]
    14. Using strategy rm
    15. Applied div-inv0.2

      \[\leadsto \left(\color{blue}{\left(y \cdot \frac{1}{a - t}\right)} \cdot z + \left(-t\right) \cdot \frac{y}{a - t}\right) + x\]
    16. Applied associate-*l*0.2

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

    if -inf.0 < (+ x (/ (* y (- z t)) (- a t))) < 4.9667000117107553e+294

    1. Initial program 0.3

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

    if 4.9667000117107553e+294 < (+ x (/ (* y (- z t)) (- a t)))

    1. Initial program 55.4

      \[x + \frac{y \cdot \left(z - t\right)}{a - t}\]
    2. Simplified0.8

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y}{a - t}, z - t, x\right)}\]
    3. Using strategy rm
    4. Applied div-inv0.9

      \[\leadsto \mathsf{fma}\left(\color{blue}{y \cdot \frac{1}{a - t}}, z - t, x\right)\]
    5. Using strategy rm
    6. Applied add-cube-cbrt1.6

      \[\leadsto \mathsf{fma}\left(y \cdot \frac{1}{\color{blue}{\left(\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}\right) \cdot \sqrt[3]{a - t}}}, z - t, x\right)\]
    7. Applied *-un-lft-identity1.6

      \[\leadsto \mathsf{fma}\left(y \cdot \frac{\color{blue}{1 \cdot 1}}{\left(\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}\right) \cdot \sqrt[3]{a - t}}, z - t, x\right)\]
    8. Applied times-frac1.6

      \[\leadsto \mathsf{fma}\left(y \cdot \color{blue}{\left(\frac{1}{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}} \cdot \frac{1}{\sqrt[3]{a - t}}\right)}, z - t, x\right)\]
    9. Applied associate-*r*1.6

      \[\leadsto \mathsf{fma}\left(\color{blue}{\left(y \cdot \frac{1}{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}}\right) \cdot \frac{1}{\sqrt[3]{a - t}}}, z - t, x\right)\]
    10. Simplified1.6

      \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{y}{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}}} \cdot \frac{1}{\sqrt[3]{a - t}}, z - t, x\right)\]
    11. Using strategy rm
    12. Applied fma-udef1.6

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

      \[\leadsto \color{blue}{\left(\frac{y}{a - t} \cdot z + \left(-t\right) \cdot \frac{y}{a - t}\right)} + x\]
    14. Using strategy rm
    15. Applied clear-num0.9

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x + \frac{y \cdot \left(z - t\right)}{a - t} = -\infty:\\ \;\;\;\;\left(y \cdot \left(\frac{1}{a - t} \cdot z\right) + \left(-t\right) \cdot \frac{y}{a - t}\right) + x\\ \mathbf{elif}\;x + \frac{y \cdot \left(z - t\right)}{a - t} \le 4.9667000117107553 \cdot 10^{294}:\\ \;\;\;\;x + \frac{y \cdot \left(z - t\right)}{a - t}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{y}{a - t} \cdot z + \left(-t\right) \cdot \frac{1}{\frac{a - t}{y}}\right) + x\\ \end{array}\]

Reproduce

herbie shell --seed 2020034 +o rules:numerics
(FPCore (x y z t a)
  :name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisTicks from plot-0.2.3.4, B"
  :precision binary64

  :herbie-target
  (+ x (/ y (/ (- a t) (- z t))))

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