Data.Colour.RGB:hslsv from colour-2.3.3, B

Percentage Accurate: 99.4% → 99.8%
Time: 10.7s
Alternatives: 15
Speedup: 1.1×

Specification

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

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

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

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

Alternative 1: 99.8% accurate, 1.1× speedup?

\[\begin{array}{l} \\ \mathsf{fma}\left(a, 120, \left(x - y\right) \cdot \frac{-60}{t - z}\right) \end{array} \]
(FPCore (x y z t a)
 :precision binary64
 (fma a 120.0 (* (- x y) (/ -60.0 (- t z)))))
double code(double x, double y, double z, double t, double a) {
	return fma(a, 120.0, ((x - y) * (-60.0 / (t - z))));
}
function code(x, y, z, t, a)
	return fma(a, 120.0, Float64(Float64(x - y) * Float64(-60.0 / Float64(t - z))))
end
code[x_, y_, z_, t_, a_] := N[(a * 120.0 + N[(N[(x - y), $MachinePrecision] * N[(-60.0 / N[(t - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\mathsf{fma}\left(a, 120, \left(x - y\right) \cdot \frac{-60}{t - z}\right)
\end{array}
Derivation
  1. Initial program 99.1%

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

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

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

      \[\leadsto \color{blue}{a \cdot 120} + \frac{60 \cdot \left(x - y\right)}{z - t} \]
    4. lower-fma.f6499.1

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

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

      \[\leadsto \mathsf{fma}\left(a, 120, \frac{\color{blue}{60 \cdot \left(x - y\right)}}{z - t}\right) \]
    7. *-commutativeN/A

      \[\leadsto \mathsf{fma}\left(a, 120, \frac{\color{blue}{\left(x - y\right) \cdot 60}}{z - t}\right) \]
    8. associate-/l*N/A

      \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\left(x - y\right) \cdot \frac{60}{z - t}}\right) \]
    9. *-commutativeN/A

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

      \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\frac{60}{z - t} \cdot \left(x - y\right)}\right) \]
    11. frac-2negN/A

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

      \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\frac{\mathsf{neg}\left(60\right)}{\mathsf{neg}\left(\left(z - t\right)\right)}} \cdot \left(x - y\right)\right) \]
    13. metadata-evalN/A

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

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

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

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

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

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

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

      \[\leadsto \mathsf{fma}\left(a, 120, \frac{-60}{\color{blue}{t} - z} \cdot \left(x - y\right)\right) \]
    21. lower--.f6499.8

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

    \[\leadsto \color{blue}{\mathsf{fma}\left(a, 120, \frac{-60}{t - z} \cdot \left(x - y\right)\right)} \]
  5. Final simplification99.8%

    \[\leadsto \mathsf{fma}\left(a, 120, \left(x - y\right) \cdot \frac{-60}{t - z}\right) \]
  6. Add Preprocessing

Alternative 2: 54.7% accurate, 0.4× speedup?

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

