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

Percentage Accurate: 77.8% → 89.3%
Time: 8.2s
Alternatives: 9
Speedup: 0.9×

Specification

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

\\
\left(x + y\right) - \frac{\left(z - t\right) \cdot y}{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 9 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: 77.8% accurate, 1.0× speedup?

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

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

Alternative 1: 89.3% accurate, 0.7× speedup?

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

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

\mathbf{elif}\;t \leq 6.2 \cdot 10^{+89}:\\
\;\;\;\;\left(y + x\right) - \frac{\left(z - t\right) \cdot y}{a - t}\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if t < -1.40000000000000009e43

    1. Initial program 59.8%

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

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

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

        \[\leadsto \left(x + y\right) - \frac{\color{blue}{z \cdot y}}{a - t} \]
    5. Applied rewrites66.8%

      \[\leadsto \left(x + y\right) - \frac{\color{blue}{z \cdot y}}{a - t} \]
    6. Taylor expanded in t around inf

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

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

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

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

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

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

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

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

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

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

        \[\leadsto \frac{y \cdot z - \color{blue}{y \cdot a}}{t} + x \]
      11. distribute-lft-out--N/A

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

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

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

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

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

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

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

    if -1.40000000000000009e43 < t < 6.2e89

    1. Initial program 88.4%

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

    if 6.2e89 < t

    1. Initial program 54.4%

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

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

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

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

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

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

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

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

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

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

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

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

        \[\leadsto \left(\color{blue}{z \cdot \frac{y}{t}} - a \cdot \frac{y}{t}\right) + x \]
      12. distribute-rgt-out--N/A

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

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

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

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

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y}{t}, z - a, x\right)} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification91.0%

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \leq -1.4 \cdot 10^{+43}:\\ \;\;\;\;\mathsf{fma}\left(\frac{z - a}{t}, y, x\right)\\ \mathbf{elif}\;t \leq 6.2 \cdot 10^{+89}:\\ \;\;\;\;\left(y + x\right) - \frac{\left(z - t\right) \cdot y}{a - t}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{y}{t}, z - a, x\right)\\ \end{array} \]
  5. Add Preprocessing

Alternative 2: 88.9% accurate, 0.8× speedup?

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

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

\mathbf{elif}\;t \leq 1.1 \cdot 10^{+80}:\\
\;\;\;\;\left(y + x\right) - \frac{z \cdot y}{a - t}\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if t < -1.40000000000000009e43

    1. Initial program 59.8%

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

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

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

        \[\leadsto \left(x + y\right) - \frac{\color{blue}{z \cdot y}}{a - t} \]
    5. Applied rewrites66.8%

      \[\leadsto \left(x + y\right) - \frac{\color{blue}{z \cdot y}}{a - t} \]
    6. Taylor expanded in t around inf

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

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

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

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

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

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

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

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

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

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

        \[\leadsto \frac{y \cdot z - \color{blue}{y \cdot a}}{t} + x \]
      11. distribute-lft-out--N/A

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

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

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

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

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

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

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

    if -1.40000000000000009e43 < t < 1.10000000000000001e80

    1. Initial program 88.8%

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

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

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

        \[\leadsto \left(x + y\right) - \frac{\color{blue}{z \cdot y}}{a - t} \]
    5. Applied rewrites88.6%

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

    if 1.10000000000000001e80 < t

    1. Initial program 55.1%

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

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

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

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

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

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

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

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

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

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

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

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

        \[\leadsto \left(\color{blue}{z \cdot \frac{y}{t}} - a \cdot \frac{y}{t}\right) + x \]
      12. distribute-rgt-out--N/A

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

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

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

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

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y}{t}, z - a, x\right)} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification91.0%

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \leq -1.4 \cdot 10^{+43}:\\ \;\;\;\;\mathsf{fma}\left(\frac{z - a}{t}, y, x\right)\\ \mathbf{elif}\;t \leq 1.1 \cdot 10^{+80}:\\ \;\;\;\;\left(y + x\right) - \frac{z \cdot y}{a - t}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{y}{t}, z - a, x\right)\\ \end{array} \]
  5. Add Preprocessing

