Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisTicks from plot-0.2.3.4, B

Percentage Accurate: 85.4% → 96.9%
Time: 10.5s
Alternatives: 12
Speedup: 1.1×

Specification

?
\[\begin{array}{l} \\ x + \frac{y \cdot \left(z - t\right)}{a - t} \end{array} \]
(FPCore (x y z t a) :precision binary64 (+ x (/ (* y (- z t)) (- a t))))
double code(double x, double y, double z, double t, double a) {
	return x + ((y * (z - t)) / (a - t));
}
real(8) function code(x, y, z, t, a)
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    real(8), intent (in) :: t
    real(8), intent (in) :: a
    code = x + ((y * (z - t)) / (a - t))
end function
public static double code(double x, double y, double z, double t, double a) {
	return x + ((y * (z - t)) / (a - t));
}
def code(x, y, z, t, a):
	return x + ((y * (z - t)) / (a - t))
function code(x, y, z, t, a)
	return Float64(x + Float64(Float64(y * Float64(z - t)) / Float64(a - t)))
end
function tmp = code(x, y, z, t, a)
	tmp = x + ((y * (z - t)) / (a - t));
end
code[x_, y_, z_, t_, a_] := N[(x + N[(N[(y * N[(z - t), $MachinePrecision]), $MachinePrecision] / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

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

Sampling outcomes in binary64 precision:

Local Percentage Accuracy vs ?

The average percentage accuracy by input value. Horizontal axis shows value of an input variable; the variable is choosen in the title. Vertical axis is accuracy; higher is better. Red represent the original program, while blue represents Herbie's suggestion. These can be toggled with buttons below the plot. The line is an average while dots represent individual samples.

Accuracy vs Speed?

Herbie found 12 alternatives:

AlternativeAccuracySpeedup
The accuracy (vertical axis) and speed (horizontal axis) of each alternatives. Up and to the right is better. The red square shows the initial program, and each blue circle shows an alternative.The line shows the best available speed-accuracy tradeoffs.

Initial Program: 85.4% accurate, 1.0× speedup?

\[\begin{array}{l} \\ x + \frac{y \cdot \left(z - t\right)}{a - t} \end{array} \]
(FPCore (x y z t a) :precision binary64 (+ x (/ (* y (- z t)) (- a t))))
double code(double x, double y, double z, double t, double a) {
	return x + ((y * (z - t)) / (a - t));
}
real(8) function code(x, y, z, t, a)
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    real(8), intent (in) :: t
    real(8), intent (in) :: a
    code = x + ((y * (z - t)) / (a - t))
end function
public static double code(double x, double y, double z, double t, double a) {
	return x + ((y * (z - t)) / (a - t));
}
def code(x, y, z, t, a):
	return x + ((y * (z - t)) / (a - t))
function code(x, y, z, t, a)
	return Float64(x + Float64(Float64(y * Float64(z - t)) / Float64(a - t)))
end
function tmp = code(x, y, z, t, a)
	tmp = x + ((y * (z - t)) / (a - t));
end
code[x_, y_, z_, t_, a_] := N[(x + N[(N[(y * N[(z - t), $MachinePrecision]), $MachinePrecision] / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

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

Alternative 1: 96.9% accurate, 0.7× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;t \leq 7 \cdot 10^{-142}:\\ \;\;\;\;\mathsf{fma}\left(\frac{y}{a - t}, z - t, x\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{t - a}, x\right)\\ \end{array} \end{array} \]
(FPCore (x y z t a)
 :precision binary64
 (if (<= t 7e-142)
   (fma (/ y (- a t)) (- z t) x)
   (fma (- 0.0 y) (* (- z t) (/ 1.0 (- t a))) x)))
double code(double x, double y, double z, double t, double a) {
	double tmp;
	if (t <= 7e-142) {
		tmp = fma((y / (a - t)), (z - t), x);
	} else {
		tmp = fma((0.0 - y), ((z - t) * (1.0 / (t - a))), x);
	}
	return tmp;
}
function code(x, y, z, t, a)
	tmp = 0.0
	if (t <= 7e-142)
		tmp = fma(Float64(y / Float64(a - t)), Float64(z - t), x);
	else
		tmp = fma(Float64(0.0 - y), Float64(Float64(z - t) * Float64(1.0 / Float64(t - a))), x);
	end
	return tmp
end
code[x_, y_, z_, t_, a_] := If[LessEqual[t, 7e-142], N[(N[(y / N[(a - t), $MachinePrecision]), $MachinePrecision] * N[(z - t), $MachinePrecision] + x), $MachinePrecision], N[(N[(0.0 - y), $MachinePrecision] * N[(N[(z - t), $MachinePrecision] * N[(1.0 / N[(t - a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + x), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;t \leq 7 \cdot 10^{-142}:\\
\;\;\;\;\mathsf{fma}\left(\frac{y}{a - t}, z - t, x\right)\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if t < 7.00000000000000029e-142

    1. Initial program 84.1%

      \[x + \frac{y \cdot \left(z - t\right)}{a - t} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto \color{blue}{\frac{y \cdot \left(z - t\right)}{a - t} + x} \]
      2. *-commutativeN/A

        \[\leadsto \frac{\color{blue}{\left(z - t\right) \cdot y}}{a - t} + x \]
      3. associate-/l*N/A

        \[\leadsto \color{blue}{\left(z - t\right) \cdot \frac{y}{a - t}} + x \]
      4. *-commutativeN/A

        \[\leadsto \color{blue}{\frac{y}{a - t} \cdot \left(z - t\right)} + x \]
      5. accelerator-lowering-fma.f64N/A

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y}{a - t}, z - t, x\right)} \]
      6. /-lowering-/.f64N/A

        \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{y}{a - t}}, z - t, x\right) \]
      7. --lowering--.f64N/A

        \[\leadsto \mathsf{fma}\left(\frac{y}{\color{blue}{a - t}}, z - t, x\right) \]
      8. --lowering--.f6498.6

        \[\leadsto \mathsf{fma}\left(\frac{y}{a - t}, \color{blue}{z - t}, x\right) \]
    4. Applied egg-rr98.6%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y}{a - t}, z - t, x\right)} \]

    if 7.00000000000000029e-142 < t

    1. Initial program 85.4%

      \[x + \frac{y \cdot \left(z - t\right)}{a - t} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto \color{blue}{\frac{y \cdot \left(z - t\right)}{a - t} + x} \]
      2. frac-2negN/A

        \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(y \cdot \left(z - t\right)\right)}{\mathsf{neg}\left(\left(a - t\right)\right)}} + x \]
      3. div-invN/A

        \[\leadsto \color{blue}{\left(\mathsf{neg}\left(y \cdot \left(z - t\right)\right)\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}} + x \]
      4. distribute-lft-neg-inN/A

        \[\leadsto \color{blue}{\left(\left(\mathsf{neg}\left(y\right)\right) \cdot \left(z - t\right)\right)} \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)} + x \]
      5. associate-*l*N/A

        \[\leadsto \color{blue}{\left(\mathsf{neg}\left(y\right)\right) \cdot \left(\left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}\right)} + x \]
      6. accelerator-lowering-fma.f64N/A

        \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{neg}\left(y\right), \left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right)} \]
      7. neg-sub0N/A

        \[\leadsto \mathsf{fma}\left(\color{blue}{0 - y}, \left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right) \]
      8. --lowering--.f64N/A

        \[\leadsto \mathsf{fma}\left(\color{blue}{0 - y}, \left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right) \]
      9. *-lowering-*.f64N/A

        \[\leadsto \mathsf{fma}\left(0 - y, \color{blue}{\left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}}, x\right) \]
      10. --lowering--.f64N/A

        \[\leadsto \mathsf{fma}\left(0 - y, \color{blue}{\left(z - t\right)} \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right) \]
      11. /-lowering-/.f64N/A

        \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \color{blue}{\frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}}, x\right) \]
      12. neg-sub0N/A

        \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{0 - \left(a - t\right)}}, x\right) \]
      13. sub-negN/A

        \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{0 - \color{blue}{\left(a + \left(\mathsf{neg}\left(t\right)\right)\right)}}, x\right) \]
      14. +-commutativeN/A

        \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{0 - \color{blue}{\left(\left(\mathsf{neg}\left(t\right)\right) + a\right)}}, x\right) \]
      15. associate--r+N/A

        \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{\left(0 - \left(\mathsf{neg}\left(t\right)\right)\right) - a}}, x\right) \]
      16. neg-sub0N/A

        \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{\left(\mathsf{neg}\left(\left(\mathsf{neg}\left(t\right)\right)\right)\right)} - a}, x\right) \]
      17. remove-double-negN/A

        \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{t} - a}, x\right) \]
      18. --lowering--.f6499.8

        \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{t - a}}, x\right) \]
    4. Applied egg-rr99.8%

      \[\leadsto \color{blue}{\mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{t - a}, x\right)} \]
  3. Recombined 2 regimes into one program.
  4. Add Preprocessing

Alternative 2: 76.1% accurate, 0.7× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;t \leq -26500000000:\\ \;\;\;\;y + x\\ \mathbf{elif}\;t \leq 4.5 \cdot 10^{-96}:\\ \;\;\;\;\mathsf{fma}\left(z, \frac{y}{a}, x\right)\\ \mathbf{elif}\;t \leq 6.8 \cdot 10^{+168}:\\ \;\;\;\;x - \frac{y \cdot z}{t}\\ \mathbf{else}:\\ \;\;\;\;y + x\\ \end{array} \end{array} \]
(FPCore (x y z t a)
 :precision binary64
 (if (<= t -26500000000.0)
   (+ y x)
   (if (<= t 4.5e-96)
     (fma z (/ y a) x)
     (if (<= t 6.8e+168) (- x (/ (* y z) t)) (+ y x)))))
double code(double x, double y, double z, double t, double a) {
	double tmp;
	if (t <= -26500000000.0) {
		tmp = y + x;
	} else if (t <= 4.5e-96) {
		tmp = fma(z, (y / a), x);
	} else if (t <= 6.8e+168) {
		tmp = x - ((y * z) / t);
	} else {
		tmp = y + x;
	}
	return tmp;
}
function code(x, y, z, t, a)
	tmp = 0.0
	if (t <= -26500000000.0)
		tmp = Float64(y + x);
	elseif (t <= 4.5e-96)
		tmp = fma(z, Float64(y / a), x);
	elseif (t <= 6.8e+168)
		tmp = Float64(x - Float64(Float64(y * z) / t));
	else
		tmp = Float64(y + x);
	end
	return tmp