\\
\begin{array}{l}
t_1 := \frac{x}{z} \cdot 60\\
t_2 := \frac{60 \cdot \left(x - y\right)}{z - t}\\
\mathbf{if}\;t\_2 \leq -4 \cdot 10^{+134}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;t\_2 \leq 2 \cdot 10^{+217}:\\
\;\;\;\;120 \cdot a\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (/.f64 (*.f64 #s(literal 60 binary64) (-.f64 x y)) (-.f64 z t)) < -3.99999999999999969e134 or 1.99999999999999992e217 < (/.f64 (*.f64 #s(literal 60 binary64) (-.f64 x y)) (-.f64 z t))

    1. Initial program 96.5%

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

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

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

        \[\leadsto \color{blue}{a \cdot 120} + \frac{60 \cdot \left(x - y\right)}{z - t} \]
      4. lower-fma.f6496.5

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

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

        \[\leadsto \mathsf{fma}\left(a, 120, \frac{\color{blue}{60 \cdot \left(x - y\right)}}{z - t}\right) \]
      7. *-commutativeN/A

        \[\leadsto \mathsf{fma}\left(a, 120, \frac{\color{blue}{\left(x - y\right) \cdot 60}}{z - t}\right) \]
      8. associate-/l*N/A

        \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\left(x - y\right) \cdot \frac{60}{z - t}}\right) \]
      9. *-commutativeN/A

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

        \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\frac{60}{z - t} \cdot \left(x - y\right)}\right) \]
      11. frac-2negN/A

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

        \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\frac{\mathsf{neg}\left(60\right)}{\mathsf{neg}\left(\left(z - t\right)\right)}} \cdot \left(x - y\right)\right) \]
      13. metadata-evalN/A

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

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

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

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

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

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

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

        \[\leadsto \mathsf{fma}\left(a, 120, \frac{-60}{\color{blue}{t} - z} \cdot \left(x - y\right)\right) \]
      21. lower--.f6499.7

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

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

      \[\leadsto \color{blue}{-60 \cdot \frac{x}{t - z}} \]
    6. Step-by-step derivation
      1. associate-*r/N/A

        \[\leadsto \color{blue}{\frac{-60 \cdot x}{t - z}} \]
      2. remove-double-negN/A

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

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

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

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

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

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

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

        \[\leadsto \frac{\color{blue}{x \cdot -60}}{-1 \cdot \left(z - t\right)} \]
      10. lower-*.f64N/A

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

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

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

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

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

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

        \[\leadsto \frac{x \cdot -60}{\color{blue}{t} - z} \]
      17. lower--.f6449.3

        \[\leadsto \frac{x \cdot -60}{\color{blue}{t - z}} \]
    7. Applied rewrites49.3%

      \[\leadsto \color{blue}{\frac{x \cdot -60}{t - z}} \]
    8. Taylor expanded in t around 0

      \[\leadsto 60 \cdot \color{blue}{\frac{x}{z}} \]
    9. Step-by-step derivation
      1. Applied rewrites42.0%

        \[\leadsto \frac{x}{z} \cdot \color{blue}{60} \]

      if -3.99999999999999969e134 < (/.f64 (*.f64 #s(literal 60 binary64) (-.f64 x y)) (-.f64 z t)) < 1.99999999999999992e217

      1. Initial program 99.9%

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

        \[\leadsto \color{blue}{120 \cdot a} \]
      4. Step-by-step derivation
        1. *-commutativeN/A

          \[\leadsto \color{blue}{a \cdot 120} \]
        2. lower-*.f6466.4

          \[\leadsto \color{blue}{a \cdot 120} \]
      5. Applied rewrites66.4%

        \[\leadsto \color{blue}{a \cdot 120} \]
    10. Recombined 2 regimes into one program.
    11. Final simplification60.8%

      \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{60 \cdot \left(x - y\right)}{z - t} \leq -4 \cdot 10^{+134}:\\ \;\;\;\;\frac{x}{z} \cdot 60\\ \mathbf{elif}\;\frac{60 \cdot \left(x - y\right)}{z - t} \leq 2 \cdot 10^{+217}:\\ \;\;\;\;120 \cdot a\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{z} \cdot 60\\ \end{array} \]
    12. Add Preprocessing

    Alternative 3: 58.1% accurate, 0.5× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;120 \cdot a \leq -5.8 \cdot 10^{-83}:\\ \;\;\;\;120 \cdot a\\ \mathbf{elif}\;120 \cdot a \leq -5.2 \cdot 10^{-222}:\\ \;\;\;\;\frac{x}{-0.016666666666666666 \cdot \left(t - z\right)}\\ \mathbf{elif}\;120 \cdot a \leq 1.02 \cdot 10^{-178}:\\ \;\;\;\;\frac{-60}{z - t} \cdot y\\ \mathbf{elif}\;120 \cdot a \leq 2.7 \cdot 10^{-48}:\\ \;\;\;\;\frac{x - y}{t} \cdot -60\\ \mathbf{else}:\\ \;\;\;\;120 \cdot a\\ \end{array} \end{array} \]
    (FPCore (x y z t a)
     :precision binary64
     (if (<= (* 120.0 a) -5.8e-83)
       (* 120.0 a)
       (if (<= (* 120.0 a) -5.2e-222)
         (/ x (* -0.016666666666666666 (- t z)))
         (if (<= (* 120.0 a) 1.02e-178)
           (* (/ -60.0 (- z t)) y)
           (if (<= (* 120.0 a) 2.7e-48) (* (/ (- x y) t) -60.0) (* 120.0 a))))))
    double code(double x, double y, double z, double t, double a) {
    	double tmp;
    	if ((120.0 * a) <= -5.8e-83) {
    		tmp = 120.0 * a;
    	} else if ((120.0 * a) <= -5.2e-222) {
    		tmp = x / (-0.016666666666666666 * (t - z));
    	} else if ((120.0 * a) <= 1.02e-178) {
    		tmp = (-60.0 / (z - t)) * y;
    	} else if ((120.0 * a) <= 2.7e-48) {
    		tmp = ((x - y) / t) * -60.0;
    	} else {
    		tmp = 120.0 * a;
    	}
    	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 ((120.0d0 * a) <= (-5.8d-83)) then
            tmp = 120.0d0 * a
        else if ((120.0d0 * a) <= (-5.2d-222)) then
            tmp = x / ((-0.016666666666666666d0) * (t - z))
        else if ((120.0d0 * a) <= 1.02d-178) then
            tmp = ((-60.0d0) / (z - t)) * y
        else if ((120.0d0 * a) <= 2.7d-48) then
            tmp = ((x - y) / t) * (-60.0d0)
        else
            tmp = 120.0d0 * a
        end if
        code = tmp
    end function
    
    public static double code(double x, double y, double z, double t, double a) {
    	double tmp;
    	if ((120.0 * a) <= -5.8e-83) {
    		tmp = 120.0 * a;
    	} else if ((120.0 * a) <= -5.2e-222) {
    		tmp = x / (-0.016666666666666666 * (t - z));
    	} else if ((120.0 * a) <= 1.02e-178) {
    		tmp = (-60.0 / (z - t)) * y;
    	} else if ((120.0 * a) <= 2.7e-48) {
    		tmp = ((x - y) / t) * -60.0;
    	} else {
    		tmp = 120.0 * a;
    	}
    	return tmp;
    }
    
    def code(x, y, z, t, a):
    	tmp = 0
    	if (120.0 * a) <= -5.8e-83:
    		tmp = 120.0 * a
    	elif (120.0 * a) <= -5.2e-222:
    		tmp = x / (-0.016666666666666666 * (t - z))
    	elif (120.0 * a) <= 1.02e-178:
    		tmp = (-60.0 / (z - t)) * y
    	elif (120.0 * a) <= 2.7e-48:
    		tmp = ((x - y) / t) * -60.0
    	else:
    		tmp = 120.0 * a
    	return tmp
    
    function code(x, y, z, t, a)
    	tmp = 0.0
    	if (Float64(120.0 * a) <= -5.8e-83)
    		tmp = Float64(120.0 * a);
    	elseif (Float64(120.0 * a) <= -5.2e-222)
    		tmp = Float64(x / Float64(-0.016666666666666666 * Float64(t - z)));
    	elseif (Float64(120.0 * a) <= 1.02e-178)
    		tmp = Float64(Float64(-60.0 / Float64(z - t)) * y);
    	elseif (Float64(120.0 * a) <= 2.7e-48)
    		tmp = Float64(Float64(Float64(x - y) / t) * -60.0);
    	else
    		tmp = Float64(120.0 * a);
    	end
    	return tmp
    end
    
    function tmp_2 = code(x, y, z, t, a)
    	tmp = 0.0;
    	if ((120.0 * a) <= -5.8e-83)
    		tmp = 120.0 * a;
    	elseif ((120.0 * a) <= -5.2e-222)
    		tmp = x / (-0.016666666666666666 * (t - z));
    	elseif ((120.0 * a) <= 1.02e-178)
    		tmp = (-60.0 / (z - t)) * y;
    	elseif ((120.0 * a) <= 2.7e-48)
    		tmp = ((x - y) / t) * -60.0;
    	else
    		tmp = 120.0 * a;
    	end
    	tmp_2 = tmp;
    end
    
    code[x_, y_, z_, t_, a_] := If[LessEqual[N[(120.0 * a), $MachinePrecision], -5.8e-83], N[(120.0 * a), $MachinePrecision], If[LessEqual[N[(120.0 * a), $MachinePrecision], -5.2e-222], N[(x / N[(-0.016666666666666666 * N[(t - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(120.0 * a), $MachinePrecision], 1.02e-178], N[(N[(-60.0 / N[(z - t), $MachinePrecision]), $MachinePrecision] * y), $MachinePrecision], If[LessEqual[N[(120.0 * a), $MachinePrecision], 2.7e-48], N[(N[(N[(x - y), $MachinePrecision] / t), $MachinePrecision] * -60.0), $MachinePrecision], N[(120.0 * a), $MachinePrecision]]]]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    \mathbf{if}\;120 \cdot a \leq -5.8 \cdot 10^{-83}:\\
    \;\;\;\;120 \cdot a\\
    
    \mathbf{elif}\;120 \cdot a \leq -5.2 \cdot 10^{-222}:\\
    \;\;\;\;\frac{x}{-0.016666666666666666 \cdot \left(t - z\right)}\\
    
    \mathbf{elif}\;120 \cdot a \leq 1.02 \cdot 10^{-178}:\\
    \;\;\;\;\frac{-60}{z - t} \cdot y\\
    
    \mathbf{elif}\;120 \cdot a \leq 2.7 \cdot 10^{-48}:\\
    \;\;\;\;\frac{x - y}{t} \cdot -60\\
    
    \mathbf{else}:\\
    \;\;\;\;120 \cdot a\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 4 regimes
    2. if (*.f64 a #s(literal 120 binary64)) < -5.7999999999999998e-83 or 2.70000000000000011e-48 < (*.f64 a #s(literal 120 binary64))

      1. Initial program 98.7%

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

        \[\leadsto \color{blue}{120 \cdot a} \]
      4. Step-by-step derivation
        1. *-commutativeN/A

          \[\leadsto \color{blue}{a \cdot 120} \]
        2. lower-*.f6477.3

          \[\leadsto \color{blue}{a \cdot 120} \]
      5. Applied rewrites77.3%

        \[\leadsto \color{blue}{a \cdot 120} \]

      if -5.7999999999999998e-83 < (*.f64 a #s(literal 120 binary64)) < -5.1999999999999997e-222

      1. Initial program 99.7%

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

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

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

          \[\leadsto \color{blue}{a \cdot 120} + \frac{60 \cdot \left(x - y\right)}{z - t} \]
        4. lower-fma.f6499.7

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

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

          \[\leadsto \mathsf{fma}\left(a, 120, \frac{\color{blue}{60 \cdot \left(x - y\right)}}{z - t}\right) \]
        7. *-commutativeN/A

          \[\leadsto \mathsf{fma}\left(a, 120, \frac{\color{blue}{\left(x - y\right) \cdot 60}}{z - t}\right) \]
        8. associate-/l*N/A

          \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\left(x - y\right) \cdot \frac{60}{z - t}}\right) \]
        9. *-commutativeN/A

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

          \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\frac{60}{z - t} \cdot \left(x - y\right)}\right) \]
        11. frac-2negN/A

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

          \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\frac{\mathsf{neg}\left(60\right)}{\mathsf{neg}\left(\left(z - t\right)\right)}} \cdot \left(x - y\right)\right) \]
        13. metadata-evalN/A

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

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

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

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

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

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

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

          \[\leadsto \mathsf{fma}\left(a, 120, \frac{-60}{\color{blue}{t} - z} \cdot \left(x - y\right)\right) \]
        21. lower--.f6499.7

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

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

        \[\leadsto \color{blue}{-60 \cdot \frac{x}{t - z}} \]
      6. Step-by-step derivation
        1. associate-*r/N/A

          \[\leadsto \color{blue}{\frac{-60 \cdot x}{t - z}} \]
        2. remove-double-negN/A

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

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

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

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

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

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

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

          \[\leadsto \frac{\color{blue}{x \cdot -60}}{-1 \cdot \left(z - t\right)} \]
        10. lower-*.f64N/A

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

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

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

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

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

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

          \[\leadsto \frac{x \cdot -60}{\color{blue}{t} - z} \]
        17. lower--.f6454.8

          \[\leadsto \frac{x \cdot -60}{\color{blue}{t - z}} \]
      7. Applied rewrites54.8%

        \[\leadsto \color{blue}{\frac{x \cdot -60}{t - z}} \]
      8. Step-by-step derivation
        1. Applied rewrites54.8%

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

        if -5.1999999999999997e-222 < (*.f64 a #s(literal 120 binary64)) < 1.02000000000000006e-178

        1. Initial program 99.7%

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

          \[\leadsto \color{blue}{-60 \cdot \frac{y}{z - t}} \]
        4. Step-by-step derivation
          1. associate-*r/N/A

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

            \[\leadsto \color{blue}{\frac{-60}{z - t} \cdot y} \]
          3. metadata-evalN/A

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

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

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

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

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

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

            \[\leadsto \left(\mathsf{neg}\left(\frac{\color{blue}{60}}{z - t}\right)\right) \cdot y \]
          10. distribute-neg-fracN/A

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

            \[\leadsto \frac{\color{blue}{-60}}{z - t} \cdot y \]
          12. lower-/.f64N/A

            \[\leadsto \color{blue}{\frac{-60}{z - t}} \cdot y \]
          13. lower--.f6463.6

            \[\leadsto \frac{-60}{\color{blue}{z - t}} \cdot y \]
        5. Applied rewrites63.6%

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

        if 1.02000000000000006e-178 < (*.f64 a #s(literal 120 binary64)) < 2.70000000000000011e-48

        1. Initial program 99.7%

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

          \[\leadsto \color{blue}{60 \cdot \frac{x - y}{z - t}} \]
        4. Step-by-step derivation
          1. associate-*r/N/A

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

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

            \[\leadsto \color{blue}{\left(x - y\right) \cdot \frac{60}{z - t}} \]
          4. metadata-evalN/A

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

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

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

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

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

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

            \[\leadsto \left(x - y\right) \cdot \color{blue}{\frac{60}{z - t}} \]
          11. lower--.f6472.8

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

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

          \[\leadsto -60 \cdot \color{blue}{\frac{x - y}{t}} \]
        7. Step-by-step derivation
          1. Applied rewrites50.3%

            \[\leadsto \frac{x - y}{t} \cdot \color{blue}{-60} \]
        8. Recombined 4 regimes into one program.
        9. Final simplification70.0%

          \[\leadsto \begin{array}{l} \mathbf{if}\;120 \cdot a \leq -5.8 \cdot 10^{-83}:\\ \;\;\;\;120 \cdot a\\ \mathbf{elif}\;120 \cdot a \leq -5.2 \cdot 10^{-222}:\\ \;\;\;\;\frac{x}{-0.016666666666666666 \cdot \left(t - z\right)}\\ \mathbf{elif}\;120 \cdot a \leq 1.02 \cdot 10^{-178}:\\ \;\;\;\;\frac{-60}{z - t} \cdot y\\ \mathbf{elif}\;120 \cdot a \leq 2.7 \cdot 10^{-48}:\\ \;\;\;\;\frac{x - y}{t} \cdot -60\\ \mathbf{else}:\\ \;\;\;\;120 \cdot a\\ \end{array} \]
        10. Add Preprocessing

        Alternative 4: 57.8% accurate, 0.6× speedup?

        \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;120 \cdot a \leq -2.6 \cdot 10^{-50}:\\ \;\;\;\;120 \cdot a\\ \mathbf{elif}\;120 \cdot a \leq 10^{-201}:\\ \;\;\;\;\frac{60}{z} \cdot \left(x - y\right)\\ \mathbf{elif}\;120 \cdot a \leq 2.7 \cdot 10^{-48}:\\ \;\;\;\;\frac{-60}{t} \cdot \left(x - y\right)\\ \mathbf{else}:\\ \;\;\;\;120 \cdot a\\ \end{array} \end{array} \]
        (FPCore (x y z t a)
         :precision binary64
         (if (<= (* 120.0 a) -2.6e-50)
           (* 120.0 a)
           (if (<= (* 120.0 a) 1e-201)
             (* (/ 60.0 z) (- x y))
             (if (<= (* 120.0 a) 2.7e-48) (* (/ -60.0 t) (- x y)) (* 120.0 a)))))
        double code(double x, double y, double z, double t, double a) {
        	double tmp;
        	if ((120.0 * a) <= -2.6e-50) {
        		tmp = 120.0 * a;
        	} else if ((120.0 * a) <= 1e-201) {
        		tmp = (60.0 / z) * (x - y);
        	} else if ((120.0 * a) <= 2.7e-48) {
        		tmp = (-60.0 / t) * (x - y);
        	} else {
        		tmp = 120.0 * a;
        	}
        	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 ((120.0d0 * a) <= (-2.6d-50)) then
                tmp = 120.0d0 * a
            else if ((120.0d0 * a) <= 1d-201) then
                tmp = (60.0d0 / z) * (x - y)
            else if ((120.0d0 * a) <= 2.7d-48) then
                tmp = ((-60.0d0) / t) * (x - y)
            else
                tmp = 120.0d0 * a
            end if
            code = tmp
        end function
        
        public static double code(double x, double y, double z, double t, double a) {
        	double tmp;
        	if ((120.0 * a) <= -2.6e-50) {
        		tmp = 120.0 * a;
        	} else if ((120.0 * a) <= 1e-201) {
        		tmp = (60.0 / z) * (x - y);
        	} else if ((120.0 * a) <= 2.7e-48) {
        		tmp = (-60.0 / t) * (x - y);
        	} else {
        		tmp = 120.0 * a;
        	}
        	return tmp;
        }
        
        def code(x, y, z, t, a):
        	tmp = 0
        	if (120.0 * a) <= -2.6e-50:
        		tmp = 120.0 * a
        	elif (120.0 * a) <= 1e-201:
        		tmp = (60.0 / z) * (x - y)
        	elif (120.0 * a) <= 2.7e-48:
        		tmp = (-60.0 / t) * (x - y)
        	else:
        		tmp = 120.0 * a
        	return tmp
        
        function code(x, y, z, t, a)
        	tmp = 0.0
        	if (Float64(120.0 * a) <= -2.6e-50)
        		tmp = Float64(120.0 * a);
        	elseif (Float64(120.0 * a) <= 1e-201)
        		tmp = Float64(Float64(60.0 / z) * Float64(x - y));
        	elseif (Float64(120.0 * a) <= 2.7e-48)
        		tmp = Float64(Float64(-60.0 / t) * Float64(x - y));
        	else
        		tmp = Float64(120.0 * a);
        	end
        	return tmp
        end
        
        function tmp_2 = code(x, y, z, t, a)
        	tmp = 0.0;
        	if ((120.0 * a) <= -2.6e-50)
        		tmp = 120.0 * a;
        	elseif ((120.0 * a) <= 1e-201)
        		tmp = (60.0 / z) * (x - y);
        	elseif ((120.0 * a) <= 2.7e-48)
        		tmp = (-60.0 / t) * (x - y);
        	else
        		tmp = 120.0 * a;
        	end
        	tmp_2 = tmp;
        end
        
        code[x_, y_, z_, t_, a_] := If[LessEqual[N[(120.0 * a), $MachinePrecision], -2.6e-50], N[(120.0 * a), $MachinePrecision], If[LessEqual[N[(120.0 * a), $MachinePrecision], 1e-201], N[(N[(60.0 / z), $MachinePrecision] * N[(x - y), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(120.0 * a), $MachinePrecision], 2.7e-48], N[(N[(-60.0 / t), $MachinePrecision] * N[(x - y), $MachinePrecision]), $MachinePrecision], N[(120.0 * a), $MachinePrecision]]]]
        
        \begin{array}{l}
        
        \\
        \begin{array}{l}
        \mathbf{if}\;120 \cdot a \leq -2.6 \cdot 10^{-50}:\\
        \;\;\;\;120 \cdot a\\
        
        \mathbf{elif}\;120 \cdot a \leq 10^{-201}:\\
        \;\;\;\;\frac{60}{z} \cdot \left(x - y\right)\\
        
        \mathbf{elif}\;120 \cdot a \leq 2.7 \cdot 10^{-48}:\\
        \;\;\;\;\frac{-60}{t} \cdot \left(x - y\right)\\
        
        \mathbf{else}:\\
        \;\;\;\;120 \cdot a\\
        
        
        \end{array}
        \end{array}
        
        Derivation
        1. Split input into 3 regimes
        2. if (*.f64 a #s(literal 120 binary64)) < -2.6000000000000001e-50 or 2.70000000000000011e-48 < (*.f64 a #s(literal 120 binary64))

          1. Initial program 98.6%

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

            \[\leadsto \color{blue}{120 \cdot a} \]
          4. Step-by-step derivation
            1. *-commutativeN/A

              \[\leadsto \color{blue}{a \cdot 120} \]
            2. lower-*.f6479.3

              \[\leadsto \color{blue}{a \cdot 120} \]
          5. Applied rewrites79.3%

            \[\leadsto \color{blue}{a \cdot 120} \]

          if -2.6000000000000001e-50 < (*.f64 a #s(literal 120 binary64)) < 9.99999999999999946e-202

          1. Initial program 99.7%

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

            \[\leadsto \color{blue}{60 \cdot \frac{x - y}{z - t}} \]
          4. Step-by-step derivation
            1. associate-*r/N/A

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

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

              \[\leadsto \color{blue}{\left(x - y\right) \cdot \frac{60}{z - t}} \]
            4. metadata-evalN/A

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

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

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

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

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

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

              \[\leadsto \left(x - y\right) \cdot \color{blue}{\frac{60}{z - t}} \]
            11. lower--.f6484.4

              \[\leadsto \left(x - y\right) \cdot \frac{60}{\color{blue}{z - t}} \]
          5. Applied rewrites84.4%

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

            \[\leadsto \left(x - y\right) \cdot \frac{60}{\color{blue}{z}} \]
          7. Step-by-step derivation
            1. Applied rewrites51.2%

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

            if 9.99999999999999946e-202 < (*.f64 a #s(literal 120 binary64)) < 2.70000000000000011e-48

            1. Initial program 99.6%

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

              \[\leadsto \color{blue}{60 \cdot \frac{x - y}{z - t}} \]
            4. Step-by-step derivation
              1. associate-*r/N/A

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

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

                \[\leadsto \color{blue}{\left(x - y\right) \cdot \frac{60}{z - t}} \]
              4. metadata-evalN/A

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

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

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

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

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

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

                \[\leadsto \left(x - y\right) \cdot \color{blue}{\frac{60}{z - t}} \]
              11. lower--.f6475.9

                \[\leadsto \left(x - y\right) \cdot \frac{60}{\color{blue}{z - t}} \]
            5. Applied rewrites75.9%

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

              \[\leadsto \left(x - y\right) \cdot \frac{-60}{\color{blue}{t}} \]
            7. Step-by-step derivation
              1. Applied rewrites50.9%

                \[\leadsto \left(x - y\right) \cdot \frac{-60}{\color{blue}{t}} \]
            8. Recombined 3 regimes into one program.
            9. Final simplification67.9%

              \[\leadsto \begin{array}{l} \mathbf{if}\;120 \cdot a \leq -2.6 \cdot 10^{-50}:\\ \;\;\;\;120 \cdot a\\ \mathbf{elif}\;120 \cdot a \leq 10^{-201}:\\ \;\;\;\;\frac{60}{z} \cdot \left(x - y\right)\\ \mathbf{elif}\;120 \cdot a \leq 2.7 \cdot 10^{-48}:\\ \;\;\;\;\frac{-60}{t} \cdot \left(x - y\right)\\ \mathbf{else}:\\ \;\;\;\;120 \cdot a\\ \end{array} \]
            10. Add Preprocessing

            Alternative 5: 57.8% accurate, 0.6× speedup?

            \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;120 \cdot a \leq -2.6 \cdot 10^{-50}:\\ \;\;\;\;120 \cdot a\\ \mathbf{elif}\;120 \cdot a \leq 10^{-201}:\\ \;\;\;\;\frac{x - y}{z} \cdot 60\\ \mathbf{elif}\;120 \cdot a \leq 2.7 \cdot 10^{-48}:\\ \;\;\;\;\frac{-60}{t} \cdot \left(x - y\right)\\ \mathbf{else}:\\ \;\;\;\;120 \cdot a\\ \end{array} \end{array} \]
            (FPCore (x y z t a)
             :precision binary64
             (if (<= (* 120.0 a) -2.6e-50)
               (* 120.0 a)
               (if (<= (* 120.0 a) 1e-201)
                 (* (/ (- x y) z) 60.0)
                 (if (<= (* 120.0 a) 2.7e-48) (* (/ -60.0 t) (- x y)) (* 120.0 a)))))
            double code(double x, double y, double z, double t, double a) {
            	double tmp;
            	if ((120.0 * a) <= -2.6e-50) {
            		tmp = 120.0 * a;
            	} else if ((120.0 * a) <= 1e-201) {
            		tmp = ((x - y) / z) * 60.0;
            	} else if ((120.0 * a) <= 2.7e-48) {
            		tmp = (-60.0 / t) * (x - y);
            	} else {
            		tmp = 120.0 * a;
            	}
            	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 ((120.0d0 * a) <= (-2.6d-50)) then
                    tmp = 120.0d0 * a
                else if ((120.0d0 * a) <= 1d-201) then
                    tmp = ((x - y) / z) * 60.0d0
                else if ((120.0d0 * a) <= 2.7d-48) then
                    tmp = ((-60.0d0) / t) * (x - y)
                else
                    tmp = 120.0d0 * a
                end if
                code = tmp
            end function
            
            public static double code(double x, double y, double z, double t, double a) {
            	double tmp;
            	if ((120.0 * a) <= -2.6e-50) {
            		tmp = 120.0 * a;
            	} else if ((120.0 * a) <= 1e-201) {
            		tmp = ((x - y) / z) * 60.0;
            	} else if ((120.0 * a) <= 2.7e-48) {
            		tmp = (-60.0 / t) * (x - y);
            	} else {
            		tmp = 120.0 * a;
            	}
            	return tmp;
            }
            
            def code(x, y, z, t, a):
            	tmp = 0
            	if (120.0 * a) <= -2.6e-50:
            		tmp = 120.0 * a
            	elif (120.0 * a) <= 1e-201:
            		tmp = ((x - y) / z) * 60.0
            	elif (120.0 * a) <= 2.7e-48:
            		tmp = (-60.0 / t) * (x - y)
            	else:
            		tmp = 120.0 * a
            	return tmp
            
            function code(x, y, z, t, a)
            	tmp = 0.0
            	if (Float64(120.0 * a) <= -2.6e-50)
            		tmp = Float64(120.0 * a);
            	elseif (Float64(120.0 * a) <= 1e-201)
            		tmp = Float64(Float64(Float64(x - y) / z) * 60.0);
            	elseif (Float64(120.0 * a) <= 2.7e-48)
            		tmp = Float64(Float64(-60.0 / t) * Float64(x - y));
            	else
            		tmp = Float64(120.0 * a);
            	end
            	return tmp
            end
            
            function tmp_2 = code(x, y, z, t, a)
            	tmp = 0.0;
            	if ((120.0 * a) <= -2.6e-50)
            		tmp = 120.0 * a;
            	elseif ((120.0 * a) <= 1e-201)
            		tmp = ((x - y) / z) * 60.0;
            	elseif ((120.0 * a) <= 2.7e-48)
            		tmp = (-60.0 / t) * (x - y);
            	else
            		tmp = 120.0 * a;
            	end
            	tmp_2 = tmp;
            end
            
            code[x_, y_, z_, t_, a_] := If[LessEqual[N[(120.0 * a), $MachinePrecision], -2.6e-50], N[(120.0 * a), $MachinePrecision], If[LessEqual[N[(120.0 * a), $MachinePrecision], 1e-201], N[(N[(N[(x - y), $MachinePrecision] / z), $MachinePrecision] * 60.0), $MachinePrecision], If[LessEqual[N[(120.0 * a), $MachinePrecision], 2.7e-48], N[(N[(-60.0 / t), $MachinePrecision] * N[(x - y), $MachinePrecision]), $MachinePrecision], N[(120.0 * a), $MachinePrecision]]]]
            
            \begin{array}{l}
            
            \\
            \begin{array}{l}
            \mathbf{if}\;120 \cdot a \leq -2.6 \cdot 10^{-50}:\\
            \;\;\;\;120 \cdot a\\
            
            \mathbf{elif}\;120 \cdot a \leq 10^{-201}:\\
            \;\;\;\;\frac{x - y}{z} \cdot 60\\
            
            \mathbf{elif}\;120 \cdot a \leq 2.7 \cdot 10^{-48}:\\
            \;\;\;\;\frac{-60}{t} \cdot \left(x - y\right)\\
            
            \mathbf{else}:\\
            \;\;\;\;120 \cdot a\\
            
            
            \end{array}
            \end{array}
            
            Derivation
            1. Split input into 3 regimes
            2. if (*.f64 a #s(literal 120 binary64)) < -2.6000000000000001e-50 or 2.70000000000000011e-48 < (*.f64 a #s(literal 120 binary64))

              1. Initial program 98.6%

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

                \[\leadsto \color{blue}{120 \cdot a} \]
              4. Step-by-step derivation
                1. *-commutativeN/A

                  \[\leadsto \color{blue}{a \cdot 120} \]
                2. lower-*.f6479.3

                  \[\leadsto \color{blue}{a \cdot 120} \]
              5. Applied rewrites79.3%

                \[\leadsto \color{blue}{a \cdot 120} \]

              if -2.6000000000000001e-50 < (*.f64 a #s(literal 120 binary64)) < 9.99999999999999946e-202

              1. Initial program 99.7%

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

                \[\leadsto \color{blue}{60 \cdot \frac{x - y}{z - t}} \]
              4. Step-by-step derivation
                1. associate-*r/N/A

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

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

                  \[\leadsto \color{blue}{\left(x - y\right) \cdot \frac{60}{z - t}} \]
                4. metadata-evalN/A

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

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

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

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

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

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

                  \[\leadsto \left(x - y\right) \cdot \color{blue}{\frac{60}{z - t}} \]
                11. lower--.f6484.4

                  \[\leadsto \left(x - y\right) \cdot \frac{60}{\color{blue}{z - t}} \]
              5. Applied rewrites84.4%

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

                \[\leadsto 60 \cdot \color{blue}{\frac{x - y}{z}} \]
              7. Step-by-step derivation
                1. Applied rewrites51.2%

                  \[\leadsto \frac{x - y}{z} \cdot \color{blue}{60} \]

                if 9.99999999999999946e-202 < (*.f64 a #s(literal 120 binary64)) < 2.70000000000000011e-48

                1. Initial program 99.6%

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

                  \[\leadsto \color{blue}{60 \cdot \frac{x - y}{z - t}} \]
                4. Step-by-step derivation
                  1. associate-*r/N/A

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

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

                    \[\leadsto \color{blue}{\left(x - y\right) \cdot \frac{60}{z - t}} \]
                  4. metadata-evalN/A

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

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

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

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

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

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

                    \[\leadsto \left(x - y\right) \cdot \color{blue}{\frac{60}{z - t}} \]
                  11. lower--.f6475.9

                    \[\leadsto \left(x - y\right) \cdot \frac{60}{\color{blue}{z - t}} \]
                5. Applied rewrites75.9%

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

                  \[\leadsto \left(x - y\right) \cdot \frac{-60}{\color{blue}{t}} \]
                7. Step-by-step derivation
                  1. Applied rewrites50.9%

                    \[\leadsto \left(x - y\right) \cdot \frac{-60}{\color{blue}{t}} \]
                8. Recombined 3 regimes into one program.
                9. Final simplification67.9%

                  \[\leadsto \begin{array}{l} \mathbf{if}\;120 \cdot a \leq -2.6 \cdot 10^{-50}:\\ \;\;\;\;120 \cdot a\\ \mathbf{elif}\;120 \cdot a \leq 10^{-201}:\\ \;\;\;\;\frac{x - y}{z} \cdot 60\\ \mathbf{elif}\;120 \cdot a \leq 2.7 \cdot 10^{-48}:\\ \;\;\;\;\frac{-60}{t} \cdot \left(x - y\right)\\ \mathbf{else}:\\ \;\;\;\;120 \cdot a\\ \end{array} \]
                10. Add Preprocessing

                Alternative 6: 58.0% accurate, 0.6× speedup?

                \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;120 \cdot a \leq -2.6 \cdot 10^{-50}:\\ \;\;\;\;120 \cdot a\\ \mathbf{elif}\;120 \cdot a \leq 6.2 \cdot 10^{-184}:\\ \;\;\;\;\frac{x - y}{z} \cdot 60\\ \mathbf{elif}\;120 \cdot a \leq 2.7 \cdot 10^{-48}:\\ \;\;\;\;\frac{x - y}{t} \cdot -60\\ \mathbf{else}:\\ \;\;\;\;120 \cdot a\\ \end{array} \end{array} \]
                (FPCore (x y z t a)
                 :precision binary64
                 (if (<= (* 120.0 a) -2.6e-50)
                   (* 120.0 a)
                   (if (<= (* 120.0 a) 6.2e-184)
                     (* (/ (- x y) z) 60.0)
                     (if (<= (* 120.0 a) 2.7e-48) (* (/ (- x y) t) -60.0) (* 120.0 a)))))
                double code(double x, double y, double z, double t, double a) {
                	double tmp;
                	if ((120.0 * a) <= -2.6e-50) {
                		tmp = 120.0 * a;
                	} else if ((120.0 * a) <= 6.2e-184) {
                		tmp = ((x - y) / z) * 60.0;
                	} else if ((120.0 * a) <= 2.7e-48) {
                		tmp = ((x - y) / t) * -60.0;
                	} else {
                		tmp = 120.0 * a;
                	}
                	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 ((120.0d0 * a) <= (-2.6d-50)) then
                        tmp = 120.0d0 * a
                    else if ((120.0d0 * a) <= 6.2d-184) then
                        tmp = ((x - y) / z) * 60.0d0
                    else if ((120.0d0 * a) <= 2.7d-48) then
                        tmp = ((x - y) / t) * (-60.0d0)
                    else
                        tmp = 120.0d0 * a
                    end if
                    code = tmp
                end function
                
                public static double code(double x, double y, double z, double t, double a) {
                	double tmp;
                	if ((120.0 * a) <= -2.6e-50) {
                		tmp = 120.0 * a;
                	} else if ((120.0 * a) <= 6.2e-184) {
                		tmp = ((x - y) / z) * 60.0;
                	} else if ((120.0 * a) <= 2.7e-48) {
                		tmp = ((x - y) / t) * -60.0;
                	} else {
                		tmp = 120.0 * a;
                	}
                	return tmp;
                }
                
                def code(x, y, z, t, a):
                	tmp = 0
                	if (120.0 * a) <= -2.6e-50:
                		tmp = 120.0 * a
                	elif (120.0 * a) <= 6.2e-184:
                		tmp = ((x - y) / z) * 60.0
                	elif (120.0 * a) <= 2.7e-48:
                		tmp = ((x - y) / t) * -60.0
                	else:
                		tmp = 120.0 * a
                	return tmp
                
                function code(x, y, z, t, a)
                	tmp = 0.0
                	if (Float64(120.0 * a) <= -2.6e-50)
                		tmp = Float64(120.0 * a);
                	elseif (Float64(120.0 * a) <= 6.2e-184)
                		tmp = Float64(Float64(Float64(x - y) / z) * 60.0);
                	elseif (Float64(120.0 * a) <= 2.7e-48)
                		tmp = Float64(Float64(Float64(x - y) / t) * -60.0);
                	else
                		tmp = Float64(120.0 * a);
                	end
                	return tmp
                end
                
                function tmp_2 = code(x, y, z, t, a)
                	tmp = 0.0;
                	if ((120.0 * a) <= -2.6e-50)
                		tmp = 120.0 * a;
                	elseif ((120.0 * a) <= 6.2e-184)
                		tmp = ((x - y) / z) * 60.0;
                	elseif ((120.0 * a) <= 2.7e-48)
                		tmp = ((x - y) / t) * -60.0;
                	else
                		tmp = 120.0 * a;
                	end
                	tmp_2 = tmp;
                end
                
                code[x_, y_, z_, t_, a_] := If[LessEqual[N[(120.0 * a), $MachinePrecision], -2.6e-50], N[(120.0 * a), $MachinePrecision], If[LessEqual[N[(120.0 * a), $MachinePrecision], 6.2e-184], N[(N[(N[(x - y), $MachinePrecision] / z), $MachinePrecision] * 60.0), $MachinePrecision], If[LessEqual[N[(120.0 * a), $MachinePrecision], 2.7e-48], N[(N[(N[(x - y), $MachinePrecision] / t), $MachinePrecision] * -60.0), $MachinePrecision], N[(120.0 * a), $MachinePrecision]]]]
                
                \begin{array}{l}
                
                \\
                \begin{array}{l}
                \mathbf{if}\;120 \cdot a \leq -2.6 \cdot 10^{-50}:\\
                \;\;\;\;120 \cdot a\\
                
                \mathbf{elif}\;120 \cdot a \leq 6.2 \cdot 10^{-184}:\\
                \;\;\;\;\frac{x - y}{z} \cdot 60\\
                
                \mathbf{elif}\;120 \cdot a \leq 2.7 \cdot 10^{-48}:\\
                \;\;\;\;\frac{x - y}{t} \cdot -60\\
                
                \mathbf{else}:\\
                \;\;\;\;120 \cdot a\\
                
                
                \end{array}
                \end{array}
                
                Derivation
                1. Split input into 3 regimes
                2. if (*.f64 a #s(literal 120 binary64)) < -2.6000000000000001e-50 or 2.70000000000000011e-48 < (*.f64 a #s(literal 120 binary64))

                  1. Initial program 98.6%

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

                    \[\leadsto \color{blue}{120 \cdot a} \]
                  4. Step-by-step derivation
                    1. *-commutativeN/A

                      \[\leadsto \color{blue}{a \cdot 120} \]
                    2. lower-*.f6479.3

                      \[\leadsto \color{blue}{a \cdot 120} \]
                  5. Applied rewrites79.3%

                    \[\leadsto \color{blue}{a \cdot 120} \]

                  if -2.6000000000000001e-50 < (*.f64 a #s(literal 120 binary64)) < 6.2000000000000004e-184

                  1. Initial program 99.7%

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

                    \[\leadsto \color{blue}{60 \cdot \frac{x - y}{z - t}} \]
                  4. Step-by-step derivation
                    1. associate-*r/N/A

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

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

                      \[\leadsto \color{blue}{\left(x - y\right) \cdot \frac{60}{z - t}} \]
                    4. metadata-evalN/A

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

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

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

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

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

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

                      \[\leadsto \left(x - y\right) \cdot \color{blue}{\frac{60}{z - t}} \]
                    11. lower--.f6485.2

                      \[\leadsto \left(x - y\right) \cdot \frac{60}{\color{blue}{z - t}} \]
                  5. Applied rewrites85.2%

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

                    \[\leadsto 60 \cdot \color{blue}{\frac{x - y}{z}} \]
                  7. Step-by-step derivation
                    1. Applied rewrites51.2%

                      \[\leadsto \frac{x - y}{z} \cdot \color{blue}{60} \]

                    if 6.2000000000000004e-184 < (*.f64 a #s(literal 120 binary64)) < 2.70000000000000011e-48

                    1. Initial program 99.7%

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

                      \[\leadsto \color{blue}{60 \cdot \frac{x - y}{z - t}} \]
                    4. Step-by-step derivation
                      1. associate-*r/N/A

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

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

                        \[\leadsto \color{blue}{\left(x - y\right) \cdot \frac{60}{z - t}} \]
                      4. metadata-evalN/A

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

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

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

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

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

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

                        \[\leadsto \left(x - y\right) \cdot \color{blue}{\frac{60}{z - t}} \]
                      11. lower--.f6472.4

                        \[\leadsto \left(x - y\right) \cdot \frac{60}{\color{blue}{z - t}} \]
                    5. Applied rewrites72.4%

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

                      \[\leadsto -60 \cdot \color{blue}{\frac{x - y}{t}} \]
                    7. Step-by-step derivation
                      1. Applied rewrites50.9%

                        \[\leadsto \frac{x - y}{t} \cdot \color{blue}{-60} \]
                    8. Recombined 3 regimes into one program.
                    9. Final simplification67.9%

                      \[\leadsto \begin{array}{l} \mathbf{if}\;120 \cdot a \leq -2.6 \cdot 10^{-50}:\\ \;\;\;\;120 \cdot a\\ \mathbf{elif}\;120 \cdot a \leq 6.2 \cdot 10^{-184}:\\ \;\;\;\;\frac{x - y}{z} \cdot 60\\ \mathbf{elif}\;120 \cdot a \leq 2.7 \cdot 10^{-48}:\\ \;\;\;\;\frac{x - y}{t} \cdot -60\\ \mathbf{else}:\\ \;\;\;\;120 \cdot a\\ \end{array} \]
                    10. Add Preprocessing

                    Alternative 7: 82.7% accurate, 0.6× speedup?

                    \[\begin{array}{l} \\ \begin{array}{l} t_1 := \mathsf{fma}\left(\frac{60}{t - z}, y, 120 \cdot a\right)\\ \mathbf{if}\;120 \cdot a \leq -5 \cdot 10^{-57}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;120 \cdot a \leq 10^{-49}:\\ \;\;\;\;\frac{60}{z - t} \cdot \left(x - y\right)\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
                    (FPCore (x y z t a)
                     :precision binary64
                     (let* ((t_1 (fma (/ 60.0 (- t z)) y (* 120.0 a))))
                       (if (<= (* 120.0 a) -5e-57)
                         t_1
                         (if (<= (* 120.0 a) 1e-49) (* (/ 60.0 (- z t)) (- x y)) t_1))))
                    double code(double x, double y, double z, double t, double a) {
                    	double t_1 = fma((60.0 / (t - z)), y, (120.0 * a));
                    	double tmp;
                    	if ((120.0 * a) <= -5e-57) {
                    		tmp = t_1;
                    	} else if ((120.0 * a) <= 1e-49) {
                    		tmp = (60.0 / (z - t)) * (x - y);
                    	} else {
                    		tmp = t_1;
                    	}
                    	return tmp;
                    }
                    
                    function code(x, y, z, t, a)
                    	t_1 = fma(Float64(60.0 / Float64(t - z)), y, Float64(120.0 * a))
                    	tmp = 0.0
                    	if (Float64(120.0 * a) <= -5e-57)
                    		tmp = t_1;
                    	elseif (Float64(120.0 * a) <= 1e-49)
                    		tmp = Float64(Float64(60.0 / Float64(z - t)) * Float64(x - y));
                    	else
                    		tmp = t_1;
                    	end
                    	return tmp
                    end
                    
                    code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(N[(60.0 / N[(t - z), $MachinePrecision]), $MachinePrecision] * y + N[(120.0 * a), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[(120.0 * a), $MachinePrecision], -5e-57], t$95$1, If[LessEqual[N[(120.0 * a), $MachinePrecision], 1e-49], N[(N[(60.0 / N[(z - t), $MachinePrecision]), $MachinePrecision] * N[(x - y), $MachinePrecision]), $MachinePrecision], t$95$1]]]
                    
                    \begin{array}{l}
                    
                    \\
                    \begin{array}{l}
                    t_1 := \mathsf{fma}\left(\frac{60}{t - z}, y, 120 \cdot a\right)\\
                    \mathbf{if}\;120 \cdot a \leq -5 \cdot 10^{-57}:\\
                    \;\;\;\;t\_1\\
                    
                    \mathbf{elif}\;120 \cdot a \leq 10^{-49}:\\
                    \;\;\;\;\frac{60}{z - t} \cdot \left(x - y\right)\\
                    
                    \mathbf{else}:\\
                    \;\;\;\;t\_1\\
                    
                    
                    \end{array}
                    \end{array}
                    
                    Derivation
                    1. Split input into 2 regimes
                    2. if (*.f64 a #s(literal 120 binary64)) < -5.0000000000000002e-57 or 9.99999999999999936e-50 < (*.f64 a #s(literal 120 binary64))

                      1. Initial program 98.7%

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

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

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

                          \[\leadsto \color{blue}{a \cdot 120} + \frac{60 \cdot \left(x - y\right)}{z - t} \]
                        4. lower-fma.f6498.7

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

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

                          \[\leadsto \mathsf{fma}\left(a, 120, \frac{\color{blue}{60 \cdot \left(x - y\right)}}{z - t}\right) \]
                        7. *-commutativeN/A

                          \[\leadsto \mathsf{fma}\left(a, 120, \frac{\color{blue}{\left(x - y\right) \cdot 60}}{z - t}\right) \]
                        8. associate-/l*N/A

                          \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\left(x - y\right) \cdot \frac{60}{z - t}}\right) \]
                        9. *-commutativeN/A

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

                          \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\frac{60}{z - t} \cdot \left(x - y\right)}\right) \]
                        11. frac-2negN/A

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

                          \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\frac{\mathsf{neg}\left(60\right)}{\mathsf{neg}\left(\left(z - t\right)\right)}} \cdot \left(x - y\right)\right) \]
                        13. metadata-evalN/A

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

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

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

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

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

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

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

                          \[\leadsto \mathsf{fma}\left(a, 120, \frac{-60}{\color{blue}{t} - z} \cdot \left(x - y\right)\right) \]
                        21. lower--.f6499.9

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

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

                        \[\leadsto \color{blue}{60 \cdot \frac{y}{t - z} + 120 \cdot a} \]
                      6. Step-by-step derivation
                        1. associate-*r/N/A

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

                          \[\leadsto \color{blue}{\frac{60}{t - z} \cdot y} + 120 \cdot a \]
                        3. remove-double-negN/A

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

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

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

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

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

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

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

                          \[\leadsto \left(\mathsf{neg}\left(\color{blue}{60 \cdot \frac{1}{z - t}}\right)\right) \cdot y + 120 \cdot a \]
                        11. lower-fma.f64N/A

                          \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{neg}\left(60 \cdot \frac{1}{z - t}\right), y, 120 \cdot a\right)} \]
                      7. Applied rewrites89.6%

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

                      if -5.0000000000000002e-57 < (*.f64 a #s(literal 120 binary64)) < 9.99999999999999936e-50

                      1. Initial program 99.7%

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

                        \[\leadsto \color{blue}{60 \cdot \frac{x - y}{z - t}} \]
                      4. Step-by-step derivation
                        1. associate-*r/N/A

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

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

                          \[\leadsto \color{blue}{\left(x - y\right) \cdot \frac{60}{z - t}} \]
                        4. metadata-evalN/A

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

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

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

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

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

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

                          \[\leadsto \left(x - y\right) \cdot \color{blue}{\frac{60}{z - t}} \]
                        11. lower--.f6482.5

                          \[\leadsto \left(x - y\right) \cdot \frac{60}{\color{blue}{z - t}} \]
                      5. Applied rewrites82.5%

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

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

                    Alternative 8: 74.0% accurate, 0.7× speedup?

                    \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;120 \cdot a \leq -2 \cdot 10^{+36}:\\ \;\;\;\;120 \cdot a\\ \mathbf{elif}\;120 \cdot a \leq 10^{-49}:\\ \;\;\;\;\frac{60}{z - t} \cdot \left(x - y\right)\\ \mathbf{else}:\\ \;\;\;\;120 \cdot a\\ \end{array} \end{array} \]
                    (FPCore (x y z t a)
                     :precision binary64
                     (if (<= (* 120.0 a) -2e+36)
                       (* 120.0 a)
                       (if (<= (* 120.0 a) 1e-49) (* (/ 60.0 (- z t)) (- x y)) (* 120.0 a))))
                    double code(double x, double y, double z, double t, double a) {
                    	double tmp;
                    	if ((120.0 * a) <= -2e+36) {
                    		tmp = 120.0 * a;
                    	} else if ((120.0 * a) <= 1e-49) {
                    		tmp = (60.0 / (z - t)) * (x - y);
                    	} else {
                    		tmp = 120.0 * a;
                    	}
                    	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 ((120.0d0 * a) <= (-2d+36)) then
                            tmp = 120.0d0 * a
                        else if ((120.0d0 * a) <= 1d-49) then
                            tmp = (60.0d0 / (z - t)) * (x - y)
                        else
                            tmp = 120.0d0 * a
                        end if
                        code = tmp
                    end function
                    
                    public static double code(double x, double y, double z, double t, double a) {
                    	double tmp;
                    	if ((120.0 * a) <= -2e+36) {
                    		tmp = 120.0 * a;
                    	} else if ((120.0 * a) <= 1e-49) {
                    		tmp = (60.0 / (z - t)) * (x - y);
                    	} else {
                    		tmp = 120.0 * a;
                    	}
                    	return tmp;
                    }
                    
                    def code(x, y, z, t, a):
                    	tmp = 0
                    	if (120.0 * a) <= -2e+36:
                    		tmp = 120.0 * a
                    	elif (120.0 * a) <= 1e-49:
                    		tmp = (60.0 / (z - t)) * (x - y)
                    	else:
                    		tmp = 120.0 * a
                    	return tmp
                    
                    function code(x, y, z, t, a)
                    	tmp = 0.0
                    	if (Float64(120.0 * a) <= -2e+36)
                    		tmp = Float64(120.0 * a);
                    	elseif (Float64(120.0 * a) <= 1e-49)
                    		tmp = Float64(Float64(60.0 / Float64(z - t)) * Float64(x - y));
                    	else
                    		tmp = Float64(120.0 * a);
                    	end
                    	return tmp
                    end
                    
                    function tmp_2 = code(x, y, z, t, a)
                    	tmp = 0.0;
                    	if ((120.0 * a) <= -2e+36)
                    		tmp = 120.0 * a;
                    	elseif ((120.0 * a) <= 1e-49)
                    		tmp = (60.0 / (z - t)) * (x - y);
                    	else
                    		tmp = 120.0 * a;
                    	end
                    	tmp_2 = tmp;
                    end
                    
                    code[x_, y_, z_, t_, a_] := If[LessEqual[N[(120.0 * a), $MachinePrecision], -2e+36], N[(120.0 * a), $MachinePrecision], If[LessEqual[N[(120.0 * a), $MachinePrecision], 1e-49], N[(N[(60.0 / N[(z - t), $MachinePrecision]), $MachinePrecision] * N[(x - y), $MachinePrecision]), $MachinePrecision], N[(120.0 * a), $MachinePrecision]]]
                    
                    \begin{array}{l}
                    
                    \\
                    \begin{array}{l}
                    \mathbf{if}\;120 \cdot a \leq -2 \cdot 10^{+36}:\\
                    \;\;\;\;120 \cdot a\\
                    
                    \mathbf{elif}\;120 \cdot a \leq 10^{-49}:\\
                    \;\;\;\;\frac{60}{z - t} \cdot \left(x - y\right)\\
                    
                    \mathbf{else}:\\
                    \;\;\;\;120 \cdot a\\
                    
                    
                    \end{array}
                    \end{array}
                    
                    Derivation
                    1. Split input into 2 regimes
                    2. if (*.f64 a #s(literal 120 binary64)) < -2.00000000000000008e36 or 9.99999999999999936e-50 < (*.f64 a #s(literal 120 binary64))

                      1. Initial program 98.5%

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

                        \[\leadsto \color{blue}{120 \cdot a} \]
                      4. Step-by-step derivation
                        1. *-commutativeN/A

                          \[\leadsto \color{blue}{a \cdot 120} \]
                        2. lower-*.f6482.3

                          \[\leadsto \color{blue}{a \cdot 120} \]
                      5. Applied rewrites82.3%

                        \[\leadsto \color{blue}{a \cdot 120} \]

                      if -2.00000000000000008e36 < (*.f64 a #s(literal 120 binary64)) < 9.99999999999999936e-50

                      1. Initial program 99.7%

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

                        \[\leadsto \color{blue}{60 \cdot \frac{x - y}{z - t}} \]
                      4. Step-by-step derivation
                        1. associate-*r/N/A

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

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

                          \[\leadsto \color{blue}{\left(x - y\right) \cdot \frac{60}{z - t}} \]
                        4. metadata-evalN/A

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

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

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

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

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

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

                          \[\leadsto \left(x - y\right) \cdot \color{blue}{\frac{60}{z - t}} \]
                        11. lower--.f6478.9

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

                        \[\leadsto \color{blue}{\left(x - y\right) \cdot \frac{60}{z - t}} \]
                    3. Recombined 2 regimes into one program.
                    4. Final simplification80.8%

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

                    Alternative 9: 52.4% accurate, 0.7× speedup?

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

                      1. Initial program 99.4%

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

                        \[\leadsto \color{blue}{120 \cdot a} \]
                      4. Step-by-step derivation
                        1. *-commutativeN/A

                          \[\leadsto \color{blue}{a \cdot 120} \]
                        2. lower-*.f6460.2

                          \[\leadsto \color{blue}{a \cdot 120} \]
                      5. Applied rewrites60.2%

                        \[\leadsto \color{blue}{a \cdot 120} \]

                      if 1.99999999999999992e217 < (/.f64 (*.f64 #s(literal 60 binary64) (-.f64 x y)) (-.f64 z t))

                      1. Initial program 95.6%

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

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

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

                          \[\leadsto \color{blue}{a \cdot 120} + \frac{60 \cdot \left(x - y\right)}{z - t} \]
                        4. lower-fma.f6495.6

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

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

                          \[\leadsto \mathsf{fma}\left(a, 120, \frac{\color{blue}{60 \cdot \left(x - y\right)}}{z - t}\right) \]
                        7. *-commutativeN/A

                          \[\leadsto \mathsf{fma}\left(a, 120, \frac{\color{blue}{\left(x - y\right) \cdot 60}}{z - t}\right) \]
                        8. associate-/l*N/A

                          \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\left(x - y\right) \cdot \frac{60}{z - t}}\right) \]
                        9. *-commutativeN/A

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

                          \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\frac{60}{z - t} \cdot \left(x - y\right)}\right) \]
                        11. frac-2negN/A

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

                          \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\frac{\mathsf{neg}\left(60\right)}{\mathsf{neg}\left(\left(z - t\right)\right)}} \cdot \left(x - y\right)\right) \]
                        13. metadata-evalN/A

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

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

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

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

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

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

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

                          \[\leadsto \mathsf{fma}\left(a, 120, \frac{-60}{\color{blue}{t} - z} \cdot \left(x - y\right)\right) \]
                        21. lower--.f6499.6

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

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

                        \[\leadsto \color{blue}{-60 \cdot \frac{x}{t - z}} \]
                      6. Step-by-step derivation
                        1. associate-*r/N/A

                          \[\leadsto \color{blue}{\frac{-60 \cdot x}{t - z}} \]
                        2. remove-double-negN/A

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

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

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

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

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

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

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

                          \[\leadsto \frac{\color{blue}{x \cdot -60}}{-1 \cdot \left(z - t\right)} \]
                        10. lower-*.f64N/A

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

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

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

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

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

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

                          \[\leadsto \frac{x \cdot -60}{\color{blue}{t} - z} \]
                        17. lower--.f6453.3

                          \[\leadsto \frac{x \cdot -60}{\color{blue}{t - z}} \]
                      7. Applied rewrites53.3%

                        \[\leadsto \color{blue}{\frac{x \cdot -60}{t - z}} \]
                      8. Taylor expanded in t around inf

                        \[\leadsto -60 \cdot \color{blue}{\frac{x}{t}} \]
                      9. Step-by-step derivation
                        1. Applied rewrites34.1%

                          \[\leadsto \frac{x}{t} \cdot \color{blue}{-60} \]
                        2. Step-by-step derivation
                          1. Applied rewrites34.1%

                            \[\leadsto x \cdot \frac{-60}{\color{blue}{t}} \]
                        3. Recombined 2 regimes into one program.
                        4. Final simplification57.8%

                          \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{60 \cdot \left(x - y\right)}{z - t} \leq 2 \cdot 10^{+217}:\\ \;\;\;\;120 \cdot a\\ \mathbf{else}:\\ \;\;\;\;\frac{-60}{t} \cdot x\\ \end{array} \]
                        5. Add Preprocessing

                        Alternative 10: 59.3% accurate, 0.7× speedup?

                        \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;120 \cdot a \leq -6 \cdot 10^{-83}:\\ \;\;\;\;120 \cdot a\\ \mathbf{elif}\;120 \cdot a \leq 2.7 \cdot 10^{-48}:\\ \;\;\;\;\frac{x - y}{t} \cdot -60\\ \mathbf{else}:\\ \;\;\;\;120 \cdot a\\ \end{array} \end{array} \]
                        (FPCore (x y z t a)
                         :precision binary64
                         (if (<= (* 120.0 a) -6e-83)
                           (* 120.0 a)
                           (if (<= (* 120.0 a) 2.7e-48) (* (/ (- x y) t) -60.0) (* 120.0 a))))
                        double code(double x, double y, double z, double t, double a) {
                        	double tmp;
                        	if ((120.0 * a) <= -6e-83) {
                        		tmp = 120.0 * a;
                        	} else if ((120.0 * a) <= 2.7e-48) {
                        		tmp = ((x - y) / t) * -60.0;
                        	} else {
                        		tmp = 120.0 * a;
                        	}
                        	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 ((120.0d0 * a) <= (-6d-83)) then
                                tmp = 120.0d0 * a
                            else if ((120.0d0 * a) <= 2.7d-48) then
                                tmp = ((x - y) / t) * (-60.0d0)
                            else
                                tmp = 120.0d0 * a
                            end if
                            code = tmp
                        end function
                        
                        public static double code(double x, double y, double z, double t, double a) {
                        	double tmp;
                        	if ((120.0 * a) <= -6e-83) {
                        		tmp = 120.0 * a;
                        	} else if ((120.0 * a) <= 2.7e-48) {
                        		tmp = ((x - y) / t) * -60.0;
                        	} else {
                        		tmp = 120.0 * a;
                        	}
                        	return tmp;
                        }
                        
                        def code(x, y, z, t, a):
                        	tmp = 0
                        	if (120.0 * a) <= -6e-83:
                        		tmp = 120.0 * a
                        	elif (120.0 * a) <= 2.7e-48:
                        		tmp = ((x - y) / t) * -60.0
                        	else:
                        		tmp = 120.0 * a
                        	return tmp
                        
                        function code(x, y, z, t, a)
                        	tmp = 0.0
                        	if (Float64(120.0 * a) <= -6e-83)
                        		tmp = Float64(120.0 * a);
                        	elseif (Float64(120.0 * a) <= 2.7e-48)
                        		tmp = Float64(Float64(Float64(x - y) / t) * -60.0);
                        	else
                        		tmp = Float64(120.0 * a);
                        	end
                        	return tmp
                        end
                        
                        function tmp_2 = code(x, y, z, t, a)
                        	tmp = 0.0;
                        	if ((120.0 * a) <= -6e-83)
                        		tmp = 120.0 * a;
                        	elseif ((120.0 * a) <= 2.7e-48)
                        		tmp = ((x - y) / t) * -60.0;
                        	else
                        		tmp = 120.0 * a;
                        	end
                        	tmp_2 = tmp;
                        end
                        
                        code[x_, y_, z_, t_, a_] := If[LessEqual[N[(120.0 * a), $MachinePrecision], -6e-83], N[(120.0 * a), $MachinePrecision], If[LessEqual[N[(120.0 * a), $MachinePrecision], 2.7e-48], N[(N[(N[(x - y), $MachinePrecision] / t), $MachinePrecision] * -60.0), $MachinePrecision], N[(120.0 * a), $MachinePrecision]]]
                        
                        \begin{array}{l}
                        
                        \\
                        \begin{array}{l}
                        \mathbf{if}\;120 \cdot a \leq -6 \cdot 10^{-83}:\\
                        \;\;\;\;120 \cdot a\\
                        
                        \mathbf{elif}\;120 \cdot a \leq 2.7 \cdot 10^{-48}:\\
                        \;\;\;\;\frac{x - y}{t} \cdot -60\\
                        
                        \mathbf{else}:\\
                        \;\;\;\;120 \cdot a\\
                        
                        
                        \end{array}
                        \end{array}
                        
                        Derivation
                        1. Split input into 2 regimes
                        2. if (*.f64 a #s(literal 120 binary64)) < -6.00000000000000021e-83 or 2.70000000000000011e-48 < (*.f64 a #s(literal 120 binary64))

                          1. Initial program 98.7%

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

                            \[\leadsto \color{blue}{120 \cdot a} \]
                          4. Step-by-step derivation
                            1. *-commutativeN/A

                              \[\leadsto \color{blue}{a \cdot 120} \]
                            2. lower-*.f6477.3

                              \[\leadsto \color{blue}{a \cdot 120} \]
                          5. Applied rewrites77.3%

                            \[\leadsto \color{blue}{a \cdot 120} \]

                          if -6.00000000000000021e-83 < (*.f64 a #s(literal 120 binary64)) < 2.70000000000000011e-48

                          1. Initial program 99.7%

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

                            \[\leadsto \color{blue}{60 \cdot \frac{x - y}{z - t}} \]
                          4. Step-by-step derivation
                            1. associate-*r/N/A

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

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

                              \[\leadsto \color{blue}{\left(x - y\right) \cdot \frac{60}{z - t}} \]
                            4. metadata-evalN/A

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

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

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

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

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

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

                              \[\leadsto \left(x - y\right) \cdot \color{blue}{\frac{60}{z - t}} \]
                            11. lower--.f6483.6

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

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

                            \[\leadsto -60 \cdot \color{blue}{\frac{x - y}{t}} \]
                          7. Step-by-step derivation
                            1. Applied rewrites45.3%

                              \[\leadsto \frac{x - y}{t} \cdot \color{blue}{-60} \]
                          8. Recombined 2 regimes into one program.
                          9. Final simplification65.3%

                            \[\leadsto \begin{array}{l} \mathbf{if}\;120 \cdot a \leq -6 \cdot 10^{-83}:\\ \;\;\;\;120 \cdot a\\ \mathbf{elif}\;120 \cdot a \leq 2.7 \cdot 10^{-48}:\\ \;\;\;\;\frac{x - y}{t} \cdot -60\\ \mathbf{else}:\\ \;\;\;\;120 \cdot a\\ \end{array} \]
                          10. Add Preprocessing

                          Alternative 11: 58.4% accurate, 0.7× speedup?

                          \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;120 \cdot a \leq -5.8 \cdot 10^{-83}:\\ \;\;\;\;120 \cdot a\\ \mathbf{elif}\;120 \cdot a \leq 3.1 \cdot 10^{-43}:\\ \;\;\;\;\frac{x}{-0.016666666666666666 \cdot \left(t - z\right)}\\ \mathbf{else}:\\ \;\;\;\;120 \cdot a\\ \end{array} \end{array} \]
                          (FPCore (x y z t a)
                           :precision binary64
                           (if (<= (* 120.0 a) -5.8e-83)
                             (* 120.0 a)
                             (if (<= (* 120.0 a) 3.1e-43)
                               (/ x (* -0.016666666666666666 (- t z)))
                               (* 120.0 a))))
                          double code(double x, double y, double z, double t, double a) {
                          	double tmp;
                          	if ((120.0 * a) <= -5.8e-83) {
                          		tmp = 120.0 * a;
                          	} else if ((120.0 * a) <= 3.1e-43) {
                          		tmp = x / (-0.016666666666666666 * (t - z));
                          	} else {
                          		tmp = 120.0 * a;
                          	}
                          	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 ((120.0d0 * a) <= (-5.8d-83)) then
                                  tmp = 120.0d0 * a
                              else if ((120.0d0 * a) <= 3.1d-43) then
                                  tmp = x / ((-0.016666666666666666d0) * (t - z))
                              else
                                  tmp = 120.0d0 * a
                              end if
                              code = tmp
                          end function
                          
                          public static double code(double x, double y, double z, double t, double a) {
                          	double tmp;
                          	if ((120.0 * a) <= -5.8e-83) {
                          		tmp = 120.0 * a;
                          	} else if ((120.0 * a) <= 3.1e-43) {
                          		tmp = x / (-0.016666666666666666 * (t - z));
                          	} else {
                          		tmp = 120.0 * a;
                          	}
                          	return tmp;
                          }
                          
                          def code(x, y, z, t, a):
                          	tmp = 0
                          	if (120.0 * a) <= -5.8e-83:
                          		tmp = 120.0 * a
                          	elif (120.0 * a) <= 3.1e-43:
                          		tmp = x / (-0.016666666666666666 * (t - z))
                          	else:
                          		tmp = 120.0 * a
                          	return tmp
                          
                          function code(x, y, z, t, a)
                          	tmp = 0.0
                          	if (Float64(120.0 * a) <= -5.8e-83)
                          		tmp = Float64(120.0 * a);
                          	elseif (Float64(120.0 * a) <= 3.1e-43)
                          		tmp = Float64(x / Float64(-0.016666666666666666 * Float64(t - z)));
                          	else
                          		tmp = Float64(120.0 * a);
                          	end
                          	return tmp
                          end
                          
                          function tmp_2 = code(x, y, z, t, a)
                          	tmp = 0.0;
                          	if ((120.0 * a) <= -5.8e-83)
                          		tmp = 120.0 * a;
                          	elseif ((120.0 * a) <= 3.1e-43)
                          		tmp = x / (-0.016666666666666666 * (t - z));
                          	else
                          		tmp = 120.0 * a;
                          	end
                          	tmp_2 = tmp;
                          end
                          
                          code[x_, y_, z_, t_, a_] := If[LessEqual[N[(120.0 * a), $MachinePrecision], -5.8e-83], N[(120.0 * a), $MachinePrecision], If[LessEqual[N[(120.0 * a), $MachinePrecision], 3.1e-43], N[(x / N[(-0.016666666666666666 * N[(t - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(120.0 * a), $MachinePrecision]]]
                          
                          \begin{array}{l}
                          
                          \\
                          \begin{array}{l}
                          \mathbf{if}\;120 \cdot a \leq -5.8 \cdot 10^{-83}:\\
                          \;\;\;\;120 \cdot a\\
                          
                          \mathbf{elif}\;120 \cdot a \leq 3.1 \cdot 10^{-43}:\\
                          \;\;\;\;\frac{x}{-0.016666666666666666 \cdot \left(t - z\right)}\\
                          
                          \mathbf{else}:\\
                          \;\;\;\;120 \cdot a\\
                          
                          
                          \end{array}
                          \end{array}
                          
                          Derivation
                          1. Split input into 2 regimes
                          2. if (*.f64 a #s(literal 120 binary64)) < -5.7999999999999998e-83 or 3.0999999999999999e-43 < (*.f64 a #s(literal 120 binary64))

                            1. Initial program 98.7%

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

                              \[\leadsto \color{blue}{120 \cdot a} \]
                            4. Step-by-step derivation
                              1. *-commutativeN/A

                                \[\leadsto \color{blue}{a \cdot 120} \]
                              2. lower-*.f6477.3

                                \[\leadsto \color{blue}{a \cdot 120} \]
                            5. Applied rewrites77.3%

                              \[\leadsto \color{blue}{a \cdot 120} \]

                            if -5.7999999999999998e-83 < (*.f64 a #s(literal 120 binary64)) < 3.0999999999999999e-43

                            1. Initial program 99.7%

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

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

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

                                \[\leadsto \color{blue}{a \cdot 120} + \frac{60 \cdot \left(x - y\right)}{z - t} \]
                              4. lower-fma.f6499.7

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

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

                                \[\leadsto \mathsf{fma}\left(a, 120, \frac{\color{blue}{60 \cdot \left(x - y\right)}}{z - t}\right) \]
                              7. *-commutativeN/A

                                \[\leadsto \mathsf{fma}\left(a, 120, \frac{\color{blue}{\left(x - y\right) \cdot 60}}{z - t}\right) \]
                              8. associate-/l*N/A

                                \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\left(x - y\right) \cdot \frac{60}{z - t}}\right) \]
                              9. *-commutativeN/A

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

                                \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\frac{60}{z - t} \cdot \left(x - y\right)}\right) \]
                              11. frac-2negN/A

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

                                \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\frac{\mathsf{neg}\left(60\right)}{\mathsf{neg}\left(\left(z - t\right)\right)}} \cdot \left(x - y\right)\right) \]
                              13. metadata-evalN/A

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

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

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

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

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

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

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

                                \[\leadsto \mathsf{fma}\left(a, 120, \frac{-60}{\color{blue}{t} - z} \cdot \left(x - y\right)\right) \]
                              21. lower--.f6499.7

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

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

                              \[\leadsto \color{blue}{-60 \cdot \frac{x}{t - z}} \]
                            6. Step-by-step derivation
                              1. associate-*r/N/A

                                \[\leadsto \color{blue}{\frac{-60 \cdot x}{t - z}} \]
                              2. remove-double-negN/A

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

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

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

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

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

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

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

                                \[\leadsto \frac{\color{blue}{x \cdot -60}}{-1 \cdot \left(z - t\right)} \]
                              10. lower-*.f64N/A

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

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

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

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

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

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

                                \[\leadsto \frac{x \cdot -60}{\color{blue}{t} - z} \]
                              17. lower--.f6439.2

                                \[\leadsto \frac{x \cdot -60}{\color{blue}{t - z}} \]
                            7. Applied rewrites39.2%

                              \[\leadsto \color{blue}{\frac{x \cdot -60}{t - z}} \]
                            8. Step-by-step derivation
                              1. Applied rewrites39.3%

                                \[\leadsto \frac{x}{\color{blue}{\left(t - z\right) \cdot -0.016666666666666666}} \]
                            9. Recombined 2 regimes into one program.
                            10. Final simplification63.0%

                              \[\leadsto \begin{array}{l} \mathbf{if}\;120 \cdot a \leq -5.8 \cdot 10^{-83}:\\ \;\;\;\;120 \cdot a\\ \mathbf{elif}\;120 \cdot a \leq 3.1 \cdot 10^{-43}:\\ \;\;\;\;\frac{x}{-0.016666666666666666 \cdot \left(t - z\right)}\\ \mathbf{else}:\\ \;\;\;\;120 \cdot a\\ \end{array} \]
                            11. Add Preprocessing

                            Alternative 12: 88.2% accurate, 0.8× speedup?

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

                              1. Initial program 98.5%

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

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

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

                                  \[\leadsto \color{blue}{a \cdot 120} + \frac{60 \cdot \left(x - y\right)}{z - t} \]
                                4. lower-fma.f6498.6

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

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

                                  \[\leadsto \mathsf{fma}\left(a, 120, \frac{\color{blue}{60 \cdot \left(x - y\right)}}{z - t}\right) \]
                                7. *-commutativeN/A

                                  \[\leadsto \mathsf{fma}\left(a, 120, \frac{\color{blue}{\left(x - y\right) \cdot 60}}{z - t}\right) \]
                                8. associate-/l*N/A

                                  \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\left(x - y\right) \cdot \frac{60}{z - t}}\right) \]
                                9. *-commutativeN/A

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

                                  \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\frac{60}{z - t} \cdot \left(x - y\right)}\right) \]
                                11. frac-2negN/A

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

                                  \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\frac{\mathsf{neg}\left(60\right)}{\mathsf{neg}\left(\left(z - t\right)\right)}} \cdot \left(x - y\right)\right) \]
                                13. metadata-evalN/A

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

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

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

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

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

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

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

                                  \[\leadsto \mathsf{fma}\left(a, 120, \frac{-60}{\color{blue}{t} - z} \cdot \left(x - y\right)\right) \]
                                21. lower--.f6499.7

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

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

                                \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{-60 \cdot \frac{x}{t - z}}\right) \]
                              6. Step-by-step derivation
                                1. associate-*r/N/A

                                  \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\frac{-60 \cdot x}{t - z}}\right) \]
                                2. remove-double-negN/A

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

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

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

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

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

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

                                  \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\frac{-60 \cdot x}{-1 \cdot \left(z - t\right)}}\right) \]
                                9. *-commutativeN/A

                                  \[\leadsto \mathsf{fma}\left(a, 120, \frac{\color{blue}{x \cdot -60}}{-1 \cdot \left(z - t\right)}\right) \]
                                10. lower-*.f64N/A

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

                                  \[\leadsto \mathsf{fma}\left(a, 120, \frac{x \cdot -60}{\color{blue}{\mathsf{neg}\left(\left(z - t\right)\right)}}\right) \]
                                12. sub-negN/A

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

                                  \[\leadsto \mathsf{fma}\left(a, 120, \frac{x \cdot -60}{\mathsf{neg}\left(\color{blue}{\left(\left(\mathsf{neg}\left(t\right)\right) + z\right)}\right)}\right) \]
                                14. distribute-neg-inN/A

                                  \[\leadsto \mathsf{fma}\left(a, 120, \frac{x \cdot -60}{\color{blue}{\left(\mathsf{neg}\left(\left(\mathsf{neg}\left(t\right)\right)\right)\right) + \left(\mathsf{neg}\left(z\right)\right)}}\right) \]
                                15. unsub-negN/A

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

                                  \[\leadsto \mathsf{fma}\left(a, 120, \frac{x \cdot -60}{\color{blue}{t} - z}\right) \]
                                17. lower--.f6488.2

                                  \[\leadsto \mathsf{fma}\left(a, 120, \frac{x \cdot -60}{\color{blue}{t - z}}\right) \]
                              7. Applied rewrites88.2%

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

                              if -1.3199999999999999e156 < x < 4.7000000000000003e62

                              1. Initial program 99.3%

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

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

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

                                  \[\leadsto \color{blue}{a \cdot 120} + \frac{60 \cdot \left(x - y\right)}{z - t} \]
                                4. lower-fma.f6499.4

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

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

                                  \[\leadsto \mathsf{fma}\left(a, 120, \frac{\color{blue}{60 \cdot \left(x - y\right)}}{z - t}\right) \]
                                7. *-commutativeN/A

                                  \[\leadsto \mathsf{fma}\left(a, 120, \frac{\color{blue}{\left(x - y\right) \cdot 60}}{z - t}\right) \]
                                8. associate-/l*N/A

                                  \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\left(x - y\right) \cdot \frac{60}{z - t}}\right) \]
                                9. *-commutativeN/A

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

                                  \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\frac{60}{z - t} \cdot \left(x - y\right)}\right) \]
                                11. frac-2negN/A

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

                                  \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\frac{\mathsf{neg}\left(60\right)}{\mathsf{neg}\left(\left(z - t\right)\right)}} \cdot \left(x - y\right)\right) \]
                                13. metadata-evalN/A

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

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

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

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

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

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

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

                                  \[\leadsto \mathsf{fma}\left(a, 120, \frac{-60}{\color{blue}{t} - z} \cdot \left(x - y\right)\right) \]
                                21. lower--.f6499.9

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

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

                                \[\leadsto \color{blue}{60 \cdot \frac{y}{t - z} + 120 \cdot a} \]
                              6. Step-by-step derivation
                                1. associate-*r/N/A

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

                                  \[\leadsto \color{blue}{\frac{60}{t - z} \cdot y} + 120 \cdot a \]
                                3. remove-double-negN/A

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

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

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

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

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

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

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

                                  \[\leadsto \left(\mathsf{neg}\left(\color{blue}{60 \cdot \frac{1}{z - t}}\right)\right) \cdot y + 120 \cdot a \]
                                11. lower-fma.f64N/A

                                  \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{neg}\left(60 \cdot \frac{1}{z - t}\right), y, 120 \cdot a\right)} \]
                              7. Applied rewrites91.7%

                                \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{60}{t - z}, y, a \cdot 120\right)} \]
                            3. Recombined 2 regimes into one program.
                            4. Final simplification90.6%

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

                            Alternative 13: 84.0% accurate, 0.8× speedup?

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

                              1. Initial program 98.4%

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

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

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

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

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

                                  \[\leadsto \mathsf{fma}\left(\frac{\color{blue}{x - y}}{t}, -60, 120 \cdot a\right) \]
                                5. *-commutativeN/A

                                  \[\leadsto \mathsf{fma}\left(\frac{x - y}{t}, -60, \color{blue}{a \cdot 120}\right) \]
                                6. lower-*.f6491.4

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

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

                              if -1.7e-34 < t < 3.1e18

                              1. Initial program 99.8%

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

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

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

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

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

                                  \[\leadsto \mathsf{fma}\left(\frac{\color{blue}{x - y}}{z}, 60, 120 \cdot a\right) \]
                                5. *-commutativeN/A

                                  \[\leadsto \mathsf{fma}\left(\frac{x - y}{z}, 60, \color{blue}{a \cdot 120}\right) \]
                                6. lower-*.f6486.6

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

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

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

                            Alternative 14: 66.9% accurate, 0.9× speedup?

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

                              1. Initial program 98.4%

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

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

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

                                  \[\leadsto \color{blue}{a \cdot 120} + \frac{60 \cdot \left(x - y\right)}{z - t} \]
                                4. lower-fma.f6498.4

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

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

                                  \[\leadsto \mathsf{fma}\left(a, 120, \frac{\color{blue}{60 \cdot \left(x - y\right)}}{z - t}\right) \]
                                7. *-commutativeN/A

                                  \[\leadsto \mathsf{fma}\left(a, 120, \frac{\color{blue}{\left(x - y\right) \cdot 60}}{z - t}\right) \]
                                8. associate-/l*N/A

                                  \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\left(x - y\right) \cdot \frac{60}{z - t}}\right) \]
                                9. *-commutativeN/A

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

                                  \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\frac{60}{z - t} \cdot \left(x - y\right)}\right) \]
                                11. frac-2negN/A

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

                                  \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\frac{\mathsf{neg}\left(60\right)}{\mathsf{neg}\left(\left(z - t\right)\right)}} \cdot \left(x - y\right)\right) \]
                                13. metadata-evalN/A

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

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

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

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

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

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

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

                                  \[\leadsto \mathsf{fma}\left(a, 120, \frac{-60}{\color{blue}{t} - z} \cdot \left(x - y\right)\right) \]
                                21. lower--.f6499.9

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

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

                                \[\leadsto \color{blue}{60 \cdot \frac{y}{t - z} + 120 \cdot a} \]
                              6. Step-by-step derivation
                                1. associate-*r/N/A

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

                                  \[\leadsto \color{blue}{\frac{60}{t - z} \cdot y} + 120 \cdot a \]
                                3. remove-double-negN/A

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

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

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

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

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

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

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

                                  \[\leadsto \left(\mathsf{neg}\left(\color{blue}{60 \cdot \frac{1}{z - t}}\right)\right) \cdot y + 120 \cdot a \]
                                11. lower-fma.f64N/A

                                  \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{neg}\left(60 \cdot \frac{1}{z - t}\right), y, 120 \cdot a\right)} \]
                              7. Applied rewrites87.3%

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

                                \[\leadsto \mathsf{fma}\left(\frac{60}{t}, y, a \cdot 120\right) \]
                              9. Step-by-step derivation
                                1. Applied rewrites81.1%

                                  \[\leadsto \mathsf{fma}\left(\frac{60}{t}, y, a \cdot 120\right) \]

                                if -3.4000000000000003e-36 < t < 3.3e18

                                1. Initial program 99.8%

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

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

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

                                    \[\leadsto \color{blue}{a \cdot 120} + \frac{60 \cdot \left(x - y\right)}{z - t} \]
                                  4. lower-fma.f6499.8

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

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

                                    \[\leadsto \mathsf{fma}\left(a, 120, \frac{\color{blue}{60 \cdot \left(x - y\right)}}{z - t}\right) \]
                                  7. *-commutativeN/A

                                    \[\leadsto \mathsf{fma}\left(a, 120, \frac{\color{blue}{\left(x - y\right) \cdot 60}}{z - t}\right) \]
                                  8. associate-/l*N/A

                                    \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\left(x - y\right) \cdot \frac{60}{z - t}}\right) \]
                                  9. *-commutativeN/A

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

                                    \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\frac{60}{z - t} \cdot \left(x - y\right)}\right) \]
                                  11. frac-2negN/A

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

                                    \[\leadsto \mathsf{fma}\left(a, 120, \color{blue}{\frac{\mathsf{neg}\left(60\right)}{\mathsf{neg}\left(\left(z - t\right)\right)}} \cdot \left(x - y\right)\right) \]
                                  13. metadata-evalN/A

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

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

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

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

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

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

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

                                    \[\leadsto \mathsf{fma}\left(a, 120, \frac{-60}{\color{blue}{t} - z} \cdot \left(x - y\right)\right) \]
                                  21. lower--.f6499.8

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

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

                                  \[\leadsto \color{blue}{60 \cdot \frac{y}{t - z} + 120 \cdot a} \]
                                6. Step-by-step derivation
                                  1. associate-*r/N/A

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

                                    \[\leadsto \color{blue}{\frac{60}{t - z} \cdot y} + 120 \cdot a \]
                                  3. remove-double-negN/A

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

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

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

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

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

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

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

                                    \[\leadsto \left(\mathsf{neg}\left(\color{blue}{60 \cdot \frac{1}{z - t}}\right)\right) \cdot y + 120 \cdot a \]
                                  11. lower-fma.f64N/A

                                    \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{neg}\left(60 \cdot \frac{1}{z - t}\right), y, 120 \cdot a\right)} \]
                                7. Applied rewrites67.7%

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

                                  \[\leadsto \mathsf{fma}\left(\frac{-60}{z}, y, a \cdot 120\right) \]
                                9. Step-by-step derivation
                                  1. Applied rewrites61.0%

                                    \[\leadsto \mathsf{fma}\left(\frac{-60}{z}, y, a \cdot 120\right) \]
                                10. Recombined 2 regimes into one program.
                                11. Final simplification71.3%

                                  \[\leadsto \begin{array}{l} \mathbf{if}\;t \leq -3.4 \cdot 10^{-36}:\\ \;\;\;\;\mathsf{fma}\left(\frac{60}{t}, y, 120 \cdot a\right)\\ \mathbf{elif}\;t \leq 3.3 \cdot 10^{+18}:\\ \;\;\;\;\mathsf{fma}\left(\frac{-60}{z}, y, 120 \cdot a\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{60}{t}, y, 120 \cdot a\right)\\ \end{array} \]
                                12. Add Preprocessing

                                Alternative 15: 50.4% accurate, 5.2× speedup?

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

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

                                  \[\leadsto \color{blue}{120 \cdot a} \]
                                4. Step-by-step derivation
                                  1. *-commutativeN/A

                                    \[\leadsto \color{blue}{a \cdot 120} \]
                                  2. lower-*.f6455.0

                                    \[\leadsto \color{blue}{a \cdot 120} \]
                                5. Applied rewrites55.0%

                                  \[\leadsto \color{blue}{a \cdot 120} \]
                                6. Final simplification55.0%

                                  \[\leadsto 120 \cdot a \]
                                7. Add Preprocessing

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

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

                                Reproduce

                                ?
                                herbie shell --seed 2024241 
                                (FPCore (x y z t a)
                                  :name "Data.Colour.RGB:hslsv from colour-2.3.3, B"
                                  :precision binary64
                                
                                  :alt
                                  (! :herbie-platform default (+ (/ 60 (/ (- z t) (- x y))) (* a 120)))
                                
                                  (+ (/ (* 60.0 (- x y)) (- z t)) (* a 120.0)))