Graphics.Rendering.Chart.Axis.Types:linMap from Chart-1.5.3

Percentage Accurate: 68.2% → 91.2%
Time: 13.6s
Alternatives: 16
Speedup: 0.8×

Specification

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

\\
x + \frac{\left(y - x\right) \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 16 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: 68.2% accurate, 1.0× speedup?

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

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

Alternative 1: 91.2% accurate, 0.3× speedup?

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

\\
\begin{array}{l}
t_1 := x + \frac{\left(y - x\right) \cdot \left(z - t\right)}{a - t}\\
\mathbf{if}\;t\_1 \leq -5 \cdot 10^{-299}:\\
\;\;\;\;x + \frac{y - x}{\frac{a - t}{z - t}}\\

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

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


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if (+.f64 x (/.f64 (*.f64 (-.f64 y x) (-.f64 z t)) (-.f64 a t))) < -4.99999999999999956e-299

    1. Initial program 73.2%

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

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

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

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

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

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

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

        \[\leadsto x + \frac{y - x}{\frac{\color{blue}{a - t}}{z - t}} \]
      8. --lowering--.f6492.4

        \[\leadsto x + \frac{y - x}{\frac{a - t}{\color{blue}{z - t}}} \]
    4. Applied egg-rr92.4%

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

    if -4.99999999999999956e-299 < (+.f64 x (/.f64 (*.f64 (-.f64 y x) (-.f64 z t)) (-.f64 a t))) < 0.0

    1. Initial program 4.8%

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

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

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

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

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

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

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

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

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

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

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

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

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

    if 0.0 < (+.f64 x (/.f64 (*.f64 (-.f64 y x) (-.f64 z t)) (-.f64 a t)))

    1. Initial program 73.2%

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

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

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

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

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

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

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

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

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

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

Alternative 2: 91.2% accurate, 0.3× speedup?

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

\\
\begin{array}{l}
t_1 := \mathsf{fma}\left(\frac{z - t}{a - t}, y - x, x\right)\\
t_2 := x + \frac{\left(y - x\right) \cdot \left(z - t\right)}{a - t}\\
\mathbf{if}\;t\_2 \leq -5 \cdot 10^{-299}:\\
\;\;\;\;t\_1\\

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

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


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (+.f64 x (/.f64 (*.f64 (-.f64 y x) (-.f64 z t)) (-.f64 a t))) < -4.99999999999999956e-299 or 0.0 < (+.f64 x (/.f64 (*.f64 (-.f64 y x) (-.f64 z t)) (-.f64 a t)))

    1. Initial program 73.2%

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

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

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

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

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

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

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

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

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

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

    if -4.99999999999999956e-299 < (+.f64 x (/.f64 (*.f64 (-.f64 y x) (-.f64 z t)) (-.f64 a t))) < 0.0

    1. Initial program 4.8%

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

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

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

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

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

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

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

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

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

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

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

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

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

Alternative 3: 63.6% accurate, 0.7× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_1 := y \cdot \frac{z - t}{a - t}\\ \mathbf{if}\;t \leq -8 \cdot 10^{+40}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;t \leq -2.45 \cdot 10^{-28}:\\ \;\;\;\;\mathsf{fma}\left(-x, \frac{z}{a - t}, x\right)\\ \mathbf{elif}\;t \leq 5.4 \cdot 10^{-48}:\\ \;\;\;\;x + \frac{\left(y - x\right) \cdot z}{a}\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
(FPCore (x y z t a)
 :precision binary64
 (let* ((t_1 (* y (/ (- z t) (- a t)))))
   (if (<= t -8e+40)
     t_1
     (if (<= t -2.45e-28)
       (fma (- x) (/ z (- a t)) x)
       (if (<= t 5.4e-48) (+ x (/ (* (- y x) z) a)) t_1)))))
double code(double x, double y, double z, double t, double a) {
	double t_1 = y * ((z - t) / (a - t));
	double tmp;
	if (t <= -8e+40) {
		tmp = t_1;
	} else if (t <= -2.45e-28) {
		tmp = fma(-x, (z / (a - t)), x);
	} else if (t <= 5.4e-48) {
		tmp = x + (((y - x) * z) / a);
	} else {
		tmp = t_1;
	}
	return tmp;
}
function code(x, y, z, t, a)
	t_1 = Float64(y * Float64(Float64(z - t) / Float64(a - t)))
	tmp = 0.0
	if (t <= -8e+40)
		tmp = t_1;
	elseif (t <= -2.45e-28)
		tmp = fma(Float64(-x), Float64(z / Float64(a - t)), x);
	elseif (t <= 5.4e-48)
		tmp = Float64(x + Float64(Float64(Float64(y - x) * z) / a));
	else
		tmp = t_1;
	end
	return tmp
end
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(y * N[(N[(z - t), $MachinePrecision] / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -8e+40], t$95$1, If[LessEqual[t, -2.45e-28], N[((-x) * N[(z / N[(a - t), $MachinePrecision]), $MachinePrecision] + x), $MachinePrecision], If[LessEqual[t, 5.4e-48], N[(x + N[(N[(N[(y - x), $MachinePrecision] * z), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision], t$95$1]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_1 := y \cdot \frac{z - t}{a - t}\\
\mathbf{if}\;t \leq -8 \cdot 10^{+40}:\\
\;\;\;\;t\_1\\

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

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

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


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if t < -8.00000000000000024e40 or 5.40000000000000023e-48 < t

    1. Initial program 37.8%

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

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

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

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

        \[\leadsto \frac{y \cdot \color{blue}{\left(z - t\right)}}{a - t} \]
      4. --lowering--.f6438.7

        \[\leadsto \frac{y \cdot \left(z - t\right)}{\color{blue}{a - t}} \]
    5. Simplified38.7%

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

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

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

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

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

        \[\leadsto \frac{\color{blue}{z - t}}{a - t} \cdot y \]
      6. --lowering--.f6467.1

        \[\leadsto \frac{z - t}{\color{blue}{a - t}} \cdot y \]
    7. Applied egg-rr67.1%

      \[\leadsto \color{blue}{\frac{z - t}{a - t} \cdot y} \]

    if -8.00000000000000024e40 < t < -2.45000000000000015e-28

    1. Initial program 83.1%

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

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

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

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

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

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

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

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

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

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

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

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

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

        \[\leadsto x + \frac{\mathsf{fma}\left(\color{blue}{z}, \mathsf{neg}\left(x\right), z \cdot y\right)}{a - t} \]
      3. Step-by-step derivation
        1. Simplified69.2%

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

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

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

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

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

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

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

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

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

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

            \[\leadsto \mathsf{fma}\left(\mathsf{neg}\left(x\right), \color{blue}{\frac{z}{a - t}}, x\right) \]
          10. --lowering--.f6463.9

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

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

        if -2.45000000000000015e-28 < t < 5.40000000000000023e-48

        1. Initial program 90.0%

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

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

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

            \[\leadsto x + \frac{\color{blue}{z \cdot \left(y - x\right)}}{a} \]
          3. --lowering--.f6472.5

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

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

        \[\leadsto \begin{array}{l} \mathbf{if}\;t \leq -8 \cdot 10^{+40}:\\ \;\;\;\;y \cdot \frac{z - t}{a - t}\\ \mathbf{elif}\;t \leq -2.45 \cdot 10^{-28}:\\ \;\;\;\;\mathsf{fma}\left(-x, \frac{z}{a - t}, x\right)\\ \mathbf{elif}\;t \leq 5.4 \cdot 10^{-48}:\\ \;\;\;\;x + \frac{\left(y - x\right) \cdot z}{a}\\ \mathbf{else}:\\ \;\;\;\;y \cdot \frac{z - t}{a - t}\\ \end{array} \]
      6. Add Preprocessing

      Alternative 4: 60.4% accurate, 0.7× speedup?

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

        1. Initial program 36.8%

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

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

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

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

            \[\leadsto \frac{y \cdot \color{blue}{\left(z - t\right)}}{a - t} \]
          4. --lowering--.f6436.5

            \[\leadsto \frac{y \cdot \left(z - t\right)}{\color{blue}{a - t}} \]
        5. Simplified36.5%

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

          \[\leadsto \color{blue}{-1 \cdot \frac{y \cdot \left(z - t\right)}{t}} \]
        7. Step-by-step derivation
          1. mul-1-negN/A

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

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

            \[\leadsto \mathsf{neg}\left(\color{blue}{y \cdot \frac{z - t}{t}}\right) \]
          4. *-lowering-*.f64N/A

            \[\leadsto \mathsf{neg}\left(\color{blue}{y \cdot \frac{z - t}{t}}\right) \]
          5. div-subN/A

            \[\leadsto \mathsf{neg}\left(y \cdot \color{blue}{\left(\frac{z}{t} - \frac{t}{t}\right)}\right) \]
          6. *-inversesN/A

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

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

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

            \[\leadsto \mathsf{neg}\left(y \cdot \color{blue}{\left(\frac{z}{t} + -1\right)}\right) \]
          10. /-lowering-/.f6460.5

            \[\leadsto -y \cdot \left(\color{blue}{\frac{z}{t}} + -1\right) \]
        8. Simplified60.5%

          \[\leadsto \color{blue}{-y \cdot \left(\frac{z}{t} + -1\right)} \]
        9. Taylor expanded in y around 0

          \[\leadsto \color{blue}{y \cdot \left(1 - \frac{z}{t}\right)} \]
        10. Step-by-step derivation
          1. sub-negN/A

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

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

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

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

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

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

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

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

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

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

            \[\leadsto \mathsf{fma}\left(y, \frac{z}{\color{blue}{\mathsf{neg}\left(t\right)}}, y\right) \]
          12. neg-lowering-neg.f6460.5

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

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

        if -8.9999999999999997e45 < t < 5.2000000000000002e-86

        1. Initial program 88.5%

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

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

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

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

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

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

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

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

        if 5.2000000000000002e-86 < t < 6.0999999999999996e140

        1. Initial program 73.8%

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

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

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

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

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

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

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

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

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

            \[\leadsto \mathsf{fma}\left(\color{blue}{\mathsf{neg}\left(\left(y - x\right)\right)}, \frac{t}{a - t}, x\right) \]
          9. sub-negN/A

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

            \[\leadsto \mathsf{fma}\left(\mathsf{neg}\left(\color{blue}{\left(\left(\mathsf{neg}\left(x\right)\right) + y\right)}\right), \frac{t}{a - t}, x\right) \]
          11. distribute-neg-inN/A

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        if 6.0999999999999996e140 < t

        1. Initial program 23.8%

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

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

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

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

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

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

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

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

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

            \[\leadsto \mathsf{fma}\left(\color{blue}{\mathsf{neg}\left(\left(y - x\right)\right)}, \frac{t}{a - t}, x\right) \]
          9. sub-negN/A

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

            \[\leadsto \mathsf{fma}\left(\mathsf{neg}\left(\color{blue}{\left(\left(\mathsf{neg}\left(x\right)\right) + y\right)}\right), \frac{t}{a - t}, x\right) \]
          11. distribute-neg-inN/A

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

            \[\leadsto \left(\color{blue}{0} \cdot x + y\right) + a \cdot \left(\frac{y}{t} - \frac{x}{t}\right) \]
          15. mul0-lftN/A

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

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

            \[\leadsto \left(0 + \color{blue}{\left(\mathsf{neg}\left(-1\right)\right)} \cdot y\right) + a \cdot \left(\frac{y}{t} - \frac{x}{t}\right) \]
          18. cancel-sign-sub-invN/A

            \[\leadsto \color{blue}{\left(0 - -1 \cdot y\right)} + a \cdot \left(\frac{y}{t} - \frac{x}{t}\right) \]
          19. neg-sub0N/A

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

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

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

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

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

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

        \[\leadsto \begin{array}{l} \mathbf{if}\;t \leq -9 \cdot 10^{+45}:\\ \;\;\;\;\mathsf{fma}\left(y, \frac{-z}{t}, y\right)\\ \mathbf{elif}\;t \leq 5.2 \cdot 10^{-86}:\\ \;\;\;\;\mathsf{fma}\left(z, \frac{y - x}{a}, x\right)\\ \mathbf{elif}\;t \leq 6.1 \cdot 10^{+140}:\\ \;\;\;\;\mathsf{fma}\left(t, \frac{x - y}{a}, x\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(a, \frac{y - x}{t}, y\right)\\ \end{array} \]
      5. Add Preprocessing

      Alternative 5: 52.9% accurate, 0.7× speedup?

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

        1. Initial program 28.3%

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

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

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

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

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

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

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

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

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

            \[\leadsto \mathsf{fma}\left(\color{blue}{\mathsf{neg}\left(\left(y - x\right)\right)}, \frac{t}{a - t}, x\right) \]
          9. sub-negN/A

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

            \[\leadsto \mathsf{fma}\left(\mathsf{neg}\left(\color{blue}{\left(\left(\mathsf{neg}\left(x\right)\right) + y\right)}\right), \frac{t}{a - t}, x\right) \]
          11. distribute-neg-inN/A

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

            \[\leadsto \left(\color{blue}{0} \cdot x + y\right) + a \cdot \left(\frac{y}{t} - \frac{x}{t}\right) \]
          15. mul0-lftN/A

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

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

            \[\leadsto \left(0 + \color{blue}{\left(\mathsf{neg}\left(-1\right)\right)} \cdot y\right) + a \cdot \left(\frac{y}{t} - \frac{x}{t}\right) \]
          18. cancel-sign-sub-invN/A

            \[\leadsto \color{blue}{\left(0 - -1 \cdot y\right)} + a \cdot \left(\frac{y}{t} - \frac{x}{t}\right) \]
          19. neg-sub0N/A

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

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

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

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

            \[\leadsto y + \color{blue}{\frac{a \cdot \left(y - x\right)}{t}} \]
        8. Simplified67.3%

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

        if -6.5000000000000003e106 < t < 8.9999999999999995e-86

        1. Initial program 85.7%

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

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

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

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

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

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

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

            \[\leadsto x + \frac{y - x}{\frac{\color{blue}{a - t}}{z - t}} \]
          8. --lowering--.f6491.3

            \[\leadsto x + \frac{y - x}{\frac{a - t}{\color{blue}{z - t}}} \]
        4. Applied egg-rr91.3%

          \[\leadsto x + \color{blue}{\frac{y - x}{\frac{a - t}{z - t}}} \]
        5. Taylor expanded in t around 0

          \[\leadsto x + \frac{y - x}{\color{blue}{\frac{a}{z}}} \]
        6. Step-by-step derivation
          1. /-lowering-/.f6469.0

            \[\leadsto x + \frac{y - x}{\color{blue}{\frac{a}{z}}} \]
        7. Simplified69.0%

          \[\leadsto x + \frac{y - x}{\color{blue}{\frac{a}{z}}} \]
        8. Taylor expanded in y around inf

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

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

            \[\leadsto x + \frac{\color{blue}{z \cdot y}}{a} \]
          3. *-lowering-*.f6457.4

            \[\leadsto x + \frac{\color{blue}{z \cdot y}}{a} \]
        10. Simplified57.4%

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

        if 8.9999999999999995e-86 < t < 6.0999999999999996e140

        1. Initial program 73.8%

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

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

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

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

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

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

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

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

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

            \[\leadsto \mathsf{fma}\left(\color{blue}{\mathsf{neg}\left(\left(y - x\right)\right)}, \frac{t}{a - t}, x\right) \]
          9. sub-negN/A

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

            \[\leadsto \mathsf{fma}\left(\mathsf{neg}\left(\color{blue}{\left(\left(\mathsf{neg}\left(x\right)\right) + y\right)}\right), \frac{t}{a - t}, x\right) \]
          11. distribute-neg-inN/A

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        \[\leadsto \begin{array}{l} \mathbf{if}\;t \leq -6.5 \cdot 10^{+106}:\\ \;\;\;\;\mathsf{fma}\left(a, \frac{y - x}{t}, y\right)\\ \mathbf{elif}\;t \leq 9 \cdot 10^{-86}:\\ \;\;\;\;x + \frac{y \cdot z}{a}\\ \mathbf{elif}\;t \leq 6.1 \cdot 10^{+140}:\\ \;\;\;\;\mathsf{fma}\left(t, \frac{x - y}{a}, x\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(a, \frac{y - x}{t}, y\right)\\ \end{array} \]
      5. Add Preprocessing

      Alternative 6: 86.9% accurate, 0.7× speedup?

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

        1. Initial program 29.2%

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

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

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

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

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

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

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

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

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

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

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

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

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

        if -1.25000000000000003e63 < t < 1.60000000000000009e141

        1. Initial program 86.2%

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

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

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

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

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

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

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

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

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

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

      Alternative 7: 76.2% accurate, 0.8× speedup?

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

        1. Initial program 73.6%

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

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

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

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

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

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

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

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

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

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

        if -9.9999999999999997e-73 < a < 1.15e21

        1. Initial program 60.7%

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

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

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

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

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

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

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

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

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

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

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

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

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

      Alternative 8: 73.3% accurate, 0.8× speedup?

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

        1. Initial program 73.6%

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

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

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

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

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

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

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

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

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

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

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

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

          if -2.9000000000000001e61 < a < 3.8e19

          1. Initial program 62.9%

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

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

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

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

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

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

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

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

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

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

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

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

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

        Alternative 9: 63.5% accurate, 0.8× speedup?

        \[\begin{array}{l} \\ \begin{array}{l} t_1 := y \cdot \frac{z - t}{a - t}\\ \mathbf{if}\;t \leq -3.7 \cdot 10^{+43}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;t \leq 2.95 \cdot 10^{-47}:\\ \;\;\;\;x + \frac{\left(y - x\right) \cdot z}{a}\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
        (FPCore (x y z t a)
         :precision binary64
         (let* ((t_1 (* y (/ (- z t) (- a t)))))
           (if (<= t -3.7e+43)
             t_1
             (if (<= t 2.95e-47) (+ x (/ (* (- y x) z) a)) t_1))))
        double code(double x, double y, double z, double t, double a) {
        	double t_1 = y * ((z - t) / (a - t));
        	double tmp;
        	if (t <= -3.7e+43) {
        		tmp = t_1;
        	} else if (t <= 2.95e-47) {
        		tmp = x + (((y - x) * z) / a);
        	} 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) :: tmp
            t_1 = y * ((z - t) / (a - t))
            if (t <= (-3.7d+43)) then
                tmp = t_1
            else if (t <= 2.95d-47) then
                tmp = x + (((y - x) * z) / a)
            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 * ((z - t) / (a - t));
        	double tmp;
        	if (t <= -3.7e+43) {
        		tmp = t_1;
        	} else if (t <= 2.95e-47) {
        		tmp = x + (((y - x) * z) / a);
        	} else {
        		tmp = t_1;
        	}
        	return tmp;
        }
        
        def code(x, y, z, t, a):
        	t_1 = y * ((z - t) / (a - t))
        	tmp = 0
        	if t <= -3.7e+43:
        		tmp = t_1
        	elif t <= 2.95e-47:
        		tmp = x + (((y - x) * z) / a)
        	else:
        		tmp = t_1
        	return tmp
        
        function code(x, y, z, t, a)
        	t_1 = Float64(y * Float64(Float64(z - t) / Float64(a - t)))
        	tmp = 0.0
        	if (t <= -3.7e+43)
        		tmp = t_1;
        	elseif (t <= 2.95e-47)
        		tmp = Float64(x + Float64(Float64(Float64(y - x) * z) / a));
        	else
        		tmp = t_1;
        	end
        	return tmp
        end
        
        function tmp_2 = code(x, y, z, t, a)
        	t_1 = y * ((z - t) / (a - t));
        	tmp = 0.0;
        	if (t <= -3.7e+43)
        		tmp = t_1;
        	elseif (t <= 2.95e-47)
        		tmp = x + (((y - x) * z) / a);
        	else
        		tmp = t_1;
        	end
        	tmp_2 = tmp;
        end
        
        code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(y * N[(N[(z - t), $MachinePrecision] / N[(a - t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, -3.7e+43], t$95$1, If[LessEqual[t, 2.95e-47], N[(x + N[(N[(N[(y - x), $MachinePrecision] * z), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision], t$95$1]]]
        
        \begin{array}{l}
        
        \\
        \begin{array}{l}
        t_1 := y \cdot \frac{z - t}{a - t}\\
        \mathbf{if}\;t \leq -3.7 \cdot 10^{+43}:\\
        \;\;\;\;t\_1\\
        
        \mathbf{elif}\;t \leq 2.95 \cdot 10^{-47}:\\
        \;\;\;\;x + \frac{\left(y - x\right) \cdot z}{a}\\
        
        \mathbf{else}:\\
        \;\;\;\;t\_1\\
        
        
        \end{array}
        \end{array}
        
        Derivation
        1. Split input into 2 regimes
        2. if t < -3.7000000000000001e43 or 2.94999999999999986e-47 < t

          1. Initial program 37.8%

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

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

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

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

              \[\leadsto \frac{y \cdot \color{blue}{\left(z - t\right)}}{a - t} \]
            4. --lowering--.f6438.7

              \[\leadsto \frac{y \cdot \left(z - t\right)}{\color{blue}{a - t}} \]
          5. Simplified38.7%

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

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

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

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

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

              \[\leadsto \frac{\color{blue}{z - t}}{a - t} \cdot y \]
            6. --lowering--.f6467.1

              \[\leadsto \frac{z - t}{\color{blue}{a - t}} \cdot y \]
          7. Applied egg-rr67.1%

            \[\leadsto \color{blue}{\frac{z - t}{a - t} \cdot y} \]

          if -3.7000000000000001e43 < t < 2.94999999999999986e-47

          1. Initial program 89.2%

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

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

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

              \[\leadsto x + \frac{\color{blue}{z \cdot \left(y - x\right)}}{a} \]
            3. --lowering--.f6468.2

              \[\leadsto x + \frac{z \cdot \color{blue}{\left(y - x\right)}}{a} \]
          5. Simplified68.2%

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

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

        Alternative 10: 65.2% accurate, 0.8× speedup?

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

          1. Initial program 37.8%

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

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

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

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

              \[\leadsto \frac{y \cdot \color{blue}{\left(z - t\right)}}{a - t} \]
            4. --lowering--.f6438.7

              \[\leadsto \frac{y \cdot \left(z - t\right)}{\color{blue}{a - t}} \]
          5. Simplified38.7%

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

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

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

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

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

              \[\leadsto \frac{\color{blue}{z - t}}{a - t} \cdot y \]
            6. --lowering--.f6467.1

              \[\leadsto \frac{z - t}{\color{blue}{a - t}} \cdot y \]
          7. Applied egg-rr67.1%

            \[\leadsto \color{blue}{\frac{z - t}{a - t} \cdot y} \]

          if -4.2999999999999998e42 < t < 6.99999999999999993e-50

          1. Initial program 89.2%

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

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

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

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

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

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

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

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

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

        Alternative 11: 53.1% accurate, 0.9× speedup?

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

          1. Initial program 28.3%

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

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

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

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

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

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

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

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

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

              \[\leadsto \mathsf{fma}\left(\color{blue}{\mathsf{neg}\left(\left(y - x\right)\right)}, \frac{t}{a - t}, x\right) \]
            9. sub-negN/A

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

              \[\leadsto \mathsf{fma}\left(\mathsf{neg}\left(\color{blue}{\left(\left(\mathsf{neg}\left(x\right)\right) + y\right)}\right), \frac{t}{a - t}, x\right) \]
            11. distribute-neg-inN/A

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

              \[\leadsto \left(\color{blue}{0} \cdot x + y\right) + a \cdot \left(\frac{y}{t} - \frac{x}{t}\right) \]
            15. mul0-lftN/A

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

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

              \[\leadsto \left(0 + \color{blue}{\left(\mathsf{neg}\left(-1\right)\right)} \cdot y\right) + a \cdot \left(\frac{y}{t} - \frac{x}{t}\right) \]
            18. cancel-sign-sub-invN/A

              \[\leadsto \color{blue}{\left(0 - -1 \cdot y\right)} + a \cdot \left(\frac{y}{t} - \frac{x}{t}\right) \]
            19. neg-sub0N/A

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

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

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

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

              \[\leadsto y + \color{blue}{\frac{a \cdot \left(y - x\right)}{t}} \]
          8. Simplified67.3%

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

          if -1.39999999999999996e106 < t < 6.0999999999999996e140

          1. Initial program 83.8%

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

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

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

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

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

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

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

              \[\leadsto x + \frac{y - x}{\frac{\color{blue}{a - t}}{z - t}} \]
            8. --lowering--.f6491.0

              \[\leadsto x + \frac{y - x}{\frac{a - t}{\color{blue}{z - t}}} \]
          4. Applied egg-rr91.0%

            \[\leadsto x + \color{blue}{\frac{y - x}{\frac{a - t}{z - t}}} \]
          5. Taylor expanded in t around 0

            \[\leadsto x + \frac{y - x}{\color{blue}{\frac{a}{z}}} \]
          6. Step-by-step derivation
            1. /-lowering-/.f6464.8

              \[\leadsto x + \frac{y - x}{\color{blue}{\frac{a}{z}}} \]
          7. Simplified64.8%

            \[\leadsto x + \frac{y - x}{\color{blue}{\frac{a}{z}}} \]
          8. Taylor expanded in y around inf

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

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

              \[\leadsto x + \frac{\color{blue}{z \cdot y}}{a} \]
            3. *-lowering-*.f6454.0

              \[\leadsto x + \frac{\color{blue}{z \cdot y}}{a} \]
          10. Simplified54.0%

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

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

        Alternative 12: 53.2% accurate, 0.9× speedup?

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

          1. Initial program 31.3%

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

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

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

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

              \[\leadsto \frac{y \cdot \color{blue}{\left(z - t\right)}}{a - t} \]
            4. --lowering--.f6437.1

              \[\leadsto \frac{y \cdot \left(z - t\right)}{\color{blue}{a - t}} \]
          5. Simplified37.1%

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

            \[\leadsto \color{blue}{-1 \cdot \frac{y \cdot \left(z - t\right)}{t}} \]
          7. Step-by-step derivation
            1. mul-1-negN/A

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

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

              \[\leadsto \mathsf{neg}\left(\color{blue}{y \cdot \frac{z - t}{t}}\right) \]
            4. *-lowering-*.f64N/A

              \[\leadsto \mathsf{neg}\left(\color{blue}{y \cdot \frac{z - t}{t}}\right) \]
            5. div-subN/A

              \[\leadsto \mathsf{neg}\left(y \cdot \color{blue}{\left(\frac{z}{t} - \frac{t}{t}\right)}\right) \]
            6. *-inversesN/A

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

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

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

              \[\leadsto \mathsf{neg}\left(y \cdot \color{blue}{\left(\frac{z}{t} + -1\right)}\right) \]
            10. /-lowering-/.f6460.7

              \[\leadsto -y \cdot \left(\color{blue}{\frac{z}{t}} + -1\right) \]
          8. Simplified60.7%

            \[\leadsto \color{blue}{-y \cdot \left(\frac{z}{t} + -1\right)} \]
          9. Taylor expanded in y around 0

            \[\leadsto \color{blue}{y \cdot \left(1 - \frac{z}{t}\right)} \]
          10. Step-by-step derivation
            1. sub-negN/A

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

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

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

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

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

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

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

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

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

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

              \[\leadsto \mathsf{fma}\left(y, \frac{z}{\color{blue}{\mathsf{neg}\left(t\right)}}, y\right) \]
            12. neg-lowering-neg.f6460.7

              \[\leadsto \mathsf{fma}\left(y, \frac{z}{\color{blue}{-t}}, y\right) \]
          11. Simplified60.7%

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

          if -1.5999999999999999e46 < t < 5.0000000000000001e109

          1. Initial program 87.9%

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

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

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

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

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

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

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

              \[\leadsto x + \frac{y - x}{\frac{\color{blue}{a - t}}{z - t}} \]
            8. --lowering--.f6492.4

              \[\leadsto x + \frac{y - x}{\frac{a - t}{\color{blue}{z - t}}} \]
          4. Applied egg-rr92.4%

            \[\leadsto x + \color{blue}{\frac{y - x}{\frac{a - t}{z - t}}} \]
          5. Taylor expanded in t around 0

            \[\leadsto x + \frac{y - x}{\color{blue}{\frac{a}{z}}} \]
          6. Step-by-step derivation
            1. /-lowering-/.f6467.7

              \[\leadsto x + \frac{y - x}{\color{blue}{\frac{a}{z}}} \]
          7. Simplified67.7%

            \[\leadsto x + \frac{y - x}{\color{blue}{\frac{a}{z}}} \]
          8. Taylor expanded in y around inf

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

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

              \[\leadsto x + \frac{\color{blue}{z \cdot y}}{a} \]
            3. *-lowering-*.f6456.3

              \[\leadsto x + \frac{\color{blue}{z \cdot y}}{a} \]
          10. Simplified56.3%

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

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

        Alternative 13: 50.7% accurate, 0.9× speedup?

        \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;t \leq -8 \cdot 10^{+61}:\\ \;\;\;\;y\\ \mathbf{elif}\;t \leq 2.25 \cdot 10^{+111}:\\ \;\;\;\;x + \frac{y \cdot z}{a}\\ \mathbf{else}:\\ \;\;\;\;y\\ \end{array} \end{array} \]
        (FPCore (x y z t a)
         :precision binary64
         (if (<= t -8e+61) y (if (<= t 2.25e+111) (+ x (/ (* y z) a)) y)))
        double code(double x, double y, double z, double t, double a) {
        	double tmp;
        	if (t <= -8e+61) {
        		tmp = y;
        	} else if (t <= 2.25e+111) {
        		tmp = x + ((y * z) / a);
        	} 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 (t <= (-8d+61)) then
                tmp = y
            else if (t <= 2.25d+111) then
                tmp = x + ((y * z) / a)
            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 (t <= -8e+61) {
        		tmp = y;
        	} else if (t <= 2.25e+111) {
        		tmp = x + ((y * z) / a);
        	} else {
        		tmp = y;
        	}
        	return tmp;
        }
        
        def code(x, y, z, t, a):
        	tmp = 0
        	if t <= -8e+61:
        		tmp = y
        	elif t <= 2.25e+111:
        		tmp = x + ((y * z) / a)
        	else:
        		tmp = y
        	return tmp
        
        function code(x, y, z, t, a)
        	tmp = 0.0
        	if (t <= -8e+61)
        		tmp = y;
        	elseif (t <= 2.25e+111)
        		tmp = Float64(x + Float64(Float64(y * z) / a));
        	else
        		tmp = y;
        	end
        	return tmp
        end
        
        function tmp_2 = code(x, y, z, t, a)
        	tmp = 0.0;
        	if (t <= -8e+61)
        		tmp = y;
        	elseif (t <= 2.25e+111)
        		tmp = x + ((y * z) / a);
        	else
        		tmp = y;
        	end
        	tmp_2 = tmp;
        end
        
        code[x_, y_, z_, t_, a_] := If[LessEqual[t, -8e+61], y, If[LessEqual[t, 2.25e+111], N[(x + N[(N[(y * z), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision], y]]
        
        \begin{array}{l}
        
        \\
        \begin{array}{l}
        \mathbf{if}\;t \leq -8 \cdot 10^{+61}:\\
        \;\;\;\;y\\
        
        \mathbf{elif}\;t \leq 2.25 \cdot 10^{+111}:\\
        \;\;\;\;x + \frac{y \cdot z}{a}\\
        
        \mathbf{else}:\\
        \;\;\;\;y\\
        
        
        \end{array}
        \end{array}
        
        Derivation
        1. Split input into 2 regimes
        2. if t < -7.9999999999999996e61 or 2.25e111 < t

          1. Initial program 29.0%

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

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

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

            if -7.9999999999999996e61 < t < 2.25e111

            1. Initial program 88.1%

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

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

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

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

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

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

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

                \[\leadsto x + \frac{y - x}{\frac{\color{blue}{a - t}}{z - t}} \]
              8. --lowering--.f6492.6

                \[\leadsto x + \frac{y - x}{\frac{a - t}{\color{blue}{z - t}}} \]
            4. Applied egg-rr92.6%

              \[\leadsto x + \color{blue}{\frac{y - x}{\frac{a - t}{z - t}}} \]
            5. Taylor expanded in t around 0

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

                \[\leadsto x + \frac{y - x}{\color{blue}{\frac{a}{z}}} \]
            7. Simplified67.1%

              \[\leadsto x + \frac{y - x}{\color{blue}{\frac{a}{z}}} \]
            8. Taylor expanded in y around inf

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

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

                \[\leadsto x + \frac{\color{blue}{z \cdot y}}{a} \]
              3. *-lowering-*.f6456.0

                \[\leadsto x + \frac{\color{blue}{z \cdot y}}{a} \]
            10. Simplified56.0%

              \[\leadsto x + \color{blue}{\frac{z \cdot y}{a}} \]
          5. Recombined 2 regimes into one program.
          6. Final simplification55.6%

            \[\leadsto \begin{array}{l} \mathbf{if}\;t \leq -8 \cdot 10^{+61}:\\ \;\;\;\;y\\ \mathbf{elif}\;t \leq 2.25 \cdot 10^{+111}:\\ \;\;\;\;x + \frac{y \cdot z}{a}\\ \mathbf{else}:\\ \;\;\;\;y\\ \end{array} \]
          7. Add Preprocessing

          Alternative 14: 38.4% accurate, 2.2× speedup?

          \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;t \leq -5.6 \cdot 10^{+45}:\\ \;\;\;\;y\\ \mathbf{elif}\;t \leq 6.1 \cdot 10^{+140}:\\ \;\;\;\;x\\ \mathbf{else}:\\ \;\;\;\;y\\ \end{array} \end{array} \]
          (FPCore (x y z t a)
           :precision binary64
           (if (<= t -5.6e+45) y (if (<= t 6.1e+140) x y)))
          double code(double x, double y, double z, double t, double a) {
          	double tmp;
          	if (t <= -5.6e+45) {
          		tmp = y;
          	} else if (t <= 6.1e+140) {
          		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 (t <= (-5.6d+45)) then
                  tmp = y
              else if (t <= 6.1d+140) 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 (t <= -5.6e+45) {
          		tmp = y;
          	} else if (t <= 6.1e+140) {
          		tmp = x;
          	} else {
          		tmp = y;
          	}
          	return tmp;
          }
          
          def code(x, y, z, t, a):
          	tmp = 0
          	if t <= -5.6e+45:
          		tmp = y
          	elif t <= 6.1e+140:
          		tmp = x
          	else:
          		tmp = y
          	return tmp
          
          function code(x, y, z, t, a)
          	tmp = 0.0
          	if (t <= -5.6e+45)
          		tmp = y;
          	elseif (t <= 6.1e+140)
          		tmp = x;
          	else
          		tmp = y;
          	end
          	return tmp
          end
          
          function tmp_2 = code(x, y, z, t, a)
          	tmp = 0.0;
          	if (t <= -5.6e+45)
          		tmp = y;
          	elseif (t <= 6.1e+140)
          		tmp = x;
          	else
          		tmp = y;
          	end
          	tmp_2 = tmp;
          end
          
          code[x_, y_, z_, t_, a_] := If[LessEqual[t, -5.6e+45], y, If[LessEqual[t, 6.1e+140], x, y]]
          
          \begin{array}{l}
          
          \\
          \begin{array}{l}
          \mathbf{if}\;t \leq -5.6 \cdot 10^{+45}:\\
          \;\;\;\;y\\
          
          \mathbf{elif}\;t \leq 6.1 \cdot 10^{+140}:\\
          \;\;\;\;x\\
          
          \mathbf{else}:\\
          \;\;\;\;y\\
          
          
          \end{array}
          \end{array}
          
          Derivation
          1. Split input into 2 regimes
          2. if t < -5.5999999999999999e45 or 6.0999999999999996e140 < t

            1. Initial program 31.6%

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

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

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

              if -5.5999999999999999e45 < t < 6.0999999999999996e140

              1. Initial program 86.0%

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

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

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

              Alternative 15: 25.3% accurate, 29.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 67.3%

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

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

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

                Alternative 16: 2.8% accurate, 29.0× speedup?

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

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

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

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

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

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

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

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

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

                    \[\leadsto x + \frac{\mathsf{fma}\left(z - t, \mathsf{neg}\left(x\right), \color{blue}{\left(z - t\right) \cdot y}\right)}{a - t} \]
                  9. --lowering--.f6466.9

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

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

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

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

                    \[\leadsto \color{blue}{x + -1 \cdot x} \]
                  3. Step-by-step derivation
                    1. distribute-rgt1-inN/A

                      \[\leadsto \color{blue}{\left(-1 + 1\right) \cdot x} \]
                    2. metadata-evalN/A

                      \[\leadsto \color{blue}{0} \cdot x \]
                    3. mul0-lft2.8

                      \[\leadsto \color{blue}{0} \]
                  4. Simplified2.8%

                    \[\leadsto \color{blue}{0} \]
                  5. Add Preprocessing

                  Developer Target 1: 87.0% accurate, 0.6× speedup?

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

                  Reproduce

                  ?
                  herbie shell --seed 2024198 
                  (FPCore (x y z t a)
                    :name "Graphics.Rendering.Chart.Axis.Types:linMap from Chart-1.5.3"
                    :precision binary64
                  
                    :alt
                    (! :herbie-platform default (if (< a -646122513817703/4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) (+ x (* (/ (- y x) 1) (/ (- z t) (- a t)))) (if (< a 1887201585041587/50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) (- y (* (/ z t) (- y x))) (+ x (* (/ (- y x) 1) (/ (- z t) (- a t)))))))
                  
                    (+ x (/ (* (- y x) (- z t)) (- a t))))