end
code[x_, y_, z_, t_, a_] := If[LessEqual[t, -26500000000.0], N[(y + x), $MachinePrecision], If[LessEqual[t, 4.5e-96], N[(z * N[(y / a), $MachinePrecision] + x), $MachinePrecision], If[LessEqual[t, 6.8e+168], N[(x - N[(N[(y * z), $MachinePrecision] / t), $MachinePrecision]), $MachinePrecision], N[(y + x), $MachinePrecision]]]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;t \leq -26500000000:\\
\;\;\;\;y + x\\

\mathbf{elif}\;t \leq 4.5 \cdot 10^{-96}:\\
\;\;\;\;\mathsf{fma}\left(z, \frac{y}{a}, x\right)\\

\mathbf{elif}\;t \leq 6.8 \cdot 10^{+168}:\\
\;\;\;\;x - \frac{y \cdot z}{t}\\

\mathbf{else}:\\
\;\;\;\;y + x\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if t < -2.65e10 or 6.80000000000000005e168 < t

    1. Initial program 73.6%

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

      \[\leadsto \color{blue}{x + y} \]
    4. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto \color{blue}{y + x} \]
      2. +-lowering-+.f6475.5

        \[\leadsto \color{blue}{y + x} \]
    5. Simplified75.5%

      \[\leadsto \color{blue}{y + x} \]

    if -2.65e10 < t < 4.5e-96

    1. Initial program 92.0%

      \[x + \frac{y \cdot \left(z - t\right)}{a - t} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto \color{blue}{\frac{y \cdot \left(z - t\right)}{a - t} + x} \]
      2. frac-2negN/A

        \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(y \cdot \left(z - t\right)\right)}{\mathsf{neg}\left(\left(a - t\right)\right)}} + x \]
      3. div-invN/A

        \[\leadsto \color{blue}{\left(\mathsf{neg}\left(y \cdot \left(z - t\right)\right)\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}} + x \]
      4. distribute-lft-neg-inN/A

        \[\leadsto \color{blue}{\left(\left(\mathsf{neg}\left(y\right)\right) \cdot \left(z - t\right)\right)} \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)} + x \]
      5. associate-*l*N/A

        \[\leadsto \color{blue}{\left(\mathsf{neg}\left(y\right)\right) \cdot \left(\left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}\right)} + x \]
      6. accelerator-lowering-fma.f64N/A

        \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{neg}\left(y\right), \left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right)} \]
      7. neg-sub0N/A

        \[\leadsto \mathsf{fma}\left(\color{blue}{0 - y}, \left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right) \]
      8. --lowering--.f64N/A

        \[\leadsto \mathsf{fma}\left(\color{blue}{0 - y}, \left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right) \]
      9. *-lowering-*.f64N/A

        \[\leadsto \mathsf{fma}\left(0 - y, \color{blue}{\left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}}, x\right) \]
      10. --lowering--.f64N/A

        \[\leadsto \mathsf{fma}\left(0 - y, \color{blue}{\left(z - t\right)} \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right) \]
      11. /-lowering-/.f64N/A

        \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \color{blue}{\frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}}, x\right) \]
      12. neg-sub0N/A

        \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{0 - \left(a - t\right)}}, x\right) \]
      13. sub-negN/A

        \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{0 - \color{blue}{\left(a + \left(\mathsf{neg}\left(t\right)\right)\right)}}, x\right) \]
      14. +-commutativeN/A

        \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{0 - \color{blue}{\left(\left(\mathsf{neg}\left(t\right)\right) + a\right)}}, x\right) \]
      15. associate--r+N/A

        \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{\left(0 - \left(\mathsf{neg}\left(t\right)\right)\right) - a}}, x\right) \]
      16. neg-sub0N/A

        \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{\left(\mathsf{neg}\left(\left(\mathsf{neg}\left(t\right)\right)\right)\right)} - a}, x\right) \]
      17. remove-double-negN/A

        \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{t} - a}, x\right) \]
      18. --lowering--.f6493.8

        \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{t - a}}, x\right) \]
    4. Applied egg-rr93.8%

      \[\leadsto \color{blue}{\mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{t - a}, x\right)} \]
    5. Taylor expanded in t around 0

      \[\leadsto \color{blue}{x + \frac{y \cdot z}{a}} \]
    6. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto \color{blue}{\frac{y \cdot z}{a} + x} \]
      2. *-commutativeN/A

        \[\leadsto \frac{\color{blue}{z \cdot y}}{a} + x \]
      3. associate-*r/N/A

        \[\leadsto \color{blue}{z \cdot \frac{y}{a}} + x \]
      4. accelerator-lowering-fma.f64N/A

        \[\leadsto \color{blue}{\mathsf{fma}\left(z, \frac{y}{a}, x\right)} \]
      5. /-lowering-/.f6482.7

        \[\leadsto \mathsf{fma}\left(z, \color{blue}{\frac{y}{a}}, x\right) \]
    7. Simplified82.7%

      \[\leadsto \color{blue}{\mathsf{fma}\left(z, \frac{y}{a}, x\right)} \]

    if 4.5e-96 < t < 6.80000000000000005e168

    1. Initial program 89.0%

      \[x + \frac{y \cdot \left(z - t\right)}{a - t} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto \color{blue}{\frac{y \cdot \left(z - t\right)}{a - t} + x} \]
      2. *-commutativeN/A

        \[\leadsto \frac{\color{blue}{\left(z - t\right) \cdot y}}{a - t} + x \]
      3. associate-/l*N/A

        \[\leadsto \color{blue}{\left(z - t\right) \cdot \frac{y}{a - t}} + x \]
      4. *-commutativeN/A

        \[\leadsto \color{blue}{\frac{y}{a - t} \cdot \left(z - t\right)} + x \]
      5. accelerator-lowering-fma.f64N/A

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y}{a - t}, z - t, x\right)} \]
      6. /-lowering-/.f64N/A

        \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{y}{a - t}}, z - t, x\right) \]
      7. --lowering--.f64N/A

        \[\leadsto \mathsf{fma}\left(\frac{y}{\color{blue}{a - t}}, z - t, x\right) \]
      8. --lowering--.f6494.4

        \[\leadsto \mathsf{fma}\left(\frac{y}{a - t}, \color{blue}{z - t}, x\right) \]
    4. Applied egg-rr94.4%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y}{a - t}, z - t, x\right)} \]
    5. Taylor expanded in z around inf

      \[\leadsto \mathsf{fma}\left(\frac{y}{a - t}, \color{blue}{z}, x\right) \]
    6. Step-by-step derivation
      1. Simplified77.9%

        \[\leadsto \mathsf{fma}\left(\frac{y}{a - t}, \color{blue}{z}, x\right) \]
      2. Taylor expanded in a around 0

        \[\leadsto \color{blue}{x + -1 \cdot \frac{y \cdot z}{t}} \]
      3. Step-by-step derivation
        1. mul-1-negN/A

          \[\leadsto x + \color{blue}{\left(\mathsf{neg}\left(\frac{y \cdot z}{t}\right)\right)} \]
        2. unsub-negN/A

          \[\leadsto \color{blue}{x - \frac{y \cdot z}{t}} \]
        3. --lowering--.f64N/A

          \[\leadsto \color{blue}{x - \frac{y \cdot z}{t}} \]
        4. /-lowering-/.f64N/A

          \[\leadsto x - \color{blue}{\frac{y \cdot z}{t}} \]
        5. *-lowering-*.f6472.5

          \[\leadsto x - \frac{\color{blue}{y \cdot z}}{t} \]
      4. Simplified72.5%

        \[\leadsto \color{blue}{x - \frac{y \cdot z}{t}} \]
    7. Recombined 3 regimes into one program.
    8. Add Preprocessing

    Alternative 3: 87.8% accurate, 0.8× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} t_1 := \mathsf{fma}\left(\frac{y}{a - t}, z, x\right)\\ \mathbf{if}\;z \leq -2 \cdot 10^{+76}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;z \leq 3.9 \cdot 10^{-8}:\\ \;\;\;\;\mathsf{fma}\left(y, \frac{t}{t - a}, x\right)\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
    (FPCore (x y z t a)
     :precision binary64
     (let* ((t_1 (fma (/ y (- a t)) z x)))
       (if (<= z -2e+76) t_1 (if (<= z 3.9e-8) (fma y (/ t (- t a)) x) t_1))))
    double code(double x, double y, double z, double t, double a) {
    	double t_1 = fma((y / (a - t)), z, x);
    	double tmp;
    	if (z <= -2e+76) {
    		tmp = t_1;
    	} else if (z <= 3.9e-8) {
    		tmp = fma(y, (t / (t - a)), x);
    	} else {
    		tmp = t_1;
    	}
    	return tmp;
    }
    
    function code(x, y, z, t, a)
    	t_1 = fma(Float64(y / Float64(a - t)), z, x)
    	tmp = 0.0
    	if (z <= -2e+76)
    		tmp = t_1;
    	elseif (z <= 3.9e-8)
    		tmp = fma(y, Float64(t / Float64(t - a)), x);
    	else
    		tmp = t_1;
    	end
    	return tmp
    end
    
    code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(N[(y / N[(a - t), $MachinePrecision]), $MachinePrecision] * z + x), $MachinePrecision]}, If[LessEqual[z, -2e+76], t$95$1, If[LessEqual[z, 3.9e-8], N[(y * N[(t / N[(t - a), $MachinePrecision]), $MachinePrecision] + x), $MachinePrecision], t$95$1]]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    t_1 := \mathsf{fma}\left(\frac{y}{a - t}, z, x\right)\\
    \mathbf{if}\;z \leq -2 \cdot 10^{+76}:\\
    \;\;\;\;t\_1\\
    
    \mathbf{elif}\;z \leq 3.9 \cdot 10^{-8}:\\
    \;\;\;\;\mathsf{fma}\left(y, \frac{t}{t - a}, x\right)\\
    
    \mathbf{else}:\\
    \;\;\;\;t\_1\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 2 regimes
    2. if z < -2.0000000000000001e76 or 3.89999999999999985e-8 < z

      1. Initial program 85.0%

        \[x + \frac{y \cdot \left(z - t\right)}{a - t} \]
      2. Add Preprocessing
      3. Step-by-step derivation
        1. +-commutativeN/A

          \[\leadsto \color{blue}{\frac{y \cdot \left(z - t\right)}{a - t} + x} \]
        2. *-commutativeN/A

          \[\leadsto \frac{\color{blue}{\left(z - t\right) \cdot y}}{a - t} + x \]
        3. associate-/l*N/A

          \[\leadsto \color{blue}{\left(z - t\right) \cdot \frac{y}{a - t}} + x \]
        4. *-commutativeN/A

          \[\leadsto \color{blue}{\frac{y}{a - t} \cdot \left(z - t\right)} + x \]
        5. accelerator-lowering-fma.f64N/A

          \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y}{a - t}, z - t, x\right)} \]
        6. /-lowering-/.f64N/A

          \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{y}{a - t}}, z - t, x\right) \]
        7. --lowering--.f64N/A

          \[\leadsto \mathsf{fma}\left(\frac{y}{\color{blue}{a - t}}, z - t, x\right) \]
        8. --lowering--.f6496.8

          \[\leadsto \mathsf{fma}\left(\frac{y}{a - t}, \color{blue}{z - t}, x\right) \]
      4. Applied egg-rr96.8%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y}{a - t}, z - t, x\right)} \]
      5. Taylor expanded in z around inf

        \[\leadsto \mathsf{fma}\left(\frac{y}{a - t}, \color{blue}{z}, x\right) \]
      6. Step-by-step derivation
        1. Simplified92.6%

          \[\leadsto \mathsf{fma}\left(\frac{y}{a - t}, \color{blue}{z}, x\right) \]

        if -2.0000000000000001e76 < z < 3.89999999999999985e-8

        1. Initial program 84.0%

          \[x + \frac{y \cdot \left(z - t\right)}{a - t} \]
        2. Add Preprocessing
        3. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto \color{blue}{\frac{y \cdot \left(z - t\right)}{a - t} + x} \]
          2. frac-2negN/A

            \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(y \cdot \left(z - t\right)\right)}{\mathsf{neg}\left(\left(a - t\right)\right)}} + x \]
          3. div-invN/A

            \[\leadsto \color{blue}{\left(\mathsf{neg}\left(y \cdot \left(z - t\right)\right)\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}} + x \]
          4. distribute-lft-neg-inN/A

            \[\leadsto \color{blue}{\left(\left(\mathsf{neg}\left(y\right)\right) \cdot \left(z - t\right)\right)} \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)} + x \]
          5. associate-*l*N/A

            \[\leadsto \color{blue}{\left(\mathsf{neg}\left(y\right)\right) \cdot \left(\left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}\right)} + x \]
          6. accelerator-lowering-fma.f64N/A

            \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{neg}\left(y\right), \left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right)} \]
          7. neg-sub0N/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{0 - y}, \left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right) \]
          8. --lowering--.f64N/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{0 - y}, \left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right) \]
          9. *-lowering-*.f64N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \color{blue}{\left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}}, x\right) \]
          10. --lowering--.f64N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \color{blue}{\left(z - t\right)} \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right) \]
          11. /-lowering-/.f64N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \color{blue}{\frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}}, x\right) \]
          12. neg-sub0N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{0 - \left(a - t\right)}}, x\right) \]
          13. sub-negN/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{0 - \color{blue}{\left(a + \left(\mathsf{neg}\left(t\right)\right)\right)}}, x\right) \]
          14. +-commutativeN/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{0 - \color{blue}{\left(\left(\mathsf{neg}\left(t\right)\right) + a\right)}}, x\right) \]
          15. associate--r+N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{\left(0 - \left(\mathsf{neg}\left(t\right)\right)\right) - a}}, x\right) \]
          16. neg-sub0N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{\left(\mathsf{neg}\left(\left(\mathsf{neg}\left(t\right)\right)\right)\right)} - a}, x\right) \]
          17. remove-double-negN/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{t} - a}, x\right) \]
          18. --lowering--.f6499.1

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{t - a}}, x\right) \]
        4. Applied egg-rr99.1%

          \[\leadsto \color{blue}{\mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{t - a}, x\right)} \]
        5. Taylor expanded in z around 0

          \[\leadsto \color{blue}{x + \frac{t \cdot y}{t - a}} \]
        6. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto \color{blue}{\frac{t \cdot y}{t - a} + x} \]
          2. *-commutativeN/A

            \[\leadsto \frac{\color{blue}{y \cdot t}}{t - a} + x \]
          3. associate-/l*N/A

            \[\leadsto \color{blue}{y \cdot \frac{t}{t - a}} + x \]
          4. accelerator-lowering-fma.f64N/A

            \[\leadsto \color{blue}{\mathsf{fma}\left(y, \frac{t}{t - a}, x\right)} \]
          5. /-lowering-/.f64N/A

            \[\leadsto \mathsf{fma}\left(y, \color{blue}{\frac{t}{t - a}}, x\right) \]
          6. --lowering--.f6490.3

            \[\leadsto \mathsf{fma}\left(y, \frac{t}{\color{blue}{t - a}}, x\right) \]
        7. Simplified90.3%

          \[\leadsto \color{blue}{\mathsf{fma}\left(y, \frac{t}{t - a}, x\right)} \]
      7. Recombined 2 regimes into one program.
      8. Add Preprocessing

      Alternative 4: 83.3% accurate, 0.8× speedup?

      \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;t \leq -1.2 \cdot 10^{-17}:\\ \;\;\;\;\mathsf{fma}\left(y, \frac{t}{t - a}, x\right)\\ \mathbf{elif}\;t \leq 4.8 \cdot 10^{-85}:\\ \;\;\;\;\mathsf{fma}\left(y, \frac{z - t}{a}, x\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(y, 1 - \frac{z}{t}, x\right)\\ \end{array} \end{array} \]
      (FPCore (x y z t a)
       :precision binary64
       (if (<= t -1.2e-17)
         (fma y (/ t (- t a)) x)
         (if (<= t 4.8e-85) (fma y (/ (- z t) a) x) (fma y (- 1.0 (/ z t)) x))))
      double code(double x, double y, double z, double t, double a) {
      	double tmp;
      	if (t <= -1.2e-17) {
      		tmp = fma(y, (t / (t - a)), x);
      	} else if (t <= 4.8e-85) {
      		tmp = fma(y, ((z - t) / a), x);
      	} else {
      		tmp = fma(y, (1.0 - (z / t)), x);
      	}
      	return tmp;
      }
      
      function code(x, y, z, t, a)
      	tmp = 0.0
      	if (t <= -1.2e-17)
      		tmp = fma(y, Float64(t / Float64(t - a)), x);
      	elseif (t <= 4.8e-85)
      		tmp = fma(y, Float64(Float64(z - t) / a), x);
      	else
      		tmp = fma(y, Float64(1.0 - Float64(z / t)), x);
      	end
      	return tmp
      end
      
      code[x_, y_, z_, t_, a_] := If[LessEqual[t, -1.2e-17], N[(y * N[(t / N[(t - a), $MachinePrecision]), $MachinePrecision] + x), $MachinePrecision], If[LessEqual[t, 4.8e-85], N[(y * N[(N[(z - t), $MachinePrecision] / a), $MachinePrecision] + x), $MachinePrecision], N[(y * N[(1.0 - N[(z / t), $MachinePrecision]), $MachinePrecision] + x), $MachinePrecision]]]
      
      \begin{array}{l}
      
      \\
      \begin{array}{l}
      \mathbf{if}\;t \leq -1.2 \cdot 10^{-17}:\\
      \;\;\;\;\mathsf{fma}\left(y, \frac{t}{t - a}, x\right)\\
      
      \mathbf{elif}\;t \leq 4.8 \cdot 10^{-85}:\\
      \;\;\;\;\mathsf{fma}\left(y, \frac{z - t}{a}, x\right)\\
      
      \mathbf{else}:\\
      \;\;\;\;\mathsf{fma}\left(y, 1 - \frac{z}{t}, x\right)\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 3 regimes
      2. if t < -1.19999999999999993e-17

        1. Initial program 76.8%

          \[x + \frac{y \cdot \left(z - t\right)}{a - t} \]
        2. Add Preprocessing
        3. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto \color{blue}{\frac{y \cdot \left(z - t\right)}{a - t} + x} \]
          2. frac-2negN/A

            \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(y \cdot \left(z - t\right)\right)}{\mathsf{neg}\left(\left(a - t\right)\right)}} + x \]
          3. div-invN/A

            \[\leadsto \color{blue}{\left(\mathsf{neg}\left(y \cdot \left(z - t\right)\right)\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}} + x \]
          4. distribute-lft-neg-inN/A

            \[\leadsto \color{blue}{\left(\left(\mathsf{neg}\left(y\right)\right) \cdot \left(z - t\right)\right)} \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)} + x \]
          5. associate-*l*N/A

            \[\leadsto \color{blue}{\left(\mathsf{neg}\left(y\right)\right) \cdot \left(\left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}\right)} + x \]
          6. accelerator-lowering-fma.f64N/A

            \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{neg}\left(y\right), \left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right)} \]
          7. neg-sub0N/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{0 - y}, \left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right) \]
          8. --lowering--.f64N/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{0 - y}, \left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right) \]
          9. *-lowering-*.f64N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \color{blue}{\left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}}, x\right) \]
          10. --lowering--.f64N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \color{blue}{\left(z - t\right)} \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right) \]
          11. /-lowering-/.f64N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \color{blue}{\frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}}, x\right) \]
          12. neg-sub0N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{0 - \left(a - t\right)}}, x\right) \]
          13. sub-negN/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{0 - \color{blue}{\left(a + \left(\mathsf{neg}\left(t\right)\right)\right)}}, x\right) \]
          14. +-commutativeN/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{0 - \color{blue}{\left(\left(\mathsf{neg}\left(t\right)\right) + a\right)}}, x\right) \]
          15. associate--r+N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{\left(0 - \left(\mathsf{neg}\left(t\right)\right)\right) - a}}, x\right) \]
          16. neg-sub0N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{\left(\mathsf{neg}\left(\left(\mathsf{neg}\left(t\right)\right)\right)\right)} - a}, x\right) \]
          17. remove-double-negN/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{t} - a}, x\right) \]
          18. --lowering--.f6499.9

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{t - a}}, x\right) \]
        4. Applied egg-rr99.9%

          \[\leadsto \color{blue}{\mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{t - a}, x\right)} \]
        5. Taylor expanded in z around 0

          \[\leadsto \color{blue}{x + \frac{t \cdot y}{t - a}} \]
        6. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto \color{blue}{\frac{t \cdot y}{t - a} + x} \]
          2. *-commutativeN/A

            \[\leadsto \frac{\color{blue}{y \cdot t}}{t - a} + x \]
          3. associate-/l*N/A

            \[\leadsto \color{blue}{y \cdot \frac{t}{t - a}} + x \]
          4. accelerator-lowering-fma.f64N/A

            \[\leadsto \color{blue}{\mathsf{fma}\left(y, \frac{t}{t - a}, x\right)} \]
          5. /-lowering-/.f64N/A

            \[\leadsto \mathsf{fma}\left(y, \color{blue}{\frac{t}{t - a}}, x\right) \]
          6. --lowering--.f6482.1

            \[\leadsto \mathsf{fma}\left(y, \frac{t}{\color{blue}{t - a}}, x\right) \]
        7. Simplified82.1%

          \[\leadsto \color{blue}{\mathsf{fma}\left(y, \frac{t}{t - a}, x\right)} \]

        if -1.19999999999999993e-17 < t < 4.8000000000000001e-85

        1. Initial program 91.4%

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

          \[\leadsto \color{blue}{x + \frac{y \cdot \left(z - t\right)}{a}} \]
        4. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto \color{blue}{\frac{y \cdot \left(z - t\right)}{a} + x} \]
          2. associate-/l*N/A

            \[\leadsto \color{blue}{y \cdot \frac{z - t}{a}} + x \]
          3. accelerator-lowering-fma.f64N/A

            \[\leadsto \color{blue}{\mathsf{fma}\left(y, \frac{z - t}{a}, x\right)} \]
          4. /-lowering-/.f64N/A

            \[\leadsto \mathsf{fma}\left(y, \color{blue}{\frac{z - t}{a}}, x\right) \]
          5. --lowering--.f6487.2

            \[\leadsto \mathsf{fma}\left(y, \frac{\color{blue}{z - t}}{a}, x\right) \]
        5. Simplified87.2%

          \[\leadsto \color{blue}{\mathsf{fma}\left(y, \frac{z - t}{a}, x\right)} \]

        if 4.8000000000000001e-85 < t

        1. Initial program 83.7%

          \[x + \frac{y \cdot \left(z - t\right)}{a - t} \]
        2. Add Preprocessing
        3. Taylor expanded in a around 0

          \[\leadsto \color{blue}{x + -1 \cdot \frac{y \cdot \left(z - t\right)}{t}} \]
        4. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto \color{blue}{-1 \cdot \frac{y \cdot \left(z - t\right)}{t} + x} \]
          2. mul-1-negN/A

            \[\leadsto \color{blue}{\left(\mathsf{neg}\left(\frac{y \cdot \left(z - t\right)}{t}\right)\right)} + x \]
          3. associate-/l*N/A

            \[\leadsto \left(\mathsf{neg}\left(\color{blue}{y \cdot \frac{z - t}{t}}\right)\right) + x \]
          4. distribute-rgt-neg-inN/A

            \[\leadsto \color{blue}{y \cdot \left(\mathsf{neg}\left(\frac{z - t}{t}\right)\right)} + x \]
          5. accelerator-lowering-fma.f64N/A

            \[\leadsto \color{blue}{\mathsf{fma}\left(y, \mathsf{neg}\left(\frac{z - t}{t}\right), x\right)} \]
          6. neg-sub0N/A

            \[\leadsto \mathsf{fma}\left(y, \color{blue}{0 - \frac{z - t}{t}}, x\right) \]
          7. div-subN/A

            \[\leadsto \mathsf{fma}\left(y, 0 - \color{blue}{\left(\frac{z}{t} - \frac{t}{t}\right)}, x\right) \]
          8. *-inversesN/A

            \[\leadsto \mathsf{fma}\left(y, 0 - \left(\frac{z}{t} - \color{blue}{1}\right), x\right) \]
          9. associate-+l-N/A

            \[\leadsto \mathsf{fma}\left(y, \color{blue}{\left(0 - \frac{z}{t}\right) + 1}, x\right) \]
          10. neg-sub0N/A

            \[\leadsto \mathsf{fma}\left(y, \color{blue}{\left(\mathsf{neg}\left(\frac{z}{t}\right)\right)} + 1, x\right) \]
          11. mul-1-negN/A

            \[\leadsto \mathsf{fma}\left(y, \color{blue}{-1 \cdot \frac{z}{t}} + 1, x\right) \]
          12. +-commutativeN/A

            \[\leadsto \mathsf{fma}\left(y, \color{blue}{1 + -1 \cdot \frac{z}{t}}, x\right) \]
          13. mul-1-negN/A

            \[\leadsto \mathsf{fma}\left(y, 1 + \color{blue}{\left(\mathsf{neg}\left(\frac{z}{t}\right)\right)}, x\right) \]
          14. unsub-negN/A

            \[\leadsto \mathsf{fma}\left(y, \color{blue}{1 - \frac{z}{t}}, x\right) \]
          15. --lowering--.f64N/A

            \[\leadsto \mathsf{fma}\left(y, \color{blue}{1 - \frac{z}{t}}, x\right) \]
          16. /-lowering-/.f6483.9

            \[\leadsto \mathsf{fma}\left(y, 1 - \color{blue}{\frac{z}{t}}, x\right) \]
        5. Simplified83.9%

          \[\leadsto \color{blue}{\mathsf{fma}\left(y, 1 - \frac{z}{t}, x\right)} \]
      3. Recombined 3 regimes into one program.
      4. Add Preprocessing

      Alternative 5: 82.0% accurate, 0.8× speedup?

      \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;t \leq -7 \cdot 10^{-61}:\\ \;\;\;\;\mathsf{fma}\left(y, \frac{t}{t - a}, x\right)\\ \mathbf{elif}\;t \leq 1.6 \cdot 10^{-94}:\\ \;\;\;\;\mathsf{fma}\left(z, \frac{y}{a}, x\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(y, 1 - \frac{z}{t}, x\right)\\ \end{array} \end{array} \]
      (FPCore (x y z t a)
       :precision binary64
       (if (<= t -7e-61)
         (fma y (/ t (- t a)) x)
         (if (<= t 1.6e-94) (fma z (/ y a) x) (fma y (- 1.0 (/ z t)) x))))
      double code(double x, double y, double z, double t, double a) {
      	double tmp;
      	if (t <= -7e-61) {
      		tmp = fma(y, (t / (t - a)), x);
      	} else if (t <= 1.6e-94) {
      		tmp = fma(z, (y / a), x);
      	} else {
      		tmp = fma(y, (1.0 - (z / t)), x);
      	}
      	return tmp;
      }
      
      function code(x, y, z, t, a)
      	tmp = 0.0
      	if (t <= -7e-61)
      		tmp = fma(y, Float64(t / Float64(t - a)), x);
      	elseif (t <= 1.6e-94)
      		tmp = fma(z, Float64(y / a), x);
      	else
      		tmp = fma(y, Float64(1.0 - Float64(z / t)), x);
      	end
      	return tmp
      end
      
      code[x_, y_, z_, t_, a_] := If[LessEqual[t, -7e-61], N[(y * N[(t / N[(t - a), $MachinePrecision]), $MachinePrecision] + x), $MachinePrecision], If[LessEqual[t, 1.6e-94], N[(z * N[(y / a), $MachinePrecision] + x), $MachinePrecision], N[(y * N[(1.0 - N[(z / t), $MachinePrecision]), $MachinePrecision] + x), $MachinePrecision]]]
      
      \begin{array}{l}
      
      \\
      \begin{array}{l}
      \mathbf{if}\;t \leq -7 \cdot 10^{-61}:\\
      \;\;\;\;\mathsf{fma}\left(y, \frac{t}{t - a}, x\right)\\
      
      \mathbf{elif}\;t \leq 1.6 \cdot 10^{-94}:\\
      \;\;\;\;\mathsf{fma}\left(z, \frac{y}{a}, x\right)\\
      
      \mathbf{else}:\\
      \;\;\;\;\mathsf{fma}\left(y, 1 - \frac{z}{t}, x\right)\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 3 regimes
      2. if t < -7.0000000000000006e-61

        1. Initial program 78.8%

          \[x + \frac{y \cdot \left(z - t\right)}{a - t} \]
        2. Add Preprocessing
        3. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto \color{blue}{\frac{y \cdot \left(z - t\right)}{a - t} + x} \]
          2. frac-2negN/A

            \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(y \cdot \left(z - t\right)\right)}{\mathsf{neg}\left(\left(a - t\right)\right)}} + x \]
          3. div-invN/A

            \[\leadsto \color{blue}{\left(\mathsf{neg}\left(y \cdot \left(z - t\right)\right)\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}} + x \]
          4. distribute-lft-neg-inN/A

            \[\leadsto \color{blue}{\left(\left(\mathsf{neg}\left(y\right)\right) \cdot \left(z - t\right)\right)} \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)} + x \]
          5. associate-*l*N/A

            \[\leadsto \color{blue}{\left(\mathsf{neg}\left(y\right)\right) \cdot \left(\left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}\right)} + x \]
          6. accelerator-lowering-fma.f64N/A

            \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{neg}\left(y\right), \left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right)} \]
          7. neg-sub0N/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{0 - y}, \left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right) \]
          8. --lowering--.f64N/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{0 - y}, \left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right) \]
          9. *-lowering-*.f64N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \color{blue}{\left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}}, x\right) \]
          10. --lowering--.f64N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \color{blue}{\left(z - t\right)} \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right) \]
          11. /-lowering-/.f64N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \color{blue}{\frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}}, x\right) \]
          12. neg-sub0N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{0 - \left(a - t\right)}}, x\right) \]
          13. sub-negN/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{0 - \color{blue}{\left(a + \left(\mathsf{neg}\left(t\right)\right)\right)}}, x\right) \]
          14. +-commutativeN/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{0 - \color{blue}{\left(\left(\mathsf{neg}\left(t\right)\right) + a\right)}}, x\right) \]
          15. associate--r+N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{\left(0 - \left(\mathsf{neg}\left(t\right)\right)\right) - a}}, x\right) \]
          16. neg-sub0N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{\left(\mathsf{neg}\left(\left(\mathsf{neg}\left(t\right)\right)\right)\right)} - a}, x\right) \]
          17. remove-double-negN/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{t} - a}, x\right) \]
          18. --lowering--.f6497.7

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{t - a}}, x\right) \]
        4. Applied egg-rr97.7%

          \[\leadsto \color{blue}{\mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{t - a}, x\right)} \]
        5. Taylor expanded in z around 0

          \[\leadsto \color{blue}{x + \frac{t \cdot y}{t - a}} \]
        6. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto \color{blue}{\frac{t \cdot y}{t - a} + x} \]
          2. *-commutativeN/A

            \[\leadsto \frac{\color{blue}{y \cdot t}}{t - a} + x \]
          3. associate-/l*N/A

            \[\leadsto \color{blue}{y \cdot \frac{t}{t - a}} + x \]
          4. accelerator-lowering-fma.f64N/A

            \[\leadsto \color{blue}{\mathsf{fma}\left(y, \frac{t}{t - a}, x\right)} \]
          5. /-lowering-/.f64N/A

            \[\leadsto \mathsf{fma}\left(y, \color{blue}{\frac{t}{t - a}}, x\right) \]
          6. --lowering--.f6479.6

            \[\leadsto \mathsf{fma}\left(y, \frac{t}{\color{blue}{t - a}}, x\right) \]
        7. Simplified79.6%

          \[\leadsto \color{blue}{\mathsf{fma}\left(y, \frac{t}{t - a}, x\right)} \]

        if -7.0000000000000006e-61 < t < 1.59999999999999998e-94

        1. Initial program 90.4%

          \[x + \frac{y \cdot \left(z - t\right)}{a - t} \]
        2. Add Preprocessing
        3. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto \color{blue}{\frac{y \cdot \left(z - t\right)}{a - t} + x} \]
          2. frac-2negN/A

            \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(y \cdot \left(z - t\right)\right)}{\mathsf{neg}\left(\left(a - t\right)\right)}} + x \]
          3. div-invN/A

            \[\leadsto \color{blue}{\left(\mathsf{neg}\left(y \cdot \left(z - t\right)\right)\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}} + x \]
          4. distribute-lft-neg-inN/A

            \[\leadsto \color{blue}{\left(\left(\mathsf{neg}\left(y\right)\right) \cdot \left(z - t\right)\right)} \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)} + x \]
          5. associate-*l*N/A

            \[\leadsto \color{blue}{\left(\mathsf{neg}\left(y\right)\right) \cdot \left(\left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}\right)} + x \]
          6. accelerator-lowering-fma.f64N/A

            \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{neg}\left(y\right), \left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right)} \]
          7. neg-sub0N/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{0 - y}, \left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right) \]
          8. --lowering--.f64N/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{0 - y}, \left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right) \]
          9. *-lowering-*.f64N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \color{blue}{\left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}}, x\right) \]
          10. --lowering--.f64N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \color{blue}{\left(z - t\right)} \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right) \]
          11. /-lowering-/.f64N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \color{blue}{\frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}}, x\right) \]
          12. neg-sub0N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{0 - \left(a - t\right)}}, x\right) \]
          13. sub-negN/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{0 - \color{blue}{\left(a + \left(\mathsf{neg}\left(t\right)\right)\right)}}, x\right) \]
          14. +-commutativeN/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{0 - \color{blue}{\left(\left(\mathsf{neg}\left(t\right)\right) + a\right)}}, x\right) \]
          15. associate--r+N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{\left(0 - \left(\mathsf{neg}\left(t\right)\right)\right) - a}}, x\right) \]
          16. neg-sub0N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{\left(\mathsf{neg}\left(\left(\mathsf{neg}\left(t\right)\right)\right)\right)} - a}, x\right) \]
          17. remove-double-negN/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{t} - a}, x\right) \]
          18. --lowering--.f6494.6

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{t - a}}, x\right) \]
        4. Applied egg-rr94.6%

          \[\leadsto \color{blue}{\mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{t - a}, x\right)} \]
        5. Taylor expanded in t around 0

          \[\leadsto \color{blue}{x + \frac{y \cdot z}{a}} \]
        6. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto \color{blue}{\frac{y \cdot z}{a} + x} \]
          2. *-commutativeN/A

            \[\leadsto \frac{\color{blue}{z \cdot y}}{a} + x \]
          3. associate-*r/N/A

            \[\leadsto \color{blue}{z \cdot \frac{y}{a}} + x \]
          4. accelerator-lowering-fma.f64N/A

            \[\leadsto \color{blue}{\mathsf{fma}\left(z, \frac{y}{a}, x\right)} \]
          5. /-lowering-/.f6487.9

            \[\leadsto \mathsf{fma}\left(z, \color{blue}{\frac{y}{a}}, x\right) \]
        7. Simplified87.9%

          \[\leadsto \color{blue}{\mathsf{fma}\left(z, \frac{y}{a}, x\right)} \]

        if 1.59999999999999998e-94 < t

        1. Initial program 84.1%

          \[x + \frac{y \cdot \left(z - t\right)}{a - t} \]
        2. Add Preprocessing
        3. Taylor expanded in a around 0

          \[\leadsto \color{blue}{x + -1 \cdot \frac{y \cdot \left(z - t\right)}{t}} \]
        4. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto \color{blue}{-1 \cdot \frac{y \cdot \left(z - t\right)}{t} + x} \]
          2. mul-1-negN/A

            \[\leadsto \color{blue}{\left(\mathsf{neg}\left(\frac{y \cdot \left(z - t\right)}{t}\right)\right)} + x \]
          3. associate-/l*N/A

            \[\leadsto \left(\mathsf{neg}\left(\color{blue}{y \cdot \frac{z - t}{t}}\right)\right) + x \]
          4. distribute-rgt-neg-inN/A

            \[\leadsto \color{blue}{y \cdot \left(\mathsf{neg}\left(\frac{z - t}{t}\right)\right)} + x \]
          5. accelerator-lowering-fma.f64N/A

            \[\leadsto \color{blue}{\mathsf{fma}\left(y, \mathsf{neg}\left(\frac{z - t}{t}\right), x\right)} \]
          6. neg-sub0N/A

            \[\leadsto \mathsf{fma}\left(y, \color{blue}{0 - \frac{z - t}{t}}, x\right) \]
          7. div-subN/A

            \[\leadsto \mathsf{fma}\left(y, 0 - \color{blue}{\left(\frac{z}{t} - \frac{t}{t}\right)}, x\right) \]
          8. *-inversesN/A

            \[\leadsto \mathsf{fma}\left(y, 0 - \left(\frac{z}{t} - \color{blue}{1}\right), x\right) \]
          9. associate-+l-N/A

            \[\leadsto \mathsf{fma}\left(y, \color{blue}{\left(0 - \frac{z}{t}\right) + 1}, x\right) \]
          10. neg-sub0N/A

            \[\leadsto \mathsf{fma}\left(y, \color{blue}{\left(\mathsf{neg}\left(\frac{z}{t}\right)\right)} + 1, x\right) \]
          11. mul-1-negN/A

            \[\leadsto \mathsf{fma}\left(y, \color{blue}{-1 \cdot \frac{z}{t}} + 1, x\right) \]
          12. +-commutativeN/A

            \[\leadsto \mathsf{fma}\left(y, \color{blue}{1 + -1 \cdot \frac{z}{t}}, x\right) \]
          13. mul-1-negN/A

            \[\leadsto \mathsf{fma}\left(y, 1 + \color{blue}{\left(\mathsf{neg}\left(\frac{z}{t}\right)\right)}, x\right) \]
          14. unsub-negN/A

            \[\leadsto \mathsf{fma}\left(y, \color{blue}{1 - \frac{z}{t}}, x\right) \]
          15. --lowering--.f64N/A

            \[\leadsto \mathsf{fma}\left(y, \color{blue}{1 - \frac{z}{t}}, x\right) \]
          16. /-lowering-/.f6483.1

            \[\leadsto \mathsf{fma}\left(y, 1 - \color{blue}{\frac{z}{t}}, x\right) \]
        5. Simplified83.1%

          \[\leadsto \color{blue}{\mathsf{fma}\left(y, 1 - \frac{z}{t}, x\right)} \]
      3. Recombined 3 regimes into one program.
      4. Add Preprocessing

      Alternative 6: 82.4% accurate, 0.8× speedup?

      \[\begin{array}{l} \\ \begin{array}{l} t_1 := \mathsf{fma}\left(y, 1 - \frac{z}{t}, x\right)\\ \mathbf{if}\;t \leq -3.2 \cdot 10^{-32}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;t \leq 1.75 \cdot 10^{-94}:\\ \;\;\;\;\mathsf{fma}\left(z, \frac{y}{a}, x\right)\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
      (FPCore (x y z t a)
       :precision binary64
       (let* ((t_1 (fma y (- 1.0 (/ z t)) x)))
         (if (<= t -3.2e-32) t_1 (if (<= t 1.75e-94) (fma z (/ y a) x) t_1))))
      double code(double x, double y, double z, double t, double a) {
      	double t_1 = fma(y, (1.0 - (z / t)), x);
      	double tmp;
      	if (t <= -3.2e-32) {
      		tmp = t_1;
      	} else if (t <= 1.75e-94) {
      		tmp = fma(z, (y / a), x);
      	} else {
      		tmp = t_1;
      	}
      	return tmp;
      }
      
      function code(x, y, z, t, a)
      	t_1 = fma(y, Float64(1.0 - Float64(z / t)), x)
      	tmp = 0.0
      	if (t <= -3.2e-32)
      		tmp = t_1;
      	elseif (t <= 1.75e-94)
      		tmp = fma(z, Float64(y / a), x);
      	else
      		tmp = t_1;
      	end
      	return tmp
      end
      
      code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(y * N[(1.0 - N[(z / t), $MachinePrecision]), $MachinePrecision] + x), $MachinePrecision]}, If[LessEqual[t, -3.2e-32], t$95$1, If[LessEqual[t, 1.75e-94], N[(z * N[(y / a), $MachinePrecision] + x), $MachinePrecision], t$95$1]]]
      
      \begin{array}{l}
      
      \\
      \begin{array}{l}
      t_1 := \mathsf{fma}\left(y, 1 - \frac{z}{t}, x\right)\\
      \mathbf{if}\;t \leq -3.2 \cdot 10^{-32}:\\
      \;\;\;\;t\_1\\
      
      \mathbf{elif}\;t \leq 1.75 \cdot 10^{-94}:\\
      \;\;\;\;\mathsf{fma}\left(z, \frac{y}{a}, x\right)\\
      
      \mathbf{else}:\\
      \;\;\;\;t\_1\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 2 regimes
      2. if t < -3.2000000000000002e-32 or 1.74999999999999999e-94 < t

        1. Initial program 81.0%

          \[x + \frac{y \cdot \left(z - t\right)}{a - t} \]
        2. Add Preprocessing
        3. Taylor expanded in a around 0

          \[\leadsto \color{blue}{x + -1 \cdot \frac{y \cdot \left(z - t\right)}{t}} \]
        4. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto \color{blue}{-1 \cdot \frac{y \cdot \left(z - t\right)}{t} + x} \]
          2. mul-1-negN/A

            \[\leadsto \color{blue}{\left(\mathsf{neg}\left(\frac{y \cdot \left(z - t\right)}{t}\right)\right)} + x \]
          3. associate-/l*N/A

            \[\leadsto \left(\mathsf{neg}\left(\color{blue}{y \cdot \frac{z - t}{t}}\right)\right) + x \]
          4. distribute-rgt-neg-inN/A

            \[\leadsto \color{blue}{y \cdot \left(\mathsf{neg}\left(\frac{z - t}{t}\right)\right)} + x \]
          5. accelerator-lowering-fma.f64N/A

            \[\leadsto \color{blue}{\mathsf{fma}\left(y, \mathsf{neg}\left(\frac{z - t}{t}\right), x\right)} \]
          6. neg-sub0N/A

            \[\leadsto \mathsf{fma}\left(y, \color{blue}{0 - \frac{z - t}{t}}, x\right) \]
          7. div-subN/A

            \[\leadsto \mathsf{fma}\left(y, 0 - \color{blue}{\left(\frac{z}{t} - \frac{t}{t}\right)}, x\right) \]
          8. *-inversesN/A

            \[\leadsto \mathsf{fma}\left(y, 0 - \left(\frac{z}{t} - \color{blue}{1}\right), x\right) \]
          9. associate-+l-N/A

            \[\leadsto \mathsf{fma}\left(y, \color{blue}{\left(0 - \frac{z}{t}\right) + 1}, x\right) \]
          10. neg-sub0N/A

            \[\leadsto \mathsf{fma}\left(y, \color{blue}{\left(\mathsf{neg}\left(\frac{z}{t}\right)\right)} + 1, x\right) \]
          11. mul-1-negN/A

            \[\leadsto \mathsf{fma}\left(y, \color{blue}{-1 \cdot \frac{z}{t}} + 1, x\right) \]
          12. +-commutativeN/A

            \[\leadsto \mathsf{fma}\left(y, \color{blue}{1 + -1 \cdot \frac{z}{t}}, x\right) \]
          13. mul-1-negN/A

            \[\leadsto \mathsf{fma}\left(y, 1 + \color{blue}{\left(\mathsf{neg}\left(\frac{z}{t}\right)\right)}, x\right) \]
          14. unsub-negN/A

            \[\leadsto \mathsf{fma}\left(y, \color{blue}{1 - \frac{z}{t}}, x\right) \]
          15. --lowering--.f64N/A

            \[\leadsto \mathsf{fma}\left(y, \color{blue}{1 - \frac{z}{t}}, x\right) \]
          16. /-lowering-/.f6480.7

            \[\leadsto \mathsf{fma}\left(y, 1 - \color{blue}{\frac{z}{t}}, x\right) \]
        5. Simplified80.7%

          \[\leadsto \color{blue}{\mathsf{fma}\left(y, 1 - \frac{z}{t}, x\right)} \]

        if -3.2000000000000002e-32 < t < 1.74999999999999999e-94

        1. Initial program 90.7%

          \[x + \frac{y \cdot \left(z - t\right)}{a - t} \]
        2. Add Preprocessing
        3. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto \color{blue}{\frac{y \cdot \left(z - t\right)}{a - t} + x} \]
          2. frac-2negN/A

            \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(y \cdot \left(z - t\right)\right)}{\mathsf{neg}\left(\left(a - t\right)\right)}} + x \]
          3. div-invN/A

            \[\leadsto \color{blue}{\left(\mathsf{neg}\left(y \cdot \left(z - t\right)\right)\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}} + x \]
          4. distribute-lft-neg-inN/A

            \[\leadsto \color{blue}{\left(\left(\mathsf{neg}\left(y\right)\right) \cdot \left(z - t\right)\right)} \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)} + x \]
          5. associate-*l*N/A

            \[\leadsto \color{blue}{\left(\mathsf{neg}\left(y\right)\right) \cdot \left(\left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}\right)} + x \]
          6. accelerator-lowering-fma.f64N/A

            \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{neg}\left(y\right), \left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right)} \]
          7. neg-sub0N/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{0 - y}, \left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right) \]
          8. --lowering--.f64N/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{0 - y}, \left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right) \]
          9. *-lowering-*.f64N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \color{blue}{\left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}}, x\right) \]
          10. --lowering--.f64N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \color{blue}{\left(z - t\right)} \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right) \]
          11. /-lowering-/.f64N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \color{blue}{\frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}}, x\right) \]
          12. neg-sub0N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{0 - \left(a - t\right)}}, x\right) \]
          13. sub-negN/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{0 - \color{blue}{\left(a + \left(\mathsf{neg}\left(t\right)\right)\right)}}, x\right) \]
          14. +-commutativeN/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{0 - \color{blue}{\left(\left(\mathsf{neg}\left(t\right)\right) + a\right)}}, x\right) \]
          15. associate--r+N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{\left(0 - \left(\mathsf{neg}\left(t\right)\right)\right) - a}}, x\right) \]
          16. neg-sub0N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{\left(\mathsf{neg}\left(\left(\mathsf{neg}\left(t\right)\right)\right)\right)} - a}, x\right) \]
          17. remove-double-negN/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{t} - a}, x\right) \]
          18. --lowering--.f6492.7

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{t - a}}, x\right) \]
        4. Applied egg-rr92.7%

          \[\leadsto \color{blue}{\mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{t - a}, x\right)} \]
        5. Taylor expanded in t around 0

          \[\leadsto \color{blue}{x + \frac{y \cdot z}{a}} \]
        6. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto \color{blue}{\frac{y \cdot z}{a} + x} \]
          2. *-commutativeN/A

            \[\leadsto \frac{\color{blue}{z \cdot y}}{a} + x \]
          3. associate-*r/N/A

            \[\leadsto \color{blue}{z \cdot \frac{y}{a}} + x \]
          4. accelerator-lowering-fma.f64N/A

            \[\leadsto \color{blue}{\mathsf{fma}\left(z, \frac{y}{a}, x\right)} \]
          5. /-lowering-/.f6486.2

            \[\leadsto \mathsf{fma}\left(z, \color{blue}{\frac{y}{a}}, x\right) \]
        7. Simplified86.2%

          \[\leadsto \color{blue}{\mathsf{fma}\left(z, \frac{y}{a}, x\right)} \]
      3. Recombined 2 regimes into one program.
      4. Add Preprocessing

      Alternative 7: 77.3% accurate, 0.9× speedup?

      \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;t \leq -290000000000:\\ \;\;\;\;y + x\\ \mathbf{elif}\;t \leq 7.8 \cdot 10^{+56}:\\ \;\;\;\;\mathsf{fma}\left(z, \frac{y}{a}, x\right)\\ \mathbf{else}:\\ \;\;\;\;y + x\\ \end{array} \end{array} \]
      (FPCore (x y z t a)
       :precision binary64
       (if (<= t -290000000000.0)
         (+ y x)
         (if (<= t 7.8e+56) (fma z (/ y a) x) (+ y x))))
      double code(double x, double y, double z, double t, double a) {
      	double tmp;
      	if (t <= -290000000000.0) {
      		tmp = y + x;
      	} else if (t <= 7.8e+56) {
      		tmp = fma(z, (y / a), x);
      	} else {
      		tmp = y + x;
      	}
      	return tmp;
      }
      
      function code(x, y, z, t, a)
      	tmp = 0.0
      	if (t <= -290000000000.0)
      		tmp = Float64(y + x);
      	elseif (t <= 7.8e+56)
      		tmp = fma(z, Float64(y / a), x);
      	else
      		tmp = Float64(y + x);
      	end
      	return tmp
      end
      
      code[x_, y_, z_, t_, a_] := If[LessEqual[t, -290000000000.0], N[(y + x), $MachinePrecision], If[LessEqual[t, 7.8e+56], N[(z * N[(y / a), $MachinePrecision] + x), $MachinePrecision], N[(y + x), $MachinePrecision]]]
      
      \begin{array}{l}
      
      \\
      \begin{array}{l}
      \mathbf{if}\;t \leq -290000000000:\\
      \;\;\;\;y + x\\
      
      \mathbf{elif}\;t \leq 7.8 \cdot 10^{+56}:\\
      \;\;\;\;\mathsf{fma}\left(z, \frac{y}{a}, x\right)\\
      
      \mathbf{else}:\\
      \;\;\;\;y + x\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 2 regimes
      2. if t < -2.9e11 or 7.79999999999999989e56 < t

        1. Initial program 75.1%

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

          \[\leadsto \color{blue}{x + y} \]
        4. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto \color{blue}{y + x} \]
          2. +-lowering-+.f6471.6

            \[\leadsto \color{blue}{y + x} \]
        5. Simplified71.6%

          \[\leadsto \color{blue}{y + x} \]

        if -2.9e11 < t < 7.79999999999999989e56

        1. Initial program 92.4%

          \[x + \frac{y \cdot \left(z - t\right)}{a - t} \]
        2. Add Preprocessing
        3. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto \color{blue}{\frac{y \cdot \left(z - t\right)}{a - t} + x} \]
          2. frac-2negN/A

            \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(y \cdot \left(z - t\right)\right)}{\mathsf{neg}\left(\left(a - t\right)\right)}} + x \]
          3. div-invN/A

            \[\leadsto \color{blue}{\left(\mathsf{neg}\left(y \cdot \left(z - t\right)\right)\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}} + x \]
          4. distribute-lft-neg-inN/A

            \[\leadsto \color{blue}{\left(\left(\mathsf{neg}\left(y\right)\right) \cdot \left(z - t\right)\right)} \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)} + x \]
          5. associate-*l*N/A

            \[\leadsto \color{blue}{\left(\mathsf{neg}\left(y\right)\right) \cdot \left(\left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}\right)} + x \]
          6. accelerator-lowering-fma.f64N/A

            \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{neg}\left(y\right), \left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right)} \]
          7. neg-sub0N/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{0 - y}, \left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right) \]
          8. --lowering--.f64N/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{0 - y}, \left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right) \]
          9. *-lowering-*.f64N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \color{blue}{\left(z - t\right) \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}}, x\right) \]
          10. --lowering--.f64N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \color{blue}{\left(z - t\right)} \cdot \frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}, x\right) \]
          11. /-lowering-/.f64N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \color{blue}{\frac{1}{\mathsf{neg}\left(\left(a - t\right)\right)}}, x\right) \]
          12. neg-sub0N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{0 - \left(a - t\right)}}, x\right) \]
          13. sub-negN/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{0 - \color{blue}{\left(a + \left(\mathsf{neg}\left(t\right)\right)\right)}}, x\right) \]
          14. +-commutativeN/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{0 - \color{blue}{\left(\left(\mathsf{neg}\left(t\right)\right) + a\right)}}, x\right) \]
          15. associate--r+N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{\left(0 - \left(\mathsf{neg}\left(t\right)\right)\right) - a}}, x\right) \]
          16. neg-sub0N/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{\left(\mathsf{neg}\left(\left(\mathsf{neg}\left(t\right)\right)\right)\right)} - a}, x\right) \]
          17. remove-double-negN/A

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{t} - a}, x\right) \]
          18. --lowering--.f6495.1

            \[\leadsto \mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{\color{blue}{t - a}}, x\right) \]
        4. Applied egg-rr95.1%

          \[\leadsto \color{blue}{\mathsf{fma}\left(0 - y, \left(z - t\right) \cdot \frac{1}{t - a}, x\right)} \]
        5. Taylor expanded in t around 0

          \[\leadsto \color{blue}{x + \frac{y \cdot z}{a}} \]
        6. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto \color{blue}{\frac{y \cdot z}{a} + x} \]
          2. *-commutativeN/A

            \[\leadsto \frac{\color{blue}{z \cdot y}}{a} + x \]
          3. associate-*r/N/A

            \[\leadsto \color{blue}{z \cdot \frac{y}{a}} + x \]
          4. accelerator-lowering-fma.f64N/A

            \[\leadsto \color{blue}{\mathsf{fma}\left(z, \frac{y}{a}, x\right)} \]
          5. /-lowering-/.f6476.1

            \[\leadsto \mathsf{fma}\left(z, \color{blue}{\frac{y}{a}}, x\right) \]
        7. Simplified76.1%

          \[\leadsto \color{blue}{\mathsf{fma}\left(z, \frac{y}{a}, x\right)} \]
      3. Recombined 2 regimes into one program.
      4. Add Preprocessing

      Alternative 8: 77.6% accurate, 0.9× speedup?

      \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;t \leq -7800000000:\\ \;\;\;\;y + x\\ \mathbf{elif}\;t \leq 5.9 \cdot 10^{+57}:\\ \;\;\;\;\mathsf{fma}\left(y, \frac{z}{a}, x\right)\\ \mathbf{else}:\\ \;\;\;\;y + x\\ \end{array} \end{array} \]
      (FPCore (x y z t a)
       :precision binary64
       (if (<= t -7800000000.0)
         (+ y x)
         (if (<= t 5.9e+57) (fma y (/ z a) x) (+ y x))))
      double code(double x, double y, double z, double t, double a) {
      	double tmp;
      	if (t <= -7800000000.0) {
      		tmp = y + x;
      	} else if (t <= 5.9e+57) {
      		tmp = fma(y, (z / a), x);
      	} else {
      		tmp = y + x;
      	}
      	return tmp;
      }
      
      function code(x, y, z, t, a)
      	tmp = 0.0
      	if (t <= -7800000000.0)
      		tmp = Float64(y + x);
      	elseif (t <= 5.9e+57)
      		tmp = fma(y, Float64(z / a), x);
      	else
      		tmp = Float64(y + x);
      	end
      	return tmp
      end
      
      code[x_, y_, z_, t_, a_] := If[LessEqual[t, -7800000000.0], N[(y + x), $MachinePrecision], If[LessEqual[t, 5.9e+57], N[(y * N[(z / a), $MachinePrecision] + x), $MachinePrecision], N[(y + x), $MachinePrecision]]]
      
      \begin{array}{l}
      
      \\
      \begin{array}{l}
      \mathbf{if}\;t \leq -7800000000:\\
      \;\;\;\;y + x\\
      
      \mathbf{elif}\;t \leq 5.9 \cdot 10^{+57}:\\
      \;\;\;\;\mathsf{fma}\left(y, \frac{z}{a}, x\right)\\
      
      \mathbf{else}:\\
      \;\;\;\;y + x\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 2 regimes
      2. if t < -7.8e9 or 5.90000000000000013e57 < t

        1. Initial program 75.1%

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

          \[\leadsto \color{blue}{x + y} \]
        4. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto \color{blue}{y + x} \]
          2. +-lowering-+.f6471.6

            \[\leadsto \color{blue}{y + x} \]
        5. Simplified71.6%

          \[\leadsto \color{blue}{y + x} \]

        if -7.8e9 < t < 5.90000000000000013e57

        1. Initial program 92.4%

          \[x + \frac{y \cdot \left(z - t\right)}{a - t} \]
        2. Add Preprocessing
        3. Taylor expanded in t around 0

          \[\leadsto \color{blue}{x + \frac{y \cdot z}{a}} \]
        4. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto \color{blue}{\frac{y \cdot z}{a} + x} \]
          2. associate-/l*N/A

            \[\leadsto \color{blue}{y \cdot \frac{z}{a}} + x \]
          3. accelerator-lowering-fma.f64N/A

            \[\leadsto \color{blue}{\mathsf{fma}\left(y, \frac{z}{a}, x\right)} \]
          4. /-lowering-/.f6473.8

            \[\leadsto \mathsf{fma}\left(y, \color{blue}{\frac{z}{a}}, x\right) \]
        5. Simplified73.8%

          \[\leadsto \color{blue}{\mathsf{fma}\left(y, \frac{z}{a}, x\right)} \]
      3. Recombined 2 regimes into one program.
      4. Add Preprocessing

      Alternative 9: 53.1% accurate, 0.9× speedup?

      \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\frac{y \cdot \left(z - t\right)}{a - t} \leq 2 \cdot 10^{+175}:\\ \;\;\;\;x\\ \mathbf{else}:\\ \;\;\;\;y\\ \end{array} \end{array} \]
      (FPCore (x y z t a)
       :precision binary64
       (if (<= (/ (* y (- z t)) (- a t)) 2e+175) x y))
      double code(double x, double y, double z, double t, double a) {
      	double tmp;
      	if (((y * (z - t)) / (a - t)) <= 2e+175) {
      		tmp = x;
      	} else {
      		tmp = y;
      	}
      	return tmp;
      }
      
      real(8) function code(x, y, z, t, a)
          real(8), intent (in) :: x
          real(8), intent (in) :: y
          real(8), intent (in) :: z
          real(8), intent (in) :: t
          real(8), intent (in) :: a
          real(8) :: tmp
          if (((y * (z - t)) / (a - t)) <= 2d+175) then
              tmp = x
          else
              tmp = y
          end if
          code = tmp
      end function
      
      public static double code(double x, double y, double z, double t, double a) {
      	double tmp;
      	if (((y * (z - t)) / (a - t)) <= 2e+175) {
      		tmp = x;
      	} else {
      		tmp = y;
      	}
      	return tmp;
      }
      
      def code(x, y, z, t, a):
      	tmp = 0
      	if ((y * (z - t)) / (a - t)) <= 2e+175:
      		tmp = x
      	else:
      		tmp = y
      	return tmp
      
      function code(x, y, z, t, a)
      	tmp = 0.0
      	if (Float64(Float64(y * Float64(z - t)) / Float64(a - t)) <= 2e+175)
      		tmp = x;
      	else
      		tmp = y;
      	end
      	return tmp
      end
      
      function tmp_2 = code(x, y, z, t, a)
      	tmp = 0.0;
      	if (((y * (z - t)) / (a - t)) <= 2e+175)
      		tmp = x;
      	else
      		tmp = y;
      	end
      	tmp_2 = tmp;
      end
      
      code[x_, y_, z_, t_, a_] := If[LessEqual[N[(N[(y * N[(z - t), $MachinePrecision]), $MachinePrecision] / N[(a - t), $MachinePrecision]), $MachinePrecision], 2e+175], x, y]
      
      \begin{array}{l}
      
      \\
      \begin{array}{l}
      \mathbf{if}\;\frac{y \cdot \left(z - t\right)}{a - t} \leq 2 \cdot 10^{+175}:\\
      \;\;\;\;x\\
      
      \mathbf{else}:\\
      \;\;\;\;y\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 2 regimes
      2. if (/.f64 (*.f64 y (-.f64 z t)) (-.f64 a t)) < 1.9999999999999999e175

        1. Initial program 93.0%

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

          \[\leadsto \color{blue}{x} \]
        4. Step-by-step derivation
          1. Simplified58.2%

            \[\leadsto \color{blue}{x} \]

          if 1.9999999999999999e175 < (/.f64 (*.f64 y (-.f64 z t)) (-.f64 a t))

          1. Initial program 37.3%

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

            \[\leadsto \color{blue}{x + y} \]
          4. Step-by-step derivation
            1. +-commutativeN/A

              \[\leadsto \color{blue}{y + x} \]
            2. +-lowering-+.f6438.9

              \[\leadsto \color{blue}{y + x} \]
          5. Simplified38.9%

            \[\leadsto \color{blue}{y + x} \]
          6. Taylor expanded in y around inf

            \[\leadsto \color{blue}{y} \]
          7. Step-by-step derivation
            1. Simplified33.0%

              \[\leadsto \color{blue}{y} \]
          8. Recombined 2 regimes into one program.
          9. Add Preprocessing

          Alternative 10: 95.6% accurate, 1.1× speedup?

          \[\begin{array}{l} \\ \mathsf{fma}\left(\frac{y}{a - t}, z - t, x\right) \end{array} \]
          (FPCore (x y z t a) :precision binary64 (fma (/ y (- a t)) (- z t) x))
          double code(double x, double y, double z, double t, double a) {
          	return fma((y / (a - t)), (z - t), x);
          }
          
          function code(x, y, z, t, a)
          	return fma(Float64(y / Float64(a - t)), Float64(z - t), x)
          end
          
          code[x_, y_, z_, t_, a_] := N[(N[(y / N[(a - t), $MachinePrecision]), $MachinePrecision] * N[(z - t), $MachinePrecision] + x), $MachinePrecision]
          
          \begin{array}{l}
          
          \\
          \mathsf{fma}\left(\frac{y}{a - t}, z - t, x\right)
          \end{array}
          
          Derivation
          1. Initial program 84.5%

            \[x + \frac{y \cdot \left(z - t\right)}{a - t} \]
          2. Add Preprocessing
          3. Step-by-step derivation
            1. +-commutativeN/A

              \[\leadsto \color{blue}{\frac{y \cdot \left(z - t\right)}{a - t} + x} \]
            2. *-commutativeN/A

              \[\leadsto \frac{\color{blue}{\left(z - t\right) \cdot y}}{a - t} + x \]
            3. associate-/l*N/A

              \[\leadsto \color{blue}{\left(z - t\right) \cdot \frac{y}{a - t}} + x \]
            4. *-commutativeN/A

              \[\leadsto \color{blue}{\frac{y}{a - t} \cdot \left(z - t\right)} + x \]
            5. accelerator-lowering-fma.f64N/A

              \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y}{a - t}, z - t, x\right)} \]
            6. /-lowering-/.f64N/A

              \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{y}{a - t}}, z - t, x\right) \]
            7. --lowering--.f64N/A

              \[\leadsto \mathsf{fma}\left(\frac{y}{\color{blue}{a - t}}, z - t, x\right) \]
            8. --lowering--.f6496.6

              \[\leadsto \mathsf{fma}\left(\frac{y}{a - t}, \color{blue}{z - t}, x\right) \]
          4. Applied egg-rr96.6%

            \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y}{a - t}, z - t, x\right)} \]
          5. Add Preprocessing

          Alternative 11: 63.2% accurate, 1.6× speedup?

          \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;t \leq -1.62 \cdot 10^{+31}:\\ \;\;\;\;y + x\\ \mathbf{elif}\;t \leq 3.9 \cdot 10^{+31}:\\ \;\;\;\;x\\ \mathbf{else}:\\ \;\;\;\;y + x\\ \end{array} \end{array} \]
          (FPCore (x y z t a)
           :precision binary64
           (if (<= t -1.62e+31) (+ y x) (if (<= t 3.9e+31) x (+ y x))))
          double code(double x, double y, double z, double t, double a) {
          	double tmp;
          	if (t <= -1.62e+31) {
          		tmp = y + x;
          	} else if (t <= 3.9e+31) {
          		tmp = x;
          	} else {
          		tmp = y + x;
          	}
          	return tmp;
          }
          
          real(8) function code(x, y, z, t, a)
              real(8), intent (in) :: x
              real(8), intent (in) :: y
              real(8), intent (in) :: z
              real(8), intent (in) :: t
              real(8), intent (in) :: a
              real(8) :: tmp
              if (t <= (-1.62d+31)) then
                  tmp = y + x
              else if (t <= 3.9d+31) then
                  tmp = x
              else
                  tmp = y + x
              end if
              code = tmp
          end function
          
          public static double code(double x, double y, double z, double t, double a) {
          	double tmp;
          	if (t <= -1.62e+31) {
          		tmp = y + x;
          	} else if (t <= 3.9e+31) {
          		tmp = x;
          	} else {
          		tmp = y + x;
          	}
          	return tmp;
          }
          
          def code(x, y, z, t, a):
          	tmp = 0
          	if t <= -1.62e+31:
          		tmp = y + x
          	elif t <= 3.9e+31:
          		tmp = x
          	else:
          		tmp = y + x
          	return tmp
          
          function code(x, y, z, t, a)
          	tmp = 0.0
          	if (t <= -1.62e+31)
          		tmp = Float64(y + x);
          	elseif (t <= 3.9e+31)
          		tmp = x;
          	else
          		tmp = Float64(y + x);
          	end
          	return tmp
          end
          
          function tmp_2 = code(x, y, z, t, a)
          	tmp = 0.0;
          	if (t <= -1.62e+31)
          		tmp = y + x;
          	elseif (t <= 3.9e+31)
          		tmp = x;
          	else
          		tmp = y + x;
          	end
          	tmp_2 = tmp;
          end
          
          code[x_, y_, z_, t_, a_] := If[LessEqual[t, -1.62e+31], N[(y + x), $MachinePrecision], If[LessEqual[t, 3.9e+31], x, N[(y + x), $MachinePrecision]]]
          
          \begin{array}{l}
          
          \\
          \begin{array}{l}
          \mathbf{if}\;t \leq -1.62 \cdot 10^{+31}:\\
          \;\;\;\;y + x\\
          
          \mathbf{elif}\;t \leq 3.9 \cdot 10^{+31}:\\
          \;\;\;\;x\\
          
          \mathbf{else}:\\
          \;\;\;\;y + x\\
          
          
          \end{array}
          \end{array}
          
          Derivation
          1. Split input into 2 regimes
          2. if t < -1.6199999999999999e31 or 3.89999999999999999e31 < t

            1. Initial program 74.2%

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

              \[\leadsto \color{blue}{x + y} \]
            4. Step-by-step derivation
              1. +-commutativeN/A

                \[\leadsto \color{blue}{y + x} \]
              2. +-lowering-+.f6469.4

                \[\leadsto \color{blue}{y + x} \]
            5. Simplified69.4%

              \[\leadsto \color{blue}{y + x} \]

            if -1.6199999999999999e31 < t < 3.89999999999999999e31

            1. Initial program 93.6%

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

              \[\leadsto \color{blue}{x} \]
            4. Step-by-step derivation
              1. Simplified54.8%

                \[\leadsto \color{blue}{x} \]
            5. Recombined 2 regimes into one program.
            6. Add Preprocessing

            Alternative 12: 51.0% accurate, 26.0× speedup?

            \[\begin{array}{l} \\ x \end{array} \]
            (FPCore (x y z t a) :precision binary64 x)
            double code(double x, double y, double z, double t, double a) {
            	return x;
            }
            
            real(8) function code(x, y, z, t, a)
                real(8), intent (in) :: x
                real(8), intent (in) :: y
                real(8), intent (in) :: z
                real(8), intent (in) :: t
                real(8), intent (in) :: a
                code = x
            end function
            
            public static double code(double x, double y, double z, double t, double a) {
            	return x;
            }
            
            def code(x, y, z, t, a):
            	return x
            
            function code(x, y, z, t, a)
            	return x
            end
            
            function tmp = code(x, y, z, t, a)
            	tmp = x;
            end
            
            code[x_, y_, z_, t_, a_] := x
            
            \begin{array}{l}
            
            \\
            x
            \end{array}
            
            Derivation
            1. Initial program 84.5%

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

              \[\leadsto \color{blue}{x} \]
            4. Step-by-step derivation
              1. Simplified51.2%

                \[\leadsto \color{blue}{x} \]
              2. Add Preprocessing

              Developer Target 1: 98.3% accurate, 0.8× speedup?

              \[\begin{array}{l} \\ x + \frac{y}{\frac{a - t}{z - t}} \end{array} \]
              (FPCore (x y z t a) :precision binary64 (+ x (/ y (/ (- a t) (- z t)))))
              double code(double x, double y, double z, double t, double a) {
              	return x + (y / ((a - t) / (z - t)));
              }
              
              real(8) function code(x, y, z, t, a)
                  real(8), intent (in) :: x
                  real(8), intent (in) :: y
                  real(8), intent (in) :: z
                  real(8), intent (in) :: t
                  real(8), intent (in) :: a
                  code = x + (y / ((a - t) / (z - t)))
              end function
              
              public static double code(double x, double y, double z, double t, double a) {
              	return x + (y / ((a - t) / (z - t)));
              }
              
              def code(x, y, z, t, a):
              	return x + (y / ((a - t) / (z - t)))
              
              function code(x, y, z, t, a)
              	return Float64(x + Float64(y / Float64(Float64(a - t) / Float64(z - t))))
              end
              
              function tmp = code(x, y, z, t, a)
              	tmp = x + (y / ((a - t) / (z - t)));
              end
              
              code[x_, y_, z_, t_, a_] := N[(x + N[(y / N[(N[(a - t), $MachinePrecision] / N[(z - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
              
              \begin{array}{l}
              
              \\
              x + \frac{y}{\frac{a - t}{z - t}}
              \end{array}
              

              Reproduce

              ?
              herbie shell --seed 2024195 
              (FPCore (x y z t a)
                :name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisTicks from plot-0.2.3.4, B"
                :precision binary64
              
                :alt
                (! :herbie-platform default (+ x (/ y (/ (- a t) (- z t)))))
              
                (+ x (/ (* y (- z t)) (- a t))))