Alternative 3: 81.8% accurate, 0.8× speedup?

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

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

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

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


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if t < -1.0400000000000001e37

    1. Initial program 59.8%

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

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

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

        \[\leadsto \left(x + y\right) - \frac{\color{blue}{z \cdot y}}{a - t} \]
    5. Applied rewrites66.8%

      \[\leadsto \left(x + y\right) - \frac{\color{blue}{z \cdot y}}{a - t} \]
    6. Taylor expanded in t around inf

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

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

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

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

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

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

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

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

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

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

        \[\leadsto \frac{y \cdot z - \color{blue}{y \cdot a}}{t} + x \]
      11. distribute-lft-out--N/A

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

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

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

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

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

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

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

    if -1.0400000000000001e37 < t < 6.9999999999999995e58

    1. Initial program 88.9%

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

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

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

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

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

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

        \[\leadsto \left(y \cdot 1 - \color{blue}{y \cdot \frac{z - t}{a}}\right) + x \]
      6. distribute-lft-out--N/A

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

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

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

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

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

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

    if 6.9999999999999995e58 < t

    1. Initial program 57.6%

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

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

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

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

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

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

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

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

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

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

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

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

        \[\leadsto \left(\color{blue}{z \cdot \frac{y}{t}} - a \cdot \frac{y}{t}\right) + x \]
      12. distribute-rgt-out--N/A

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

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

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

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

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

Alternative 4: 82.7% accurate, 0.9× speedup?

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

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

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

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


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if t < -2.0499999999999999e37

    1. Initial program 59.8%

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

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

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

        \[\leadsto \left(x + y\right) - \frac{\color{blue}{z \cdot y}}{a - t} \]
    5. Applied rewrites66.8%

      \[\leadsto \left(x + y\right) - \frac{\color{blue}{z \cdot y}}{a - t} \]
    6. Taylor expanded in t around inf

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

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

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

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

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

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

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

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

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

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

        \[\leadsto \frac{y \cdot z - \color{blue}{y \cdot a}}{t} + x \]
      11. distribute-lft-out--N/A

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

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

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

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

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

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

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

    if -2.0499999999999999e37 < t < 6.9999999999999995e58

    1. Initial program 88.9%

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

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

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

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

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

        \[\leadsto \left(y \cdot 1 - \color{blue}{y \cdot \frac{z}{a}}\right) + x \]
      5. distribute-lft-out--N/A

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

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

        \[\leadsto \mathsf{fma}\left(y, \color{blue}{1 - \frac{z}{a}}, x\right) \]
      8. lower-/.f6481.7

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

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

    if 6.9999999999999995e58 < t

    1. Initial program 57.6%

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

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

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

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

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

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

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

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

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

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

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

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

        \[\leadsto \left(\color{blue}{z \cdot \frac{y}{t}} - a \cdot \frac{y}{t}\right) + x \]
      12. distribute-rgt-out--N/A

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

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

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

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

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

Alternative 5: 82.9% accurate, 0.9× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_1 := \mathsf{fma}\left(y, 1 - \frac{z}{a}, x\right)\\ \mathbf{if}\;a \leq -1.9 \cdot 10^{-26}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;a \leq 4.8 \cdot 10^{-99}:\\ \;\;\;\;\mathsf{fma}\left(\frac{y}{t}, z - 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 a)) x)))
   (if (<= a -1.9e-26) t_1 (if (<= a 4.8e-99) (fma (/ y t) (- z a) x) t_1))))
double code(double x, double y, double z, double t, double a) {
	double t_1 = fma(y, (1.0 - (z / a)), x);
	double tmp;
	if (a <= -1.9e-26) {
		tmp = t_1;
	} else if (a <= 4.8e-99) {
		tmp = fma((y / t), (z - a), x);
	} else {
		tmp = t_1;
	}
	return tmp;
}
function code(x, y, z, t, a)
	t_1 = fma(y, Float64(1.0 - Float64(z / a)), x)
	tmp = 0.0
	if (a <= -1.9e-26)
		tmp = t_1;
	elseif (a <= 4.8e-99)
		tmp = fma(Float64(y / t), Float64(z - 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 / a), $MachinePrecision]), $MachinePrecision] + x), $MachinePrecision]}, If[LessEqual[a, -1.9e-26], t$95$1, If[LessEqual[a, 4.8e-99], N[(N[(y / t), $MachinePrecision] * N[(z - a), $MachinePrecision] + x), $MachinePrecision], t$95$1]]]
\begin{array}{l}

\\
\begin{array}{l}
t_1 := \mathsf{fma}\left(y, 1 - \frac{z}{a}, x\right)\\
\mathbf{if}\;a \leq -1.9 \cdot 10^{-26}:\\
\;\;\;\;t\_1\\

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

\mathbf{else}:\\
\;\;\;\;t\_1\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if a < -1.90000000000000007e-26 or 4.8000000000000001e-99 < a

    1. Initial program 77.5%

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

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

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

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

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

        \[\leadsto \left(y \cdot 1 - \color{blue}{y \cdot \frac{z}{a}}\right) + x \]
      5. distribute-lft-out--N/A

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

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

        \[\leadsto \mathsf{fma}\left(y, \color{blue}{1 - \frac{z}{a}}, x\right) \]
      8. lower-/.f6485.9

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

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

    if -1.90000000000000007e-26 < a < 4.8000000000000001e-99

    1. Initial program 76.3%

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

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

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

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

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

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

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

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

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

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

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

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

        \[\leadsto \left(\color{blue}{z \cdot \frac{y}{t}} - a \cdot \frac{y}{t}\right) + x \]
      12. distribute-rgt-out--N/A

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

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

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

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

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

Alternative 6: 82.1% accurate, 0.9× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_1 := \mathsf{fma}\left(y, 1 - \frac{z}{a}, x\right)\\ \mathbf{if}\;a \leq -9.2 \cdot 10^{-28}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;a \leq 2.5 \cdot 10^{-81}:\\ \;\;\;\;\mathsf{fma}\left(\frac{y}{t}, z, 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 a)) x)))
   (if (<= a -9.2e-28) t_1 (if (<= a 2.5e-81) (fma (/ y t) z x) t_1))))
double code(double x, double y, double z, double t, double a) {
	double t_1 = fma(y, (1.0 - (z / a)), x);
	double tmp;
	if (a <= -9.2e-28) {
		tmp = t_1;
	} else if (a <= 2.5e-81) {
		tmp = fma((y / t), z, x);
	} else {
		tmp = t_1;
	}
	return tmp;
}
function code(x, y, z, t, a)
	t_1 = fma(y, Float64(1.0 - Float64(z / a)), x)
	tmp = 0.0
	if (a <= -9.2e-28)
		tmp = t_1;
	elseif (a <= 2.5e-81)
		tmp = fma(Float64(y / t), z, 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 / a), $MachinePrecision]), $MachinePrecision] + x), $MachinePrecision]}, If[LessEqual[a, -9.2e-28], t$95$1, If[LessEqual[a, 2.5e-81], N[(N[(y / t), $MachinePrecision] * z + x), $MachinePrecision], t$95$1]]]
\begin{array}{l}

\\
\begin{array}{l}
t_1 := \mathsf{fma}\left(y, 1 - \frac{z}{a}, x\right)\\
\mathbf{if}\;a \leq -9.2 \cdot 10^{-28}:\\
\;\;\;\;t\_1\\

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

\mathbf{else}:\\
\;\;\;\;t\_1\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if a < -9.19999999999999942e-28 or 2.4999999999999999e-81 < a

    1. Initial program 77.6%

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

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

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

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

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

        \[\leadsto \left(y \cdot 1 - \color{blue}{y \cdot \frac{z}{a}}\right) + x \]
      5. distribute-lft-out--N/A

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

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

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

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

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

    if -9.19999999999999942e-28 < a < 2.4999999999999999e-81

    1. Initial program 76.1%

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

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

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

        \[\leadsto \left(x + y\right) - \frac{\color{blue}{z \cdot y}}{a - t} \]
    5. Applied rewrites77.8%

      \[\leadsto \left(x + y\right) - \frac{\color{blue}{z \cdot y}}{a - t} \]
    6. Taylor expanded in t around inf

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

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

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

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

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

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

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

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

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

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

        \[\leadsto \frac{y \cdot z - \color{blue}{y \cdot a}}{t} + x \]
      11. distribute-lft-out--N/A

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

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

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

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

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

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

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

      \[\leadsto x + \color{blue}{\frac{y \cdot z}{t}} \]
    10. Step-by-step derivation
      1. Applied rewrites82.1%

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

    Alternative 7: 76.6% accurate, 1.0× speedup?

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

      1. Initial program 77.8%

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

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

          \[\leadsto \color{blue}{y + x} \]
        2. lower-+.f6482.1

          \[\leadsto \color{blue}{y + x} \]
      5. Applied rewrites82.1%

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

      if -1.90000000000000007e-26 < a < 8.4000000000000004e61

      1. Initial program 76.3%

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

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

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

          \[\leadsto \left(x + y\right) - \frac{\color{blue}{z \cdot y}}{a - t} \]
      5. Applied rewrites78.3%

        \[\leadsto \left(x + y\right) - \frac{\color{blue}{z \cdot y}}{a - t} \]
      6. Taylor expanded in t around inf

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

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

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

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

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

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

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

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

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

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

          \[\leadsto \frac{y \cdot z - \color{blue}{y \cdot a}}{t} + x \]
        11. distribute-lft-out--N/A

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

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

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

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

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

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

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

        \[\leadsto x + \color{blue}{\frac{y \cdot z}{t}} \]
      10. Step-by-step derivation
        1. Applied rewrites78.7%

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

      Alternative 8: 62.4% accurate, 1.8× speedup?

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

        1. Initial program 82.4%

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

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

            \[\leadsto \color{blue}{y + x} \]
          2. lower-+.f6467.1

            \[\leadsto \color{blue}{y + x} \]
        5. Applied rewrites67.1%

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

        if 6.99999999999999991e165 < t

        1. Initial program 31.9%

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

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

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

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

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

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

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

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

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

            \[\leadsto \color{blue}{\left(\frac{z - t}{t} + 1\right) \cdot y} + x \]
          9. lower-fma.f64N/A

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

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

            \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{z - t}{t}} + 1, y, x\right) \]
          12. lower--.f6486.4

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

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

          \[\leadsto \mathsf{fma}\left(-1 + 1, y, x\right) \]
        7. Step-by-step derivation
          1. Applied rewrites82.7%

            \[\leadsto \mathsf{fma}\left(-1 + 1, y, x\right) \]
        8. Recombined 2 regimes into one program.
        9. Add Preprocessing

        Alternative 9: 60.9% accurate, 7.3× speedup?

        \[\begin{array}{l} \\ y + x \end{array} \]
        (FPCore (x y z t a) :precision binary64 (+ y x))
        double code(double x, double y, double z, double t, double a) {
        	return y + 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 = y + x
        end function
        
        public static double code(double x, double y, double z, double t, double a) {
        	return y + x;
        }
        
        def code(x, y, z, t, a):
        	return y + x
        
        function code(x, y, z, t, a)
        	return Float64(y + x)
        end
        
        function tmp = code(x, y, z, t, a)
        	tmp = y + x;
        end
        
        code[x_, y_, z_, t_, a_] := N[(y + x), $MachinePrecision]
        
        \begin{array}{l}
        
        \\
        y + x
        \end{array}
        
        Derivation
        1. Initial program 77.0%

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

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

            \[\leadsto \color{blue}{y + x} \]
          2. lower-+.f6465.4

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

          \[\leadsto \color{blue}{y + x} \]
        6. Add Preprocessing

        Developer Target 1: 88.1% accurate, 0.3× speedup?

        \[\begin{array}{l} \\ \begin{array}{l} t_1 := \left(y + x\right) - \left(\left(z - t\right) \cdot \frac{1}{a - t}\right) \cdot y\\ t_2 := \left(x + y\right) - \frac{\left(z - t\right) \cdot y}{a - t}\\ \mathbf{if}\;t\_2 < -1.3664970889390727 \cdot 10^{-7}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;t\_2 < 1.4754293444577233 \cdot 10^{-239}:\\ \;\;\;\;\frac{y \cdot \left(a - z\right) - x \cdot t}{a - t}\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
        (FPCore (x y z t a)
         :precision binary64
         (let* ((t_1 (- (+ y x) (* (* (- z t) (/ 1.0 (- a t))) y)))
                (t_2 (- (+ x y) (/ (* (- z t) y) (- a t)))))
           (if (< t_2 -1.3664970889390727e-7)
             t_1
             (if (< t_2 1.4754293444577233e-239)
               (/ (- (* y (- a z)) (* x t)) (- a t))
               t_1))))
        double code(double x, double y, double z, double t, double a) {
        	double t_1 = (y + x) - (((z - t) * (1.0 / (a - t))) * y);
        	double t_2 = (x + y) - (((z - t) * y) / (a - t));
        	double tmp;
        	if (t_2 < -1.3664970889390727e-7) {
        		tmp = t_1;
        	} else if (t_2 < 1.4754293444577233e-239) {
        		tmp = ((y * (a - z)) - (x * t)) / (a - t);
        	} else {
        		tmp = t_1;
        	}
        	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) :: t_1
            real(8) :: t_2
            real(8) :: tmp
            t_1 = (y + x) - (((z - t) * (1.0d0 / (a - t))) * y)
            t_2 = (x + y) - (((z - t) * y) / (a - t))
            if (t_2 < (-1.3664970889390727d-7)) then
                tmp = t_1
            else if (t_2 < 1.4754293444577233d-239) then
                tmp = ((y * (a - z)) - (x * t)) / (a - t)
            else
                tmp = t_1
            end if
            code = tmp
        end function
        
        public static double code(double x, double y, double z, double t, double a) {
        	double t_1 = (y + x) - (((z - t) * (1.0 / (a - t))) * y);
        	double t_2 = (x + y) - (((z - t) * y) / (a - t));
        	double tmp;
        	if (t_2 < -1.3664970889390727e-7) {
        		tmp = t_1;
        	} else if (t_2 < 1.4754293444577233e-239) {
        		tmp = ((y * (a - z)) - (x * t)) / (a - t);
        	} else {
        		tmp = t_1;
        	}
        	return tmp;
        }
        
        def code(x, y, z, t, a):
        	t_1 = (y + x) - (((z - t) * (1.0 / (a - t))) * y)
        	t_2 = (x + y) - (((z - t) * y) / (a - t))
        	tmp = 0
        	if t_2 < -1.3664970889390727e-7:
        		tmp = t_1
        	elif t_2 < 1.4754293444577233e-239:
        		tmp = ((y * (a - z)) - (x * t)) / (a - t)
        	else:
        		tmp = t_1
        	return tmp
        
        function code(x, y, z, t, a)
        	t_1 = Float64(Float64(y + x) - Float64(Float64(Float64(z - t) * Float64(1.0 / Float64(a - t))) * y))
        	t_2 = Float64(Float64(x + y) - Float64(Float64(Float64(z - t) * y) / Float64(a - t)))
        	tmp = 0.0
        	if (t_2 < -1.3664970889390727e-7)
        		tmp = t_1;
        	elseif (t_2 < 1.4754293444577233e-239)
        		tmp = Float64(Float64(Float64(y * Float64(a - z)) - Float64(x * t)) / Float64(a - t));
        	else
        		tmp = t_1;
        	end
        	return tmp
        end
        
        function tmp_2 = code(x, y, z, t, a)
        	t_1 = (y + x) - (((z - t) * (1.0 / (a - t))) * y);
        	t_2 = (x + y) - (((z - t) * y) / (a - t));
        	tmp = 0.0;
        	if (t_2 < -1.3664970889390727e-7)
        		tmp = t_1;
        	elseif (t_2 < 1.4754293444577233e-239)
        		tmp = ((y * (a - z)) - (x * t)) / (a - t);
        	else
        		tmp = t_1;
        	end
        	tmp_2 = tmp;
        end
        
        code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(N[(y + x), $MachinePrecision] - N[(N[(N[(z - t), $MachinePrecision] * N[(1.0 / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * y), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(x + y), $MachinePrecision] - N[(N[(N[(z - t), $MachinePrecision] * y), $MachinePrecision] / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[Less[t$95$2, -1.3664970889390727e-7], t$95$1, If[Less[t$95$2, 1.4754293444577233e-239], N[(N[(N[(y * N[(a - z), $MachinePrecision]), $MachinePrecision] - N[(x * t), $MachinePrecision]), $MachinePrecision] / N[(a - t), $MachinePrecision]), $MachinePrecision], t$95$1]]]]
        
        \begin{array}{l}
        
        \\
        \begin{array}{l}
        t_1 := \left(y + x\right) - \left(\left(z - t\right) \cdot \frac{1}{a - t}\right) \cdot y\\
        t_2 := \left(x + y\right) - \frac{\left(z - t\right) \cdot y}{a - t}\\
        \mathbf{if}\;t\_2 < -1.3664970889390727 \cdot 10^{-7}:\\
        \;\;\;\;t\_1\\
        
        \mathbf{elif}\;t\_2 < 1.4754293444577233 \cdot 10^{-239}:\\
        \;\;\;\;\frac{y \cdot \left(a - z\right) - x \cdot t}{a - t}\\
        
        \mathbf{else}:\\
        \;\;\;\;t\_1\\
        
        
        \end{array}
        \end{array}
        

        Reproduce

        ?
        herbie shell --seed 2024255 
        (FPCore (x y z t a)
          :name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisTick from plot-0.2.3.4, B"
          :precision binary64
        
          :alt
          (! :herbie-platform default (if (< (- (+ x y) (/ (* (- z t) y) (- a t))) -13664970889390727/100000000000000000000000) (- (+ y x) (* (* (- z t) (/ 1 (- a t))) y)) (if (< (- (+ x y) (/ (* (- z t) y) (- a t))) 14754293444577233/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) (/ (- (* y (- a z)) (* x t)) (- a t)) (- (+ y x) (* (* (- z t) (/ 1 (- a t))) y)))))
        
          (- (+ x y) (/ (* (- z t) y) (- a t))))