Linear.V3:$cdot from linear-1.19.1.3, B

Percentage Accurate: 97.2% → 99.0%
Time: 12.3s
Alternatives: 12
Speedup: 0.4×

Specification

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

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

Sampling outcomes in binary64 precision:

Local Percentage Accuracy vs ?

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

Accuracy vs Speed?

Herbie found 12 alternatives:

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

Initial Program: 97.2% accurate, 1.0× speedup?

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

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

Alternative 1: 99.0% accurate, 0.1× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;a \cdot b + \left(x \cdot y + z \cdot t\right) \leq \infty:\\ \;\;\;\;\mathsf{fma}\left(x, y, z \cdot t\right) + a \cdot b\\ \mathbf{else}:\\ \;\;\;\;z \cdot \left(t + y \cdot \frac{x}{z}\right)\\ \end{array} \end{array} \]
(FPCore (x y z t a b)
 :precision binary64
 (if (<= (+ (* a b) (+ (* x y) (* z t))) INFINITY)
   (+ (fma x y (* z t)) (* a b))
   (* z (+ t (* y (/ x z))))))
double code(double x, double y, double z, double t, double a, double b) {
	double tmp;
	if (((a * b) + ((x * y) + (z * t))) <= ((double) INFINITY)) {
		tmp = fma(x, y, (z * t)) + (a * b);
	} else {
		tmp = z * (t + (y * (x / z)));
	}
	return tmp;
}
function code(x, y, z, t, a, b)
	tmp = 0.0
	if (Float64(Float64(a * b) + Float64(Float64(x * y) + Float64(z * t))) <= Inf)
		tmp = Float64(fma(x, y, Float64(z * t)) + Float64(a * b));
	else
		tmp = Float64(z * Float64(t + Float64(y * Float64(x / z))));
	end
	return tmp
end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[N[(N[(a * b), $MachinePrecision] + N[(N[(x * y), $MachinePrecision] + N[(z * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], Infinity], N[(N[(x * y + N[(z * t), $MachinePrecision]), $MachinePrecision] + N[(a * b), $MachinePrecision]), $MachinePrecision], N[(z * N[(t + N[(y * N[(x / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;a \cdot b + \left(x \cdot y + z \cdot t\right) \leq \infty:\\
\;\;\;\;\mathsf{fma}\left(x, y, z \cdot t\right) + a \cdot b\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) < +inf.0

    1. Initial program 100.0%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Step-by-step derivation
      1. fma-define100.0%

        \[\leadsto \color{blue}{\mathsf{fma}\left(x, y, z \cdot t\right)} + a \cdot b \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(x, y, z \cdot t\right) + a \cdot b} \]
    4. Add Preprocessing

    if +inf.0 < (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))

    1. Initial program 0.0%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in b around inf 44.4%

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

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

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

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

      \[\leadsto \color{blue}{z \cdot \left(t + \frac{b \cdot \left(a + \frac{x \cdot y}{b}\right)}{z}\right)} \]
    7. Taylor expanded in b around 0 55.6%

      \[\leadsto z \cdot \left(t + \color{blue}{\frac{x \cdot y}{z}}\right) \]
    8. Step-by-step derivation
      1. *-commutative55.6%

        \[\leadsto z \cdot \left(t + \frac{\color{blue}{y \cdot x}}{z}\right) \]
      2. associate-*r/77.8%

        \[\leadsto z \cdot \left(t + \color{blue}{y \cdot \frac{x}{z}}\right) \]
    9. Simplified77.8%

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;a \cdot b + \left(x \cdot y + z \cdot t\right) \leq \infty:\\ \;\;\;\;\mathsf{fma}\left(x, y, z \cdot t\right) + a \cdot b\\ \mathbf{else}:\\ \;\;\;\;z \cdot \left(t + y \cdot \frac{x}{z}\right)\\ \end{array} \]
  5. Add Preprocessing

Alternative 2: 53.0% accurate, 0.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;x \cdot y \leq -1.85 \cdot 10^{+108}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq -1.5 \cdot 10^{-51}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -1.45 \cdot 10^{-51}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq -1.45 \cdot 10^{-57}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -5.2 \cdot 10^{-58}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -9 \cdot 10^{-87}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -9.2 \cdot 10^{-104}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -3.7 \cdot 10^{-112}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -7.5 \cdot 10^{-120}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -2.7 \cdot 10^{-121}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -3.7 \cdot 10^{-129}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -2.65 \cdot 10^{-133}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -2.8 \cdot 10^{-145}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -7.5 \cdot 10^{-169}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -1.05 \cdot 10^{-174}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-174}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq -5.8 \cdot 10^{-182}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -3.3 \cdot 10^{-184}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -2.85 \cdot 10^{-190}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -2.8 \cdot 10^{-190}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq -3.3 \cdot 10^{-199}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -1.35 \cdot 10^{-203}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -9.5 \cdot 10^{-242}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -8.6 \cdot 10^{-255}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -1.1 \cdot 10^{-256}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -2.4 \cdot 10^{-259}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -5.8 \cdot 10^{-264}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -5.6 \cdot 10^{-285}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -7 \cdot 10^{-308}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 0:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-319}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 3.7 \cdot 10^{-255}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 7.5 \cdot 10^{-243}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 3.8 \cdot 10^{-223}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 1.65 \cdot 10^{-207}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 7.6 \cdot 10^{-180}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 1.1 \cdot 10^{-177}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 1.4 \cdot 10^{-176}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 4.6 \cdot 10^{-173}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 6.8 \cdot 10^{-155}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 7 \cdot 10^{-155}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq 1.7 \cdot 10^{-114}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 1.25 \cdot 10^{-107}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 1.3 \cdot 10^{-107}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq 7 \cdot 10^{-96}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 5.4 \cdot 10^{-83}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 1.45 \cdot 10^{-77}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 2.55 \cdot 10^{-76}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 3.7 \cdot 10^{-75}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 4.4 \cdot 10^{-49}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 5.2 \cdot 10^{-41}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 1.45 \cdot 10^{-38}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq 7.2 \cdot 10^{-28}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 310:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 155000000:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 8.6 \cdot 10^{+14}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+18}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 2.35 \cdot 10^{+27}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 3.9 \cdot 10^{+31}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq 6.5 \cdot 10^{+40}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 1.55 \cdot 10^{+43}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq 2.45 \cdot 10^{+44}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 1.75 \cdot 10^{+45}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 4.5 \cdot 10^{+63}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq 2.7 \cdot 10^{+72}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 6.6 \cdot 10^{+81}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 7.1 \cdot 10^{+84}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 2.35 \cdot 10^{+88}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 1.95 \cdot 10^{+98}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq 5.1 \cdot 10^{+104}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 1.2 \cdot 10^{+106}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 1.35 \cdot 10^{+112}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq 5.3 \cdot 10^{+137}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 1.3 \cdot 10^{+138}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 4.4 \cdot 10^{+162}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq 3.1 \cdot 10^{+164}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 4.7 \cdot 10^{+176}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq 4.8 \cdot 10^{+176}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 7.2 \cdot 10^{+187}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq 1.5 \cdot 10^{+188}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 1.5 \cdot 10^{+208}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq 1.6 \cdot 10^{+208}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 1.5 \cdot 10^{+229} \lor \neg \left(x \cdot y \leq 1.55 \cdot 10^{+229}\right):\\ \;\;\;\;x \cdot y\\ \mathbf{else}:\\ \;\;\;\;z \cdot t\\ \end{array} \end{array} \]
(FPCore (x y z t a b)
 :precision binary64
 (if (<= (* x y) -1.85e+108)
   (* x y)
   (if (<= (* x y) -1.5e-51)
     (* z t)
     (if (<= (* x y) -1.45e-51)
       (* x y)
       (if (<= (* x y) -1.45e-57)
         (* a b)
         (if (<= (* x y) -5.2e-58)
           (* z t)
           (if (<= (* x y) -9e-87)
             (* a b)
             (if (<= (* x y) -9.2e-104)
               (* z t)
               (if (<= (* x y) -3.7e-112)
                 (* a b)
                 (if (<= (* x y) -7.5e-120)
                   (* z t)
                   (if (<= (* x y) -2.7e-121)
                     (* a b)
                     (if (<= (* x y) -3.7e-129)
                       (* z t)
                       (if (<= (* x y) -2.65e-133)
                         (* a b)
                         (if (<= (* x y) -2.8e-145)
                           (* z t)
                           (if (<= (* x y) -7.5e-169)
                             (* a b)
                             (if (<= (* x y) -1.05e-174)
                               (* z t)
                               (if (<= (* x y) -1e-174)
                                 (* x y)
                                 (if (<= (* x y) -5.8e-182)
                                   (* a b)
                                   (if (<= (* x y) -3.3e-184)
                                     (* z t)
                                     (if (<= (* x y) -2.85e-190)
                                       (* a b)
                                       (if (<= (* x y) -2.8e-190)
                                         (* x y)
                                         (if (<= (* x y) -3.3e-199)
                                           (* z t)
                                           (if (<= (* x y) -1.35e-203)
                                             (* a b)
                                             (if (<= (* x y) -9.5e-242)
                                               (* z t)
                                               (if (<= (* x y) -8.6e-255)
                                                 (* a b)
                                                 (if (<= (* x y) -1.1e-256)
                                                   (* z t)
                                                   (if (<= (* x y) -2.4e-259)
                                                     (* a b)
                                                     (if (<= (* x y) -5.8e-264)
                                                       (* z t)
                                                       (if (<=
                                                            (* x y)
                                                            -5.6e-285)
                                                         (* a b)
                                                         (if (<=
                                                              (* x y)
                                                              -7e-308)
                                                           (* z t)
                                                           (if (<= (* x y) 0.0)
                                                             (* a b)
                                                             (if (<=
                                                                  (* x y)
                                                                  5e-319)
                                                               (* z t)
                                                               (if (<=
                                                                    (* x y)
                                                                    3.7e-255)
                                                                 (* a b)
                                                                 (if (<=
                                                                      (* x y)
                                                                      7.5e-243)
                                                                   (* z t)
                                                                   (if (<=
                                                                        (* x y)
                                                                        3.8e-223)
                                                                     (* a b)
                                                                     (if (<=
                                                                          (*
                                                                           x
                                                                           y)
                                                                          1.65e-207)
                                                                       (* z t)
                                                                       (if (<=
                                                                            (*
                                                                             x
                                                                             y)
                                                                            7.6e-180)
                                                                         (*
                                                                          a
                                                                          b)
                                                                         (if (<=
                                                                              (*
                                                                               x
                                                                               y)
                                                                              1.1e-177)
                                                                           (*
                                                                            z
                                                                            t)
                                                                           (if (<=
                                                                                (*
                                                                                 x
                                                                                 y)
                                                                                1.4e-176)
                                                                             (*
                                                                              a
                                                                              b)
                                                                             (if (<=
                                                                                  (*
                                                                                   x
                                                                                   y)
                                                                                  4.6e-173)
                                                                               (*
                                                                                z
                                                                                t)
                                                                               (if (<=
                                                                                    (*
                                                                                     x
                                                                                     y)
                                                                                    6.8e-155)
                                                                                 (*
                                                                                  a
                                                                                  b)
                                                                                 (if (<=
                                                                                      (*
                                                                                       x
                                                                                       y)
                                                                                      7e-155)
                                                                                   (*
                                                                                    x
                                                                                    y)
                                                                                   (if (<=
                                                                                        (*
                                                                                         x
                                                                                         y)
                                                                                        1.7e-114)
                                                                                     (*
                                                                                      z
                                                                                      t)
                                                                                     (if (<=
                                                                                          (*
                                                                                           x
                                                                                           y)
                                                                                          1.25e-107)
                                                                                       (*
                                                                                        a
                                                                                        b)
                                                                                       (if (<=
                                                                                            (*
                                                                                             x
                                                                                             y)
                                                                                            1.3e-107)
                                                                                         (*
                                                                                          x
                                                                                          y)
                                                                                         (if (<=
                                                                                              (*
                                                                                               x
                                                                                               y)
                                                                                              7e-96)
                                                                                           (*
                                                                                            z
                                                                                            t)
                                                                                           (if (<=
                                                                                                (*
                                                                                                 x
                                                                                                 y)
                                                                                                5.4e-83)
                                                                                             (*
                                                                                              a
                                                                                              b)
                                                                                             (if (<=
                                                                                                  (*
                                                                                                   x
                                                                                                   y)
                                                                                                  1.45e-77)
                                                                                               (*
                                                                                                z
                                                                                                t)
                                                                                               (if (<=
                                                                                                    (*
                                                                                                     x
                                                                                                     y)
                                                                                                    2.55e-76)
                                                                                                 (*
                                                                                                  a
                                                                                                  b)
                                                                                                 (if (<=
                                                                                                      (*
                                                                                                       x
                                                                                                       y)
                                                                                                      3.7e-75)
                                                                                                   (*
                                                                                                    z
                                                                                                    t)
                                                                                                   (if (<=
                                                                                                        (*
                                                                                                         x
                                                                                                         y)
                                                                                                        4.4e-49)
                                                                                                     (*
                                                                                                      a
                                                                                                      b)
                                                                                                     (if (<=
                                                                                                          (*
                                                                                                           x
                                                                                                           y)
                                                                                                          5.2e-41)
                                                                                                       (*
                                                                                                        z
                                                                                                        t)
                                                                                                       (if (<=
                                                                                                            (*
                                                                                                             x
                                                                                                             y)
                                                                                                            1.45e-38)
                                                                                                         (*
                                                                                                          x
                                                                                                          y)
                                                                                                         (if (<=
                                                                                                              (*
                                                                                                               x
                                                                                                               y)
                                                                                                              7.2e-28)
                                                                                                           (*
                                                                                                            a
                                                                                                            b)
                                                                                                           (if (<=
                                                                                                                (*
                                                                                                                 x
                                                                                                                 y)
                                                                                                                310.0)
                                                                                                             (*
                                                                                                              z
                                                                                                              t)
                                                                                                             (if (<=
                                                                                                                  (*
                                                                                                                   x
                                                                                                                   y)
                                                                                                                  155000000.0)
                                                                                                               (*
                                                                                                                a
                                                                                                                b)
                                                                                                               (if (<=
                                                                                                                    (*
                                                                                                                     x
                                                                                                                     y)
                                                                                                                    8.6e+14)
                                                                                                                 (*
                                                                                                                  z
                                                                                                                  t)
                                                                                                                 (if (<=
                                                                                                                      (*
                                                                                                                       x
                                                                                                                       y)
                                                                                                                      5e+18)
                                                                                                                   (*
                                                                                                                    a
                                                                                                                    b)
                                                                                                                   (if (<=
                                                                                                                        (*
                                                                                                                         x
                                                                                                                         y)
                                                                                                                        2.35e+27)
                                                                                                                     (*
                                                                                                                      z
                                                                                                                      t)
                                                                                                                     (if (<=
                                                                                                                          (*
                                                                                                                           x
                                                                                                                           y)
                                                                                                                          3.9e+31)
                                                                                                                       (*
                                                                                                                        x
                                                                                                                        y)
                                                                                                                       (if (<=
                                                                                                                            (*
                                                                                                                             x
                                                                                                                             y)
                                                                                                                            6.5e+40)
                                                                                                                         (*
                                                                                                                          z
                                                                                                                          t)
                                                                                                                         (if (<=
                                                                                                                              (*
                                                                                                                               x
                                                                                                                               y)
                                                                                                                              1.55e+43)
                                                                                                                           (*
                                                                                                                            x
                                                                                                                            y)
                                                                                                                           (if (<=
                                                                                                                                (*
                                                                                                                                 x
                                                                                                                                 y)
                                                                                                                                2.45e+44)
                                                                                                                             (*
                                                                                                                              z
                                                                                                                              t)
                                                                                                                             (if (<=
                                                                                                                                  (*
                                                                                                                                   x
                                                                                                                                   y)
                                                                                                                                  1.75e+45)
                                                                                                                               (*
                                                                                                                                a
                                                                                                                                b)
                                                                                                                               (if (<=
                                                                                                                                    (*
                                                                                                                                     x
                                                                                                                                     y)
                                                                                                                                    4.5e+63)
                                                                                                                                 (*
                                                                                                                                  x
                                                                                                                                  y)
                                                                                                                                 (if (<=
                                                                                                                                      (*
                                                                                                                                       x
                                                                                                                                       y)
                                                                                                                                      2.7e+72)
                                                                                                                                   (*
                                                                                                                                    a
                                                                                                                                    b)
                                                                                                                                   (if (<=
                                                                                                                                        (*
                                                                                                                                         x
                                                                                                                                         y)
                                                                                                                                        6.6e+81)
                                                                                                                                     (*
                                                                                                                                      z
                                                                                                                                      t)
                                                                                                                                     (if (<=
                                                                                                                                          (*
                                                                                                                                           x
                                                                                                                                           y)
                                                                                                                                          7.1e+84)
                                                                                                                                       (*
                                                                                                                                        a
                                                                                                                                        b)
                                                                                                                                       (if (<=
                                                                                                                                            (*
                                                                                                                                             x
                                                                                                                                             y)
                                                                                                                                            2.35e+88)
                                                                                                                                         (*
                                                                                                                                          z
                                                                                                                                          t)
                                                                                                                                         (if (<=
                                                                                                                                              (*
                                                                                                                                               x
                                                                                                                                               y)
                                                                                                                                              1.95e+98)
                                                                                                                                           (*
                                                                                                                                            x
                                                                                                                                            y)
                                                                                                                                           (if (<=
                                                                                                                                                (*
                                                                                                                                                 x
                                                                                                                                                 y)
                                                                                                                                                5.1e+104)
                                                                                                                                             (*
                                                                                                                                              z
                                                                                                                                              t)
                                                                                                                                             (if (<=
                                                                                                                                                  (*
                                                                                                                                                   x
                                                                                                                                                   y)
                                                                                                                                                  1.2e+106)
                                                                                                                                               (*
                                                                                                                                                a
                                                                                                                                                b)
                                                                                                                                               (if (<=
                                                                                                                                                    (*
                                                                                                                                                     x
                                                                                                                                                     y)
                                                                                                                                                    1.35e+112)
                                                                                                                                                 (*
                                                                                                                                                  x
                                                                                                                                                  y)
                                                                                                                                                 (if (<=
                                                                                                                                                      (*
                                                                                                                                                       x
                                                                                                                                                       y)
                                                                                                                                                      5.3e+137)
                                                                                                                                                   (*
                                                                                                                                                    a
                                                                                                                                                    b)
                                                                                                                                                   (if (<=
                                                                                                                                                        (*
                                                                                                                                                         x
                                                                                                                                                         y)
                                                                                                                                                        1.3e+138)
                                                                                                                                                     (*
                                                                                                                                                      z
                                                                                                                                                      t)
                                                                                                                                                     (if (<=
                                                                                                                                                          (*
                                                                                                                                                           x
                                                                                                                                                           y)
                                                                                                                                                          4.4e+162)
                                                                                                                                                       (*
                                                                                                                                                        x
                                                                                                                                                        y)
                                                                                                                                                       (if (<=
                                                                                                                                                            (*
                                                                                                                                                             x
                                                                                                                                                             y)
                                                                                                                                                            3.1e+164)
                                                                                                                                                         (*
                                                                                                                                                          a
                                                                                                                                                          b)
                                                                                                                                                         (if (<=
                                                                                                                                                              (*
                                                                                                                                                               x
                                                                                                                                                               y)
                                                                                                                                                              4.7e+176)
                                                                                                                                                           (*
                                                                                                                                                            x
                                                                                                                                                            y)
                                                                                                                                                           (if (<=
                                                                                                                                                                (*
                                                                                                                                                                 x
                                                                                                                                                                 y)
                                                                                                                                                                4.8e+176)
                                                                                                                                                             (*
                                                                                                                                                              z
                                                                                                                                                              t)
                                                                                                                                                             (if (<=
                                                                                                                                                                  (*
                                                                                                                                                                   x
                                                                                                                                                                   y)
                                                                                                                                                                  7.2e+187)
                                                                                                                                                               (*
                                                                                                                                                                x
                                                                                                                                                                y)
                                                                                                                                                               (if (<=
                                                                                                                                                                    (*
                                                                                                                                                                     x
                                                                                                                                                                     y)
                                                                                                                                                                    1.5e+188)
                                                                                                                                                                 (*
                                                                                                                                                                  z
                                                                                                                                                                  t)
                                                                                                                                                                 (if (<=
                                                                                                                                                                      (*
                                                                                                                                                                       x
                                                                                                                                                                       y)
                                                                                                                                                                      1.5e+208)
                                                                                                                                                                   (*
                                                                                                                                                                    x
                                                                                                                                                                    y)
                                                                                                                                                                   (if (<=
                                                                                                                                                                        (*
                                                                                                                                                                         x
                                                                                                                                                                         y)
                                                                                                                                                                        1.6e+208)
                                                                                                                                                                     (*
                                                                                                                                                                      a
                                                                                                                                                                      b)
                                                                                                                                                                     (if (or (<=
                                                                                                                                                                              (*
                                                                                                                                                                               x
                                                                                                                                                                               y)
                                                                                                                                                                              1.5e+229)
                                                                                                                                                                             (not
                                                                                                                                                                              (<=
                                                                                                                                                                               (*
                                                                                                                                                                                x
                                                                                                                                                                                y)
                                                                                                                                                                               1.55e+229)))
                                                                                                                                                                       (*
                                                                                                                                                                        x
                                                                                                                                                                        y)
                                                                                                                                                                       (*
                                                                                                                                                                        z
                                                                                                                                                                        t)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
double code(double x, double y, double z, double t, double a, double b) {
	double tmp;
	if ((x * y) <= -1.85e+108) {
		tmp = x * y;
	} else if ((x * y) <= -1.5e-51) {
		tmp = z * t;
	} else if ((x * y) <= -1.45e-51) {
		tmp = x * y;
	} else if ((x * y) <= -1.45e-57) {
		tmp = a * b;
	} else if ((x * y) <= -5.2e-58) {
		tmp = z * t;
	} else if ((x * y) <= -9e-87) {
		tmp = a * b;
	} else if ((x * y) <= -9.2e-104) {
		tmp = z * t;
	} else if ((x * y) <= -3.7e-112) {
		tmp = a * b;
	} else if ((x * y) <= -7.5e-120) {
		tmp = z * t;
	} else if ((x * y) <= -2.7e-121) {
		tmp = a * b;
	} else if ((x * y) <= -3.7e-129) {
		tmp = z * t;
	} else if ((x * y) <= -2.65e-133) {
		tmp = a * b;
	} else if ((x * y) <= -2.8e-145) {
		tmp = z * t;
	} else if ((x * y) <= -7.5e-169) {
		tmp = a * b;
	} else if ((x * y) <= -1.05e-174) {
		tmp = z * t;
	} else if ((x * y) <= -1e-174) {
		tmp = x * y;
	} else if ((x * y) <= -5.8e-182) {
		tmp = a * b;
	} else if ((x * y) <= -3.3e-184) {
		tmp = z * t;
	} else if ((x * y) <= -2.85e-190) {
		tmp = a * b;
	} else if ((x * y) <= -2.8e-190) {
		tmp = x * y;
	} else if ((x * y) <= -3.3e-199) {
		tmp = z * t;
	} else if ((x * y) <= -1.35e-203) {
		tmp = a * b;
	} else if ((x * y) <= -9.5e-242) {
		tmp = z * t;
	} else if ((x * y) <= -8.6e-255) {
		tmp = a * b;
	} else if ((x * y) <= -1.1e-256) {
		tmp = z * t;
	} else if ((x * y) <= -2.4e-259) {
		tmp = a * b;
	} else if ((x * y) <= -5.8e-264) {
		tmp = z * t;
	} else if ((x * y) <= -5.6e-285) {
		tmp = a * b;
	} else if ((x * y) <= -7e-308) {
		tmp = z * t;
	} else if ((x * y) <= 0.0) {
		tmp = a * b;
	} else if ((x * y) <= 5e-319) {
		tmp = z * t;
	} else if ((x * y) <= 3.7e-255) {
		tmp = a * b;
	} else if ((x * y) <= 7.5e-243) {
		tmp = z * t;
	} else if ((x * y) <= 3.8e-223) {
		tmp = a * b;
	} else if ((x * y) <= 1.65e-207) {
		tmp = z * t;
	} else if ((x * y) <= 7.6e-180) {
		tmp = a * b;
	} else if ((x * y) <= 1.1e-177) {
		tmp = z * t;
	} else if ((x * y) <= 1.4e-176) {
		tmp = a * b;
	} else if ((x * y) <= 4.6e-173) {
		tmp = z * t;
	} else if ((x * y) <= 6.8e-155) {
		tmp = a * b;
	} else if ((x * y) <= 7e-155) {
		tmp = x * y;
	} else if ((x * y) <= 1.7e-114) {
		tmp = z * t;
	} else if ((x * y) <= 1.25e-107) {
		tmp = a * b;
	} else if ((x * y) <= 1.3e-107) {
		tmp = x * y;
	} else if ((x * y) <= 7e-96) {
		tmp = z * t;
	} else if ((x * y) <= 5.4e-83) {
		tmp = a * b;
	} else if ((x * y) <= 1.45e-77) {
		tmp = z * t;
	} else if ((x * y) <= 2.55e-76) {
		tmp = a * b;
	} else if ((x * y) <= 3.7e-75) {
		tmp = z * t;
	} else if ((x * y) <= 4.4e-49) {
		tmp = a * b;
	} else if ((x * y) <= 5.2e-41) {
		tmp = z * t;
	} else if ((x * y) <= 1.45e-38) {
		tmp = x * y;
	} else if ((x * y) <= 7.2e-28) {
		tmp = a * b;
	} else if ((x * y) <= 310.0) {
		tmp = z * t;
	} else if ((x * y) <= 155000000.0) {
		tmp = a * b;
	} else if ((x * y) <= 8.6e+14) {
		tmp = z * t;
	} else if ((x * y) <= 5e+18) {
		tmp = a * b;
	} else if ((x * y) <= 2.35e+27) {
		tmp = z * t;
	} else if ((x * y) <= 3.9e+31) {
		tmp = x * y;
	} else if ((x * y) <= 6.5e+40) {
		tmp = z * t;
	} else if ((x * y) <= 1.55e+43) {
		tmp = x * y;
	} else if ((x * y) <= 2.45e+44) {
		tmp = z * t;
	} else if ((x * y) <= 1.75e+45) {
		tmp = a * b;
	} else if ((x * y) <= 4.5e+63) {
		tmp = x * y;
	} else if ((x * y) <= 2.7e+72) {
		tmp = a * b;
	} else if ((x * y) <= 6.6e+81) {
		tmp = z * t;
	} else if ((x * y) <= 7.1e+84) {
		tmp = a * b;
	} else if ((x * y) <= 2.35e+88) {
		tmp = z * t;
	} else if ((x * y) <= 1.95e+98) {
		tmp = x * y;
	} else if ((x * y) <= 5.1e+104) {
		tmp = z * t;
	} else if ((x * y) <= 1.2e+106) {
		tmp = a * b;
	} else if ((x * y) <= 1.35e+112) {
		tmp = x * y;
	} else if ((x * y) <= 5.3e+137) {
		tmp = a * b;
	} else if ((x * y) <= 1.3e+138) {
		tmp = z * t;
	} else if ((x * y) <= 4.4e+162) {
		tmp = x * y;
	} else if ((x * y) <= 3.1e+164) {
		tmp = a * b;
	} else if ((x * y) <= 4.7e+176) {
		tmp = x * y;
	} else if ((x * y) <= 4.8e+176) {
		tmp = z * t;
	} else if ((x * y) <= 7.2e+187) {
		tmp = x * y;
	} else if ((x * y) <= 1.5e+188) {
		tmp = z * t;
	} else if ((x * y) <= 1.5e+208) {
		tmp = x * y;
	} else if ((x * y) <= 1.6e+208) {
		tmp = a * b;
	} else if (((x * y) <= 1.5e+229) || !((x * y) <= 1.55e+229)) {
		tmp = x * y;
	} else {
		tmp = z * t;
	}
	return tmp;
}
real(8) function code(x, y, z, t, a, b)
    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), intent (in) :: b
    real(8) :: tmp
    if ((x * y) <= (-1.85d+108)) then
        tmp = x * y
    else if ((x * y) <= (-1.5d-51)) then
        tmp = z * t
    else if ((x * y) <= (-1.45d-51)) then
        tmp = x * y
    else if ((x * y) <= (-1.45d-57)) then
        tmp = a * b
    else if ((x * y) <= (-5.2d-58)) then
        tmp = z * t
    else if ((x * y) <= (-9d-87)) then
        tmp = a * b
    else if ((x * y) <= (-9.2d-104)) then
        tmp = z * t
    else if ((x * y) <= (-3.7d-112)) then
        tmp = a * b
    else if ((x * y) <= (-7.5d-120)) then
        tmp = z * t
    else if ((x * y) <= (-2.7d-121)) then
        tmp = a * b
    else if ((x * y) <= (-3.7d-129)) then
        tmp = z * t
    else if ((x * y) <= (-2.65d-133)) then
        tmp = a * b
    else if ((x * y) <= (-2.8d-145)) then
        tmp = z * t
    else if ((x * y) <= (-7.5d-169)) then
        tmp = a * b
    else if ((x * y) <= (-1.05d-174)) then
        tmp = z * t
    else if ((x * y) <= (-1d-174)) then
        tmp = x * y
    else if ((x * y) <= (-5.8d-182)) then
        tmp = a * b
    else if ((x * y) <= (-3.3d-184)) then
        tmp = z * t
    else if ((x * y) <= (-2.85d-190)) then
        tmp = a * b
    else if ((x * y) <= (-2.8d-190)) then
        tmp = x * y
    else if ((x * y) <= (-3.3d-199)) then
        tmp = z * t
    else if ((x * y) <= (-1.35d-203)) then
        tmp = a * b
    else if ((x * y) <= (-9.5d-242)) then
        tmp = z * t
    else if ((x * y) <= (-8.6d-255)) then
        tmp = a * b
    else if ((x * y) <= (-1.1d-256)) then
        tmp = z * t
    else if ((x * y) <= (-2.4d-259)) then
        tmp = a * b
    else if ((x * y) <= (-5.8d-264)) then
        tmp = z * t
    else if ((x * y) <= (-5.6d-285)) then
        tmp = a * b
    else if ((x * y) <= (-7d-308)) then
        tmp = z * t
    else if ((x * y) <= 0.0d0) then
        tmp = a * b
    else if ((x * y) <= 5d-319) then
        tmp = z * t
    else if ((x * y) <= 3.7d-255) then
        tmp = a * b
    else if ((x * y) <= 7.5d-243) then
        tmp = z * t
    else if ((x * y) <= 3.8d-223) then
        tmp = a * b
    else if ((x * y) <= 1.65d-207) then
        tmp = z * t
    else if ((x * y) <= 7.6d-180) then
        tmp = a * b
    else if ((x * y) <= 1.1d-177) then
        tmp = z * t
    else if ((x * y) <= 1.4d-176) then
        tmp = a * b
    else if ((x * y) <= 4.6d-173) then
        tmp = z * t
    else if ((x * y) <= 6.8d-155) then
        tmp = a * b
    else if ((x * y) <= 7d-155) then
        tmp = x * y
    else if ((x * y) <= 1.7d-114) then
        tmp = z * t
    else if ((x * y) <= 1.25d-107) then
        tmp = a * b
    else if ((x * y) <= 1.3d-107) then
        tmp = x * y
    else if ((x * y) <= 7d-96) then
        tmp = z * t
    else if ((x * y) <= 5.4d-83) then
        tmp = a * b
    else if ((x * y) <= 1.45d-77) then
        tmp = z * t
    else if ((x * y) <= 2.55d-76) then
        tmp = a * b
    else if ((x * y) <= 3.7d-75) then
        tmp = z * t
    else if ((x * y) <= 4.4d-49) then
        tmp = a * b
    else if ((x * y) <= 5.2d-41) then
        tmp = z * t
    else if ((x * y) <= 1.45d-38) then
        tmp = x * y
    else if ((x * y) <= 7.2d-28) then
        tmp = a * b
    else if ((x * y) <= 310.0d0) then
        tmp = z * t
    else if ((x * y) <= 155000000.0d0) then
        tmp = a * b
    else if ((x * y) <= 8.6d+14) then
        tmp = z * t
    else if ((x * y) <= 5d+18) then
        tmp = a * b
    else if ((x * y) <= 2.35d+27) then
        tmp = z * t
    else if ((x * y) <= 3.9d+31) then
        tmp = x * y
    else if ((x * y) <= 6.5d+40) then
        tmp = z * t
    else if ((x * y) <= 1.55d+43) then
        tmp = x * y
    else if ((x * y) <= 2.45d+44) then
        tmp = z * t
    else if ((x * y) <= 1.75d+45) then
        tmp = a * b
    else if ((x * y) <= 4.5d+63) then
        tmp = x * y
    else if ((x * y) <= 2.7d+72) then
        tmp = a * b
    else if ((x * y) <= 6.6d+81) then
        tmp = z * t
    else if ((x * y) <= 7.1d+84) then
        tmp = a * b
    else if ((x * y) <= 2.35d+88) then
        tmp = z * t
    else if ((x * y) <= 1.95d+98) then
        tmp = x * y
    else if ((x * y) <= 5.1d+104) then
        tmp = z * t
    else if ((x * y) <= 1.2d+106) then
        tmp = a * b
    else if ((x * y) <= 1.35d+112) then
        tmp = x * y
    else if ((x * y) <= 5.3d+137) then
        tmp = a * b
    else if ((x * y) <= 1.3d+138) then
        tmp = z * t
    else if ((x * y) <= 4.4d+162) then
        tmp = x * y
    else if ((x * y) <= 3.1d+164) then
        tmp = a * b
    else if ((x * y) <= 4.7d+176) then
        tmp = x * y
    else if ((x * y) <= 4.8d+176) then
        tmp = z * t
    else if ((x * y) <= 7.2d+187) then
        tmp = x * y
    else if ((x * y) <= 1.5d+188) then
        tmp = z * t
    else if ((x * y) <= 1.5d+208) then
        tmp = x * y
    else if ((x * y) <= 1.6d+208) then
        tmp = a * b
    else if (((x * y) <= 1.5d+229) .or. (.not. ((x * y) <= 1.55d+229))) then
        tmp = x * y
    else
        tmp = z * t
    end if
    code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
	double tmp;
	if ((x * y) <= -1.85e+108) {
		tmp = x * y;
	} else if ((x * y) <= -1.5e-51) {
		tmp = z * t;
	} else if ((x * y) <= -1.45e-51) {
		tmp = x * y;
	} else if ((x * y) <= -1.45e-57) {
		tmp = a * b;
	} else if ((x * y) <= -5.2e-58) {
		tmp = z * t;
	} else if ((x * y) <= -9e-87) {
		tmp = a * b;
	} else if ((x * y) <= -9.2e-104) {
		tmp = z * t;
	} else if ((x * y) <= -3.7e-112) {
		tmp = a * b;
	} else if ((x * y) <= -7.5e-120) {
		tmp = z * t;
	} else if ((x * y) <= -2.7e-121) {
		tmp = a * b;
	} else if ((x * y) <= -3.7e-129) {
		tmp = z * t;
	} else if ((x * y) <= -2.65e-133) {
		tmp = a * b;
	} else if ((x * y) <= -2.8e-145) {
		tmp = z * t;
	} else if ((x * y) <= -7.5e-169) {
		tmp = a * b;
	} else if ((x * y) <= -1.05e-174) {
		tmp = z * t;
	} else if ((x * y) <= -1e-174) {
		tmp = x * y;
	} else if ((x * y) <= -5.8e-182) {
		tmp = a * b;
	} else if ((x * y) <= -3.3e-184) {
		tmp = z * t;
	} else if ((x * y) <= -2.85e-190) {
		tmp = a * b;
	} else if ((x * y) <= -2.8e-190) {
		tmp = x * y;
	} else if ((x * y) <= -3.3e-199) {
		tmp = z * t;
	} else if ((x * y) <= -1.35e-203) {
		tmp = a * b;
	} else if ((x * y) <= -9.5e-242) {
		tmp = z * t;
	} else if ((x * y) <= -8.6e-255) {
		tmp = a * b;
	} else if ((x * y) <= -1.1e-256) {
		tmp = z * t;
	} else if ((x * y) <= -2.4e-259) {
		tmp = a * b;
	} else if ((x * y) <= -5.8e-264) {
		tmp = z * t;
	} else if ((x * y) <= -5.6e-285) {
		tmp = a * b;
	} else if ((x * y) <= -7e-308) {
		tmp = z * t;
	} else if ((x * y) <= 0.0) {
		tmp = a * b;
	} else if ((x * y) <= 5e-319) {
		tmp = z * t;
	} else if ((x * y) <= 3.7e-255) {
		tmp = a * b;
	} else if ((x * y) <= 7.5e-243) {
		tmp = z * t;
	} else if ((x * y) <= 3.8e-223) {
		tmp = a * b;
	} else if ((x * y) <= 1.65e-207) {
		tmp = z * t;
	} else if ((x * y) <= 7.6e-180) {
		tmp = a * b;
	} else if ((x * y) <= 1.1e-177) {
		tmp = z * t;
	} else if ((x * y) <= 1.4e-176) {
		tmp = a * b;
	} else if ((x * y) <= 4.6e-173) {
		tmp = z * t;
	} else if ((x * y) <= 6.8e-155) {
		tmp = a * b;
	} else if ((x * y) <= 7e-155) {
		tmp = x * y;
	} else if ((x * y) <= 1.7e-114) {
		tmp = z * t;
	} else if ((x * y) <= 1.25e-107) {
		tmp = a * b;
	} else if ((x * y) <= 1.3e-107) {
		tmp = x * y;
	} else if ((x * y) <= 7e-96) {
		tmp = z * t;
	} else if ((x * y) <= 5.4e-83) {
		tmp = a * b;
	} else if ((x * y) <= 1.45e-77) {
		tmp = z * t;
	} else if ((x * y) <= 2.55e-76) {
		tmp = a * b;
	} else if ((x * y) <= 3.7e-75) {
		tmp = z * t;
	} else if ((x * y) <= 4.4e-49) {
		tmp = a * b;
	} else if ((x * y) <= 5.2e-41) {
		tmp = z * t;
	} else if ((x * y) <= 1.45e-38) {
		tmp = x * y;
	} else if ((x * y) <= 7.2e-28) {
		tmp = a * b;
	} else if ((x * y) <= 310.0) {
		tmp = z * t;
	} else if ((x * y) <= 155000000.0) {
		tmp = a * b;
	} else if ((x * y) <= 8.6e+14) {
		tmp = z * t;
	} else if ((x * y) <= 5e+18) {
		tmp = a * b;
	} else if ((x * y) <= 2.35e+27) {
		tmp = z * t;
	} else if ((x * y) <= 3.9e+31) {
		tmp = x * y;
	} else if ((x * y) <= 6.5e+40) {
		tmp = z * t;
	} else if ((x * y) <= 1.55e+43) {
		tmp = x * y;
	} else if ((x * y) <= 2.45e+44) {
		tmp = z * t;
	} else if ((x * y) <= 1.75e+45) {
		tmp = a * b;
	} else if ((x * y) <= 4.5e+63) {
		tmp = x * y;
	} else if ((x * y) <= 2.7e+72) {
		tmp = a * b;
	} else if ((x * y) <= 6.6e+81) {
		tmp = z * t;
	} else if ((x * y) <= 7.1e+84) {
		tmp = a * b;
	} else if ((x * y) <= 2.35e+88) {
		tmp = z * t;
	} else if ((x * y) <= 1.95e+98) {
		tmp = x * y;
	} else if ((x * y) <= 5.1e+104) {
		tmp = z * t;
	} else if ((x * y) <= 1.2e+106) {
		tmp = a * b;
	} else if ((x * y) <= 1.35e+112) {
		tmp = x * y;
	} else if ((x * y) <= 5.3e+137) {
		tmp = a * b;
	} else if ((x * y) <= 1.3e+138) {
		tmp = z * t;
	} else if ((x * y) <= 4.4e+162) {
		tmp = x * y;
	} else if ((x * y) <= 3.1e+164) {
		tmp = a * b;
	} else if ((x * y) <= 4.7e+176) {
		tmp = x * y;
	} else if ((x * y) <= 4.8e+176) {
		tmp = z * t;
	} else if ((x * y) <= 7.2e+187) {
		tmp = x * y;
	} else if ((x * y) <= 1.5e+188) {
		tmp = z * t;
	} else if ((x * y) <= 1.5e+208) {
		tmp = x * y;
	} else if ((x * y) <= 1.6e+208) {
		tmp = a * b;
	} else if (((x * y) <= 1.5e+229) || !((x * y) <= 1.55e+229)) {
		tmp = x * y;
	} else {
		tmp = z * t;
	}
	return tmp;
}
def code(x, y, z, t, a, b):
	tmp = 0
	if (x * y) <= -1.85e+108:
		tmp = x * y
	elif (x * y) <= -1.5e-51:
		tmp = z * t
	elif (x * y) <= -1.45e-51:
		tmp = x * y
	elif (x * y) <= -1.45e-57:
		tmp = a * b
	elif (x * y) <= -5.2e-58:
		tmp = z * t
	elif (x * y) <= -9e-87:
		tmp = a * b
	elif (x * y) <= -9.2e-104:
		tmp = z * t
	elif (x * y) <= -3.7e-112:
		tmp = a * b
	elif (x * y) <= -7.5e-120:
		tmp = z * t
	elif (x * y) <= -2.7e-121:
		tmp = a * b
	elif (x * y) <= -3.7e-129:
		tmp = z * t
	elif (x * y) <= -2.65e-133:
		tmp = a * b
	elif (x * y) <= -2.8e-145:
		tmp = z * t
	elif (x * y) <= -7.5e-169:
		tmp = a * b
	elif (x * y) <= -1.05e-174:
		tmp = z * t
	elif (x * y) <= -1e-174:
		tmp = x * y
	elif (x * y) <= -5.8e-182:
		tmp = a * b
	elif (x * y) <= -3.3e-184:
		tmp = z * t
	elif (x * y) <= -2.85e-190:
		tmp = a * b
	elif (x * y) <= -2.8e-190:
		tmp = x * y
	elif (x * y) <= -3.3e-199:
		tmp = z * t
	elif (x * y) <= -1.35e-203:
		tmp = a * b
	elif (x * y) <= -9.5e-242:
		tmp = z * t
	elif (x * y) <= -8.6e-255:
		tmp = a * b
	elif (x * y) <= -1.1e-256:
		tmp = z * t
	elif (x * y) <= -2.4e-259:
		tmp = a * b
	elif (x * y) <= -5.8e-264:
		tmp = z * t
	elif (x * y) <= -5.6e-285:
		tmp = a * b
	elif (x * y) <= -7e-308:
		tmp = z * t
	elif (x * y) <= 0.0:
		tmp = a * b
	elif (x * y) <= 5e-319:
		tmp = z * t
	elif (x * y) <= 3.7e-255:
		tmp = a * b
	elif (x * y) <= 7.5e-243:
		tmp = z * t
	elif (x * y) <= 3.8e-223:
		tmp = a * b
	elif (x * y) <= 1.65e-207:
		tmp = z * t
	elif (x * y) <= 7.6e-180:
		tmp = a * b
	elif (x * y) <= 1.1e-177:
		tmp = z * t
	elif (x * y) <= 1.4e-176:
		tmp = a * b
	elif (x * y) <= 4.6e-173:
		tmp = z * t
	elif (x * y) <= 6.8e-155:
		tmp = a * b
	elif (x * y) <= 7e-155:
		tmp = x * y
	elif (x * y) <= 1.7e-114:
		tmp = z * t
	elif (x * y) <= 1.25e-107:
		tmp = a * b
	elif (x * y) <= 1.3e-107:
		tmp = x * y
	elif (x * y) <= 7e-96:
		tmp = z * t
	elif (x * y) <= 5.4e-83:
		tmp = a * b
	elif (x * y) <= 1.45e-77:
		tmp = z * t
	elif (x * y) <= 2.55e-76:
		tmp = a * b
	elif (x * y) <= 3.7e-75:
		tmp = z * t
	elif (x * y) <= 4.4e-49:
		tmp = a * b
	elif (x * y) <= 5.2e-41:
		tmp = z * t
	elif (x * y) <= 1.45e-38:
		tmp = x * y
	elif (x * y) <= 7.2e-28:
		tmp = a * b
	elif (x * y) <= 310.0:
		tmp = z * t
	elif (x * y) <= 155000000.0:
		tmp = a * b
	elif (x * y) <= 8.6e+14:
		tmp = z * t
	elif (x * y) <= 5e+18:
		tmp = a * b
	elif (x * y) <= 2.35e+27:
		tmp = z * t
	elif (x * y) <= 3.9e+31:
		tmp = x * y
	elif (x * y) <= 6.5e+40:
		tmp = z * t
	elif (x * y) <= 1.55e+43:
		tmp = x * y
	elif (x * y) <= 2.45e+44:
		tmp = z * t
	elif (x * y) <= 1.75e+45:
		tmp = a * b
	elif (x * y) <= 4.5e+63:
		tmp = x * y
	elif (x * y) <= 2.7e+72:
		tmp = a * b
	elif (x * y) <= 6.6e+81:
		tmp = z * t
	elif (x * y) <= 7.1e+84:
		tmp = a * b
	elif (x * y) <= 2.35e+88:
		tmp = z * t
	elif (x * y) <= 1.95e+98:
		tmp = x * y
	elif (x * y) <= 5.1e+104:
		tmp = z * t
	elif (x * y) <= 1.2e+106:
		tmp = a * b
	elif (x * y) <= 1.35e+112:
		tmp = x * y
	elif (x * y) <= 5.3e+137:
		tmp = a * b
	elif (x * y) <= 1.3e+138:
		tmp = z * t
	elif (x * y) <= 4.4e+162:
		tmp = x * y
	elif (x * y) <= 3.1e+164:
		tmp = a * b
	elif (x * y) <= 4.7e+176:
		tmp = x * y
	elif (x * y) <= 4.8e+176:
		tmp = z * t
	elif (x * y) <= 7.2e+187:
		tmp = x * y
	elif (x * y) <= 1.5e+188:
		tmp = z * t
	elif (x * y) <= 1.5e+208:
		tmp = x * y
	elif (x * y) <= 1.6e+208:
		tmp = a * b
	elif ((x * y) <= 1.5e+229) or not ((x * y) <= 1.55e+229):
		tmp = x * y
	else:
		tmp = z * t
	return tmp
function code(x, y, z, t, a, b)
	tmp = 0.0
	if (Float64(x * y) <= -1.85e+108)
		tmp = Float64(x * y);
	elseif (Float64(x * y) <= -1.5e-51)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= -1.45e-51)
		tmp = Float64(x * y);
	elseif (Float64(x * y) <= -1.45e-57)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= -5.2e-58)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= -9e-87)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= -9.2e-104)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= -3.7e-112)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= -7.5e-120)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= -2.7e-121)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= -3.7e-129)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= -2.65e-133)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= -2.8e-145)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= -7.5e-169)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= -1.05e-174)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= -1e-174)
		tmp = Float64(x * y);
	elseif (Float64(x * y) <= -5.8e-182)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= -3.3e-184)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= -2.85e-190)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= -2.8e-190)
		tmp = Float64(x * y);
	elseif (Float64(x * y) <= -3.3e-199)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= -1.35e-203)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= -9.5e-242)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= -8.6e-255)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= -1.1e-256)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= -2.4e-259)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= -5.8e-264)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= -5.6e-285)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= -7e-308)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= 0.0)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= 5e-319)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= 3.7e-255)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= 7.5e-243)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= 3.8e-223)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= 1.65e-207)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= 7.6e-180)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= 1.1e-177)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= 1.4e-176)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= 4.6e-173)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= 6.8e-155)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= 7e-155)
		tmp = Float64(x * y);
	elseif (Float64(x * y) <= 1.7e-114)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= 1.25e-107)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= 1.3e-107)
		tmp = Float64(x * y);
	elseif (Float64(x * y) <= 7e-96)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= 5.4e-83)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= 1.45e-77)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= 2.55e-76)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= 3.7e-75)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= 4.4e-49)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= 5.2e-41)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= 1.45e-38)
		tmp = Float64(x * y);
	elseif (Float64(x * y) <= 7.2e-28)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= 310.0)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= 155000000.0)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= 8.6e+14)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= 5e+18)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= 2.35e+27)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= 3.9e+31)
		tmp = Float64(x * y);
	elseif (Float64(x * y) <= 6.5e+40)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= 1.55e+43)
		tmp = Float64(x * y);
	elseif (Float64(x * y) <= 2.45e+44)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= 1.75e+45)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= 4.5e+63)
		tmp = Float64(x * y);
	elseif (Float64(x * y) <= 2.7e+72)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= 6.6e+81)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= 7.1e+84)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= 2.35e+88)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= 1.95e+98)
		tmp = Float64(x * y);
	elseif (Float64(x * y) <= 5.1e+104)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= 1.2e+106)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= 1.35e+112)
		tmp = Float64(x * y);
	elseif (Float64(x * y) <= 5.3e+137)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= 1.3e+138)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= 4.4e+162)
		tmp = Float64(x * y);
	elseif (Float64(x * y) <= 3.1e+164)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= 4.7e+176)
		tmp = Float64(x * y);
	elseif (Float64(x * y) <= 4.8e+176)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= 7.2e+187)
		tmp = Float64(x * y);
	elseif (Float64(x * y) <= 1.5e+188)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= 1.5e+208)
		tmp = Float64(x * y);
	elseif (Float64(x * y) <= 1.6e+208)
		tmp = Float64(a * b);
	elseif ((Float64(x * y) <= 1.5e+229) || !(Float64(x * y) <= 1.55e+229))
		tmp = Float64(x * y);
	else
		tmp = Float64(z * t);
	end
	return tmp
end
function tmp_2 = code(x, y, z, t, a, b)
	tmp = 0.0;
	if ((x * y) <= -1.85e+108)
		tmp = x * y;
	elseif ((x * y) <= -1.5e-51)
		tmp = z * t;
	elseif ((x * y) <= -1.45e-51)
		tmp = x * y;
	elseif ((x * y) <= -1.45e-57)
		tmp = a * b;
	elseif ((x * y) <= -5.2e-58)
		tmp = z * t;
	elseif ((x * y) <= -9e-87)
		tmp = a * b;
	elseif ((x * y) <= -9.2e-104)
		tmp = z * t;
	elseif ((x * y) <= -3.7e-112)
		tmp = a * b;
	elseif ((x * y) <= -7.5e-120)
		tmp = z * t;
	elseif ((x * y) <= -2.7e-121)
		tmp = a * b;
	elseif ((x * y) <= -3.7e-129)
		tmp = z * t;
	elseif ((x * y) <= -2.65e-133)
		tmp = a * b;
	elseif ((x * y) <= -2.8e-145)
		tmp = z * t;
	elseif ((x * y) <= -7.5e-169)
		tmp = a * b;
	elseif ((x * y) <= -1.05e-174)
		tmp = z * t;
	elseif ((x * y) <= -1e-174)
		tmp = x * y;
	elseif ((x * y) <= -5.8e-182)
		tmp = a * b;
	elseif ((x * y) <= -3.3e-184)
		tmp = z * t;
	elseif ((x * y) <= -2.85e-190)
		tmp = a * b;
	elseif ((x * y) <= -2.8e-190)
		tmp = x * y;
	elseif ((x * y) <= -3.3e-199)
		tmp = z * t;
	elseif ((x * y) <= -1.35e-203)
		tmp = a * b;
	elseif ((x * y) <= -9.5e-242)
		tmp = z * t;
	elseif ((x * y) <= -8.6e-255)
		tmp = a * b;
	elseif ((x * y) <= -1.1e-256)
		tmp = z * t;
	elseif ((x * y) <= -2.4e-259)
		tmp = a * b;
	elseif ((x * y) <= -5.8e-264)
		tmp = z * t;
	elseif ((x * y) <= -5.6e-285)
		tmp = a * b;
	elseif ((x * y) <= -7e-308)
		tmp = z * t;
	elseif ((x * y) <= 0.0)
		tmp = a * b;
	elseif ((x * y) <= 5e-319)
		tmp = z * t;
	elseif ((x * y) <= 3.7e-255)
		tmp = a * b;
	elseif ((x * y) <= 7.5e-243)
		tmp = z * t;
	elseif ((x * y) <= 3.8e-223)
		tmp = a * b;
	elseif ((x * y) <= 1.65e-207)
		tmp = z * t;
	elseif ((x * y) <= 7.6e-180)
		tmp = a * b;
	elseif ((x * y) <= 1.1e-177)
		tmp = z * t;
	elseif ((x * y) <= 1.4e-176)
		tmp = a * b;
	elseif ((x * y) <= 4.6e-173)
		tmp = z * t;
	elseif ((x * y) <= 6.8e-155)
		tmp = a * b;
	elseif ((x * y) <= 7e-155)
		tmp = x * y;
	elseif ((x * y) <= 1.7e-114)
		tmp = z * t;
	elseif ((x * y) <= 1.25e-107)
		tmp = a * b;
	elseif ((x * y) <= 1.3e-107)
		tmp = x * y;
	elseif ((x * y) <= 7e-96)
		tmp = z * t;
	elseif ((x * y) <= 5.4e-83)
		tmp = a * b;
	elseif ((x * y) <= 1.45e-77)
		tmp = z * t;
	elseif ((x * y) <= 2.55e-76)
		tmp = a * b;
	elseif ((x * y) <= 3.7e-75)
		tmp = z * t;
	elseif ((x * y) <= 4.4e-49)
		tmp = a * b;
	elseif ((x * y) <= 5.2e-41)
		tmp = z * t;
	elseif ((x * y) <= 1.45e-38)
		tmp = x * y;
	elseif ((x * y) <= 7.2e-28)
		tmp = a * b;
	elseif ((x * y) <= 310.0)
		tmp = z * t;
	elseif ((x * y) <= 155000000.0)
		tmp = a * b;
	elseif ((x * y) <= 8.6e+14)
		tmp = z * t;
	elseif ((x * y) <= 5e+18)
		tmp = a * b;
	elseif ((x * y) <= 2.35e+27)
		tmp = z * t;
	elseif ((x * y) <= 3.9e+31)
		tmp = x * y;
	elseif ((x * y) <= 6.5e+40)
		tmp = z * t;
	elseif ((x * y) <= 1.55e+43)
		tmp = x * y;
	elseif ((x * y) <= 2.45e+44)
		tmp = z * t;
	elseif ((x * y) <= 1.75e+45)
		tmp = a * b;
	elseif ((x * y) <= 4.5e+63)
		tmp = x * y;
	elseif ((x * y) <= 2.7e+72)
		tmp = a * b;
	elseif ((x * y) <= 6.6e+81)
		tmp = z * t;
	elseif ((x * y) <= 7.1e+84)
		tmp = a * b;
	elseif ((x * y) <= 2.35e+88)
		tmp = z * t;
	elseif ((x * y) <= 1.95e+98)
		tmp = x * y;
	elseif ((x * y) <= 5.1e+104)
		tmp = z * t;
	elseif ((x * y) <= 1.2e+106)
		tmp = a * b;
	elseif ((x * y) <= 1.35e+112)
		tmp = x * y;
	elseif ((x * y) <= 5.3e+137)
		tmp = a * b;
	elseif ((x * y) <= 1.3e+138)
		tmp = z * t;
	elseif ((x * y) <= 4.4e+162)
		tmp = x * y;
	elseif ((x * y) <= 3.1e+164)
		tmp = a * b;
	elseif ((x * y) <= 4.7e+176)
		tmp = x * y;
	elseif ((x * y) <= 4.8e+176)
		tmp = z * t;
	elseif ((x * y) <= 7.2e+187)
		tmp = x * y;
	elseif ((x * y) <= 1.5e+188)
		tmp = z * t;
	elseif ((x * y) <= 1.5e+208)
		tmp = x * y;
	elseif ((x * y) <= 1.6e+208)
		tmp = a * b;
	elseif (((x * y) <= 1.5e+229) || ~(((x * y) <= 1.55e+229)))
		tmp = x * y;
	else
		tmp = z * t;
	end
	tmp_2 = tmp;
end
code[x_, y_, z_, t_, a_, b_] := If[LessEqual[N[(x * y), $MachinePrecision], -1.85e+108], N[(x * y), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -1.5e-51], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -1.45e-51], N[(x * y), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -1.45e-57], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -5.2e-58], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -9e-87], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -9.2e-104], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -3.7e-112], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -7.5e-120], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -2.7e-121], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -3.7e-129], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -2.65e-133], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -2.8e-145], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -7.5e-169], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -1.05e-174], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -1e-174], N[(x * y), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -5.8e-182], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -3.3e-184], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -2.85e-190], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -2.8e-190], N[(x * y), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -3.3e-199], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -1.35e-203], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -9.5e-242], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -8.6e-255], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -1.1e-256], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -2.4e-259], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -5.8e-264], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -5.6e-285], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -7e-308], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 0.0], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 5e-319], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 3.7e-255], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 7.5e-243], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 3.8e-223], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 1.65e-207], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 7.6e-180], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 1.1e-177], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 1.4e-176], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 4.6e-173], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 6.8e-155], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 7e-155], N[(x * y), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 1.7e-114], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 1.25e-107], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 1.3e-107], N[(x * y), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 7e-96], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 5.4e-83], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 1.45e-77], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 2.55e-76], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 3.7e-75], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 4.4e-49], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 5.2e-41], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 1.45e-38], N[(x * y), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 7.2e-28], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 310.0], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 155000000.0], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 8.6e+14], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 5e+18], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 2.35e+27], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 3.9e+31], N[(x * y), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 6.5e+40], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 1.55e+43], N[(x * y), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 2.45e+44], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 1.75e+45], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 4.5e+63], N[(x * y), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 2.7e+72], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 6.6e+81], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 7.1e+84], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 2.35e+88], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 1.95e+98], N[(x * y), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 5.1e+104], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 1.2e+106], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 1.35e+112], N[(x * y), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 5.3e+137], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 1.3e+138], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 4.4e+162], N[(x * y), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 3.1e+164], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 4.7e+176], N[(x * y), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 4.8e+176], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 7.2e+187], N[(x * y), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 1.5e+188], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 1.5e+208], N[(x * y), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 1.6e+208], N[(a * b), $MachinePrecision], If[Or[LessEqual[N[(x * y), $MachinePrecision], 1.5e+229], N[Not[LessEqual[N[(x * y), $MachinePrecision], 1.55e+229]], $MachinePrecision]], N[(x * y), $MachinePrecision], N[(z * t), $MachinePrecision]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;x \cdot y \leq -1.85 \cdot 10^{+108}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;x \cdot y \leq -1.5 \cdot 10^{-51}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq -1.45 \cdot 10^{-51}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;x \cdot y \leq -1.45 \cdot 10^{-57}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq -5.2 \cdot 10^{-58}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq -9 \cdot 10^{-87}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq -9.2 \cdot 10^{-104}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq -3.7 \cdot 10^{-112}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq -7.5 \cdot 10^{-120}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq -2.7 \cdot 10^{-121}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq -3.7 \cdot 10^{-129}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq -2.65 \cdot 10^{-133}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq -2.8 \cdot 10^{-145}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq -7.5 \cdot 10^{-169}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq -1.05 \cdot 10^{-174}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-174}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;x \cdot y \leq -5.8 \cdot 10^{-182}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq -3.3 \cdot 10^{-184}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq -2.85 \cdot 10^{-190}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq -2.8 \cdot 10^{-190}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;x \cdot y \leq -3.3 \cdot 10^{-199}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq -1.35 \cdot 10^{-203}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq -9.5 \cdot 10^{-242}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq -8.6 \cdot 10^{-255}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq -1.1 \cdot 10^{-256}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq -2.4 \cdot 10^{-259}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq -5.8 \cdot 10^{-264}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq -5.6 \cdot 10^{-285}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq -7 \cdot 10^{-308}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq 0:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-319}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq 3.7 \cdot 10^{-255}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq 7.5 \cdot 10^{-243}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq 3.8 \cdot 10^{-223}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq 1.65 \cdot 10^{-207}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq 7.6 \cdot 10^{-180}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq 1.1 \cdot 10^{-177}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq 1.4 \cdot 10^{-176}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq 4.6 \cdot 10^{-173}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq 6.8 \cdot 10^{-155}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq 7 \cdot 10^{-155}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;x \cdot y \leq 1.7 \cdot 10^{-114}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq 1.25 \cdot 10^{-107}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq 1.3 \cdot 10^{-107}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;x \cdot y \leq 7 \cdot 10^{-96}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq 5.4 \cdot 10^{-83}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq 1.45 \cdot 10^{-77}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq 2.55 \cdot 10^{-76}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq 3.7 \cdot 10^{-75}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq 4.4 \cdot 10^{-49}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq 5.2 \cdot 10^{-41}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq 1.45 \cdot 10^{-38}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;x \cdot y \leq 7.2 \cdot 10^{-28}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq 310:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq 155000000:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq 8.6 \cdot 10^{+14}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+18}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq 2.35 \cdot 10^{+27}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq 3.9 \cdot 10^{+31}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;x \cdot y \leq 6.5 \cdot 10^{+40}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq 1.55 \cdot 10^{+43}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;x \cdot y \leq 2.45 \cdot 10^{+44}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq 1.75 \cdot 10^{+45}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq 4.5 \cdot 10^{+63}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;x \cdot y \leq 2.7 \cdot 10^{+72}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq 6.6 \cdot 10^{+81}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq 7.1 \cdot 10^{+84}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq 2.35 \cdot 10^{+88}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq 1.95 \cdot 10^{+98}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;x \cdot y \leq 5.1 \cdot 10^{+104}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq 1.2 \cdot 10^{+106}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq 1.35 \cdot 10^{+112}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;x \cdot y \leq 5.3 \cdot 10^{+137}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq 1.3 \cdot 10^{+138}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq 4.4 \cdot 10^{+162}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;x \cdot y \leq 3.1 \cdot 10^{+164}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq 4.7 \cdot 10^{+176}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;x \cdot y \leq 4.8 \cdot 10^{+176}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq 7.2 \cdot 10^{+187}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;x \cdot y \leq 1.5 \cdot 10^{+188}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq 1.5 \cdot 10^{+208}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;x \cdot y \leq 1.6 \cdot 10^{+208}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq 1.5 \cdot 10^{+229} \lor \neg \left(x \cdot y \leq 1.55 \cdot 10^{+229}\right):\\
\;\;\;\;x \cdot y\\

\mathbf{else}:\\
\;\;\;\;z \cdot t\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if (*.f64 x y) < -1.8499999999999999e108 or -1.50000000000000001e-51 < (*.f64 x y) < -1.44999999999999986e-51 or -1.05000000000000005e-174 < (*.f64 x y) < -1e-174 or -2.84999999999999987e-190 < (*.f64 x y) < -2.80000000000000005e-190 or 6.8e-155 < (*.f64 x y) < 7.00000000000000031e-155 or 1.24999999999999993e-107 < (*.f64 x y) < 1.3e-107 or 5.1999999999999999e-41 < (*.f64 x y) < 1.44999999999999997e-38 or 2.34999999999999988e27 < (*.f64 x y) < 3.89999999999999999e31 or 6.5000000000000001e40 < (*.f64 x y) < 1.5500000000000001e43 or 1.75000000000000011e45 < (*.f64 x y) < 4.50000000000000017e63 or 2.35000000000000004e88 < (*.f64 x y) < 1.95e98 or 1.2e106 < (*.f64 x y) < 1.3500000000000001e112 or 1.3e138 < (*.f64 x y) < 4.4000000000000004e162 or 3.1000000000000002e164 < (*.f64 x y) < 4.69999999999999981e176 or 4.8000000000000003e176 < (*.f64 x y) < 7.20000000000000072e187 or 1.5e188 < (*.f64 x y) < 1.49999999999999997e208 or 1.6000000000000001e208 < (*.f64 x y) < 1.49999999999999999e229 or 1.55000000000000007e229 < (*.f64 x y)

    1. Initial program 92.5%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in x around inf 80.6%

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

    if -1.8499999999999999e108 < (*.f64 x y) < -1.50000000000000001e-51 or -1.45000000000000013e-57 < (*.f64 x y) < -5.20000000000000013e-58 or -8.99999999999999915e-87 < (*.f64 x y) < -9.1999999999999998e-104 or -3.6999999999999998e-112 < (*.f64 x y) < -7.5000000000000004e-120 or -2.7000000000000002e-121 < (*.f64 x y) < -3.7000000000000002e-129 or -2.64999999999999992e-133 < (*.f64 x y) < -2.8000000000000001e-145 or -7.49999999999999978e-169 < (*.f64 x y) < -1.05000000000000005e-174 or -5.79999999999999974e-182 < (*.f64 x y) < -3.2999999999999997e-184 or -2.80000000000000005e-190 < (*.f64 x y) < -3.3000000000000002e-199 or -1.34999999999999999e-203 < (*.f64 x y) < -9.4999999999999997e-242 or -8.59999999999999978e-255 < (*.f64 x y) < -1.10000000000000005e-256 or -2.4000000000000001e-259 < (*.f64 x y) < -5.7999999999999997e-264 or -5.59999999999999982e-285 < (*.f64 x y) < -7e-308 or 0.0 < (*.f64 x y) < 4.9999937e-319 or 3.7000000000000002e-255 < (*.f64 x y) < 7.5e-243 or 3.80000000000000012e-223 < (*.f64 x y) < 1.6499999999999999e-207 or 7.59999999999999999e-180 < (*.f64 x y) < 1.10000000000000006e-177 or 1.4000000000000001e-176 < (*.f64 x y) < 4.59999999999999976e-173 or 7.00000000000000031e-155 < (*.f64 x y) < 1.69999999999999991e-114 or 1.3e-107 < (*.f64 x y) < 6.9999999999999998e-96 or 5.39999999999999982e-83 < (*.f64 x y) < 1.4499999999999999e-77 or 2.54999999999999993e-76 < (*.f64 x y) < 3.70000000000000024e-75 or 4.3999999999999998e-49 < (*.f64 x y) < 5.1999999999999999e-41 or 7.1999999999999997e-28 < (*.f64 x y) < 310 or 1.55e8 < (*.f64 x y) < 8.6e14 or 5e18 < (*.f64 x y) < 2.34999999999999988e27 or 3.89999999999999999e31 < (*.f64 x y) < 6.5000000000000001e40 or 1.5500000000000001e43 < (*.f64 x y) < 2.45000000000000018e44 or 2.7000000000000001e72 < (*.f64 x y) < 6.6e81 or 7.0999999999999998e84 < (*.f64 x y) < 2.35000000000000004e88 or 1.95e98 < (*.f64 x y) < 5.1000000000000002e104 or 5.29999999999999968e137 < (*.f64 x y) < 1.3e138 or 4.69999999999999981e176 < (*.f64 x y) < 4.8000000000000003e176 or 7.20000000000000072e187 < (*.f64 x y) < 1.5e188 or 1.49999999999999999e229 < (*.f64 x y) < 1.55000000000000007e229

    1. Initial program 97.5%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in z around inf 79.6%

      \[\leadsto \color{blue}{t \cdot z} \]

    if -1.44999999999999986e-51 < (*.f64 x y) < -1.45000000000000013e-57 or -5.20000000000000013e-58 < (*.f64 x y) < -8.99999999999999915e-87 or -9.1999999999999998e-104 < (*.f64 x y) < -3.6999999999999998e-112 or -7.5000000000000004e-120 < (*.f64 x y) < -2.7000000000000002e-121 or -3.7000000000000002e-129 < (*.f64 x y) < -2.64999999999999992e-133 or -2.8000000000000001e-145 < (*.f64 x y) < -7.49999999999999978e-169 or -1e-174 < (*.f64 x y) < -5.79999999999999974e-182 or -3.2999999999999997e-184 < (*.f64 x y) < -2.84999999999999987e-190 or -3.3000000000000002e-199 < (*.f64 x y) < -1.34999999999999999e-203 or -9.4999999999999997e-242 < (*.f64 x y) < -8.59999999999999978e-255 or -1.10000000000000005e-256 < (*.f64 x y) < -2.4000000000000001e-259 or -5.7999999999999997e-264 < (*.f64 x y) < -5.59999999999999982e-285 or -7e-308 < (*.f64 x y) < 0.0 or 4.9999937e-319 < (*.f64 x y) < 3.7000000000000002e-255 or 7.5e-243 < (*.f64 x y) < 3.80000000000000012e-223 or 1.6499999999999999e-207 < (*.f64 x y) < 7.59999999999999999e-180 or 1.10000000000000006e-177 < (*.f64 x y) < 1.4000000000000001e-176 or 4.59999999999999976e-173 < (*.f64 x y) < 6.8e-155 or 1.69999999999999991e-114 < (*.f64 x y) < 1.24999999999999993e-107 or 6.9999999999999998e-96 < (*.f64 x y) < 5.39999999999999982e-83 or 1.4499999999999999e-77 < (*.f64 x y) < 2.54999999999999993e-76 or 3.70000000000000024e-75 < (*.f64 x y) < 4.3999999999999998e-49 or 1.44999999999999997e-38 < (*.f64 x y) < 7.1999999999999997e-28 or 310 < (*.f64 x y) < 1.55e8 or 8.6e14 < (*.f64 x y) < 5e18 or 2.45000000000000018e44 < (*.f64 x y) < 1.75000000000000011e45 or 4.50000000000000017e63 < (*.f64 x y) < 2.7000000000000001e72 or 6.6e81 < (*.f64 x y) < 7.0999999999999998e84 or 5.1000000000000002e104 < (*.f64 x y) < 1.2e106 or 1.3500000000000001e112 < (*.f64 x y) < 5.29999999999999968e137 or 4.4000000000000004e162 < (*.f64 x y) < 3.1000000000000002e164 or 1.49999999999999997e208 < (*.f64 x y) < 1.6000000000000001e208

    1. Initial program 100.0%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in a around inf 85.6%

      \[\leadsto \color{blue}{a \cdot b} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification81.9%

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \cdot y \leq -1.85 \cdot 10^{+108}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq -1.5 \cdot 10^{-51}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -1.45 \cdot 10^{-51}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq -1.45 \cdot 10^{-57}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -5.2 \cdot 10^{-58}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -9 \cdot 10^{-87}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -9.2 \cdot 10^{-104}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -3.7 \cdot 10^{-112}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -7.5 \cdot 10^{-120}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -2.7 \cdot 10^{-121}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -3.7 \cdot 10^{-129}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -2.65 \cdot 10^{-133}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -2.8 \cdot 10^{-145}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -7.5 \cdot 10^{-169}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -1.05 \cdot 10^{-174}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-174}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq -5.8 \cdot 10^{-182}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -3.3 \cdot 10^{-184}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -2.85 \cdot 10^{-190}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -2.8 \cdot 10^{-190}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq -3.3 \cdot 10^{-199}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -1.35 \cdot 10^{-203}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -9.5 \cdot 10^{-242}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -8.6 \cdot 10^{-255}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -1.1 \cdot 10^{-256}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -2.4 \cdot 10^{-259}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -5.8 \cdot 10^{-264}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -5.6 \cdot 10^{-285}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -7 \cdot 10^{-308}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 0:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-319}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 3.7 \cdot 10^{-255}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 7.5 \cdot 10^{-243}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 3.8 \cdot 10^{-223}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 1.65 \cdot 10^{-207}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 7.6 \cdot 10^{-180}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 1.1 \cdot 10^{-177}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 1.4 \cdot 10^{-176}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 4.6 \cdot 10^{-173}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 6.8 \cdot 10^{-155}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 7 \cdot 10^{-155}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq 1.7 \cdot 10^{-114}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 1.25 \cdot 10^{-107}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 1.3 \cdot 10^{-107}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq 7 \cdot 10^{-96}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 5.4 \cdot 10^{-83}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 1.45 \cdot 10^{-77}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 2.55 \cdot 10^{-76}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 3.7 \cdot 10^{-75}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 4.4 \cdot 10^{-49}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 5.2 \cdot 10^{-41}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 1.45 \cdot 10^{-38}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq 7.2 \cdot 10^{-28}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 310:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 155000000:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 8.6 \cdot 10^{+14}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+18}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 2.35 \cdot 10^{+27}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 3.9 \cdot 10^{+31}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq 6.5 \cdot 10^{+40}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 1.55 \cdot 10^{+43}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq 2.45 \cdot 10^{+44}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 1.75 \cdot 10^{+45}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 4.5 \cdot 10^{+63}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq 2.7 \cdot 10^{+72}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 6.6 \cdot 10^{+81}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 7.1 \cdot 10^{+84}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 2.35 \cdot 10^{+88}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 1.95 \cdot 10^{+98}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq 5.1 \cdot 10^{+104}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 1.2 \cdot 10^{+106}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 1.35 \cdot 10^{+112}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq 5.3 \cdot 10^{+137}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 1.3 \cdot 10^{+138}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 4.4 \cdot 10^{+162}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq 3.1 \cdot 10^{+164}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 4.7 \cdot 10^{+176}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq 4.8 \cdot 10^{+176}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 7.2 \cdot 10^{+187}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq 1.5 \cdot 10^{+188}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 1.5 \cdot 10^{+208}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq 1.6 \cdot 10^{+208}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 1.5 \cdot 10^{+229} \lor \neg \left(x \cdot y \leq 1.55 \cdot 10^{+229}\right):\\ \;\;\;\;x \cdot y\\ \mathbf{else}:\\ \;\;\;\;z \cdot t\\ \end{array} \]
  5. Add Preprocessing

Alternative 3: 49.9% accurate, 0.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;a \cdot b \leq -6.5 \cdot 10^{+203} \lor \neg \left(a \cdot b \leq -4.8 \cdot 10^{+68}\right) \land \left(a \cdot b \leq -3.65 \cdot 10^{+64} \lor \neg \left(a \cdot b \leq -6.2 \cdot 10^{+37}\right) \land \left(a \cdot b \leq -5.5 \cdot 10^{+36} \lor \neg \left(a \cdot b \leq -1.45 \cdot 10^{+14}\right) \land \left(a \cdot b \leq -52000000000000 \lor \neg \left(a \cdot b \leq -40\right) \land \left(a \cdot b \leq -0.155 \lor \neg \left(a \cdot b \leq -8 \cdot 10^{-24}\right) \land \left(a \cdot b \leq -6.8 \cdot 10^{-24} \lor \neg \left(a \cdot b \leq -1.35 \cdot 10^{-39}\right) \land \left(a \cdot b \leq -1.45 \cdot 10^{-53} \lor \neg \left(a \cdot b \leq -5.5 \cdot 10^{-86}\right) \land \left(a \cdot b \leq -5.4 \cdot 10^{-86} \lor \neg \left(a \cdot b \leq -3.2 \cdot 10^{-129}\right) \land \left(a \cdot b \leq -3.1 \cdot 10^{-129} \lor \neg \left(a \cdot b \leq -1.22 \cdot 10^{-144}\right) \land \left(a \cdot b \leq -1.2 \cdot 10^{-144} \lor \neg \left(a \cdot b \leq -2.3 \cdot 10^{-182}\right) \land \left(a \cdot b \leq -2.25 \cdot 10^{-182} \lor \neg \left(a \cdot b \leq -3.85 \cdot 10^{-208}\right) \land \left(a \cdot b \leq -9 \cdot 10^{-214} \lor \neg \left(a \cdot b \leq -1.65 \cdot 10^{-273}\right) \land \left(a \cdot b \leq -1.62 \cdot 10^{-273} \lor \neg \left(a \cdot b \leq -1.95 \cdot 10^{-294}\right) \land \left(a \cdot b \leq -1.9 \cdot 10^{-294} \lor \neg \left(a \cdot b \leq -2.4 \cdot 10^{-298}\right) \land \left(a \cdot b \leq -2.35 \cdot 10^{-298} \lor \neg \left(a \cdot b \leq 3.7 \cdot 10^{-293}\right) \land \left(a \cdot b \leq 3.8 \cdot 10^{-293} \lor \neg \left(a \cdot b \leq 1.85 \cdot 10^{-266}\right) \land \left(a \cdot b \leq 2.3 \cdot 10^{-263} \lor \neg \left(a \cdot b \leq 2.1 \cdot 10^{-254}\right) \land \left(a \cdot b \leq 2.2 \cdot 10^{-254} \lor \neg \left(a \cdot b \leq 4.6 \cdot 10^{-227} \lor \neg \left(a \cdot b \leq 1.2 \cdot 10^{-222}\right) \land \left(a \cdot b \leq 5.3 \cdot 10^{-196} \lor \neg \left(a \cdot b \leq 5.5 \cdot 10^{-196}\right) \land \left(a \cdot b \leq 2.8 \cdot 10^{-172} \lor \neg \left(a \cdot b \leq 3 \cdot 10^{-172}\right) \land \left(a \cdot b \leq 4.3 \cdot 10^{-129} \lor \neg \left(a \cdot b \leq 2 \cdot 10^{-120} \lor a \cdot b \leq 4.2 \cdot 10^{-58}\right) \land \left(a \cdot b \leq 1.46 \cdot 10^{-36} \lor \neg \left(a \cdot b \leq 4.5 \cdot 10^{-36}\right) \land \left(a \cdot b \leq 3.1 \cdot 10^{-23} \lor \neg \left(a \cdot b \leq 7.5 \cdot 10^{-21}\right) \land \left(a \cdot b \leq 4.5 \cdot 10^{-13} \lor \neg \left(a \cdot b \leq 46000\right) \land \left(a \cdot b \leq 1.05 \cdot 10^{+28} \lor \neg \left(a \cdot b \leq 3.15 \cdot 10^{+28}\right) \land \left(a \cdot b \leq 3 \cdot 10^{+31} \lor \neg \left(a \cdot b \leq 9.6 \cdot 10^{+34}\right) \land \left(a \cdot b \leq 3.7 \cdot 10^{+60} \lor \neg \left(a \cdot b \leq 1.95 \cdot 10^{+70}\right) \land \left(a \cdot b \leq 2.9 \cdot 10^{+71} \lor \neg \left(a \cdot b \leq 3.4 \cdot 10^{+77}\right) \land \left(a \cdot b \leq 3.5 \cdot 10^{+78} \lor \neg \left(a \cdot b \leq 9.6 \cdot 10^{+96}\right) \land \left(a \cdot b \leq 6.4 \cdot 10^{+115} \lor \neg \left(a \cdot b \leq 1.3 \cdot 10^{+118}\right) \land \left(a \cdot b \leq 4.7 \cdot 10^{+121} \lor \neg \left(a \cdot b \leq 9.5 \cdot 10^{+133}\right) \land \left(a \cdot b \leq 10^{+134} \lor \neg \left(a \cdot b \leq 1.8 \cdot 10^{+142}\right) \land \left(a \cdot b \leq 4.5 \cdot 10^{+146} \lor \neg \left(a \cdot b \leq 5.2 \cdot 10^{+151}\right) \land \left(a \cdot b \leq 1.35 \cdot 10^{+158} \lor \neg \left(a \cdot b \leq 2.4 \cdot 10^{+201}\right) \land \left(a \cdot b \leq 2.42 \cdot 10^{+201} \lor \neg \left(a \cdot b \leq 1.65 \cdot 10^{+223}\right) \land a \cdot b \leq 4.1 \cdot 10^{+223}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right):\\ \;\;\;\;a \cdot b\\ \mathbf{else}:\\ \;\;\;\;z \cdot t\\ \end{array} \end{array} \]
(FPCore (x y z t a b)
 :precision binary64
 (if (or (<= (* a b) -6.5e+203)
         (and (not (<= (* a b) -4.8e+68))
              (or (<= (* a b) -3.65e+64)
                  (and (not (<= (* a b) -6.2e+37))
                       (or (<= (* a b) -5.5e+36)
                           (and (not (<= (* a b) -1.45e+14))
                                (or (<= (* a b) -52000000000000.0)
                                    (and (not (<= (* a b) -40.0))
                                         (or (<= (* a b) -0.155)
                                             (and (not (<= (* a b) -8e-24))
                                                  (or (<= (* a b) -6.8e-24)
                                                      (and (not
                                                            (<=
                                                             (* a b)
                                                             -1.35e-39))
                                                           (or (<=
                                                                (* a b)
                                                                -1.45e-53)
                                                               (and (not
                                                                     (<=
                                                                      (* a b)
                                                                      -5.5e-86))
                                                                    (or (<=
                                                                         (*
                                                                          a
                                                                          b)
                                                                         -5.4e-86)
                                                                        (and (not
                                                                              (<=
                                                                               (*
                                                                                a
                                                                                b)
                                                                               -3.2e-129))
                                                                             (or (<=
                                                                                  (*
                                                                                   a
                                                                                   b)
                                                                                  -3.1e-129)
                                                                                 (and (not
                                                                                       (<=
                                                                                        (*
                                                                                         a
                                                                                         b)
                                                                                        -1.22e-144))
                                                                                      (or (<=
                                                                                           (*
                                                                                            a
                                                                                            b)
                                                                                           -1.2e-144)
                                                                                          (and (not
                                                                                                (<=
                                                                                                 (*
                                                                                                  a
                                                                                                  b)
                                                                                                 -2.3e-182))
                                                                                               (or (<=
                                                                                                    (*
                                                                                                     a
                                                                                                     b)
                                                                                                    -2.25e-182)
                                                                                                   (and (not
                                                                                                         (<=
                                                                                                          (*
                                                                                                           a
                                                                                                           b)
                                                                                                          -3.85e-208))
                                                                                                        (or (<=
                                                                                                             (*
                                                                                                              a
                                                                                                              b)
                                                                                                             -9e-214)
                                                                                                            (and (not
                                                                                                                  (<=
                                                                                                                   (*
                                                                                                                    a
                                                                                                                    b)
                                                                                                                   -1.65e-273))
                                                                                                                 (or (<=
                                                                                                                      (*
                                                                                                                       a
                                                                                                                       b)
                                                                                                                      -1.62e-273)
                                                                                                                     (and (not
                                                                                                                           (<=
                                                                                                                            (*
                                                                                                                             a
                                                                                                                             b)
                                                                                                                            -1.95e-294))
                                                                                                                          (or (<=
                                                                                                                               (*
                                                                                                                                a
                                                                                                                                b)
                                                                                                                               -1.9e-294)
                                                                                                                              (and (not
                                                                                                                                    (<=
                                                                                                                                     (*
                                                                                                                                      a
                                                                                                                                      b)
                                                                                                                                     -2.4e-298))
                                                                                                                                   (or (<=
                                                                                                                                        (*
                                                                                                                                         a
                                                                                                                                         b)
                                                                                                                                        -2.35e-298)
                                                                                                                                       (and (not
                                                                                                                                             (<=
                                                                                                                                              (*
                                                                                                                                               a
                                                                                                                                               b)
                                                                                                                                              3.7e-293))
                                                                                                                                            (or (<=
                                                                                                                                                 (*
                                                                                                                                                  a
                                                                                                                                                  b)
                                                                                                                                                 3.8e-293)
                                                                                                                                                (and (not
                                                                                                                                                      (<=
                                                                                                                                                       (*
                                                                                                                                                        a
                                                                                                                                                        b)
                                                                                                                                                       1.85e-266))
                                                                                                                                                     (or (<=
                                                                                                                                                          (*
                                                                                                                                                           a
                                                                                                                                                           b)
                                                                                                                                                          2.3e-263)
                                                                                                                                                         (and (not
                                                                                                                                                               (<=
                                                                                                                                                                (*
                                                                                                                                                                 a
                                                                                                                                                                 b)
                                                                                                                                                                2.1e-254))
                                                                                                                                                              (or (<=
                                                                                                                                                                   (*
                                                                                                                                                                    a
                                                                                                                                                                    b)
                                                                                                                                                                   2.2e-254)
                                                                                                                                                                  (not
                                                                                                                                                                   (or (<=
                                                                                                                                                                        (*
                                                                                                                                                                         a
                                                                                                                                                                         b)
                                                                                                                                                                        4.6e-227)
                                                                                                                                                                       (and (not
                                                                                                                                                                             (<=
                                                                                                                                                                              (*
                                                                                                                                                                               a
                                                                                                                                                                               b)
                                                                                                                                                                              1.2e-222))
                                                                                                                                                                            (or (<=
                                                                                                                                                                                 (*
                                                                                                                                                                                  a
                                                                                                                                                                                  b)
                                                                                                                                                                                 5.3e-196)
                                                                                                                                                                                (and (not
                                                                                                                                                                                      (<=
                                                                                                                                                                                       (*
                                                                                                                                                                                        a
                                                                                                                                                                                        b)
                                                                                                                                                                                       5.5e-196))
                                                                                                                                                                                     (or (<=
                                                                                                                                                                                          (*
                                                                                                                                                                                           a
                                                                                                                                                                                           b)
                                                                                                                                                                                          2.8e-172)
                                                                                                                                                                                         (and (not
                                                                                                                                                                                               (<=
                                                                                                                                                                                                (*
                                                                                                                                                                                                 a
                                                                                                                                                                                                 b)
                                                                                                                                                                                                3e-172))
                                                                                                                                                                                              (or (<=
                                                                                                                                                                                                   (*
                                                                                                                                                                                                    a
                                                                                                                                                                                                    b)
                                                                                                                                                                                                   4.3e-129)
                                                                                                                                                                                                  (and (not
                                                                                                                                                                                                        (or (<=
                                                                                                                                                                                                             (*
                                                                                                                                                                                                              a
                                                                                                                                                                                                              b)
                                                                                                                                                                                                             2e-120)
                                                                                                                                                                                                            (<=
                                                                                                                                                                                                             (*
                                                                                                                                                                                                              a
                                                                                                                                                                                                              b)
                                                                                                                                                                                                             4.2e-58)))
                                                                                                                                                                                                       (or (<=
                                                                                                                                                                                                            (*
                                                                                                                                                                                                             a
                                                                                                                                                                                                             b)
                                                                                                                                                                                                            1.46e-36)
                                                                                                                                                                                                           (and (not
                                                                                                                                                                                                                 (<=
                                                                                                                                                                                                                  (*
                                                                                                                                                                                                                   a
                                                                                                                                                                                                                   b)
                                                                                                                                                                                                                  4.5e-36))
                                                                                                                                                                                                                (or (<=
                                                                                                                                                                                                                     (*
                                                                                                                                                                                                                      a
                                                                                                                                                                                                                      b)
                                                                                                                                                                                                                     3.1e-23)
                                                                                                                                                                                                                    (and (not
                                                                                                                                                                                                                          (<=
                                                                                                                                                                                                                           (*
                                                                                                                                                                                                                            a
                                                                                                                                                                                                                            b)
                                                                                                                                                                                                                           7.5e-21))
                                                                                                                                                                                                                         (or (<=
                                                                                                                                                                                                                              (*
                                                                                                                                                                                                                               a
                                                                                                                                                                                                                               b)
                                                                                                                                                                                                                              4.5e-13)
                                                                                                                                                                                                                             (and (not
                                                                                                                                                                                                                                   (<=
                                                                                                                                                                                                                                    (*
                                                                                                                                                                                                                                     a
                                                                                                                                                                                                                                     b)
                                                                                                                                                                                                                                    46000.0))
                                                                                                                                                                                                                                  (or (<=
                                                                                                                                                                                                                                       (*
                                                                                                                                                                                                                                        a
                                                                                                                                                                                                                                        b)
                                                                                                                                                                                                                                       1.05e+28)
                                                                                                                                                                                                                                      (and (not
                                                                                                                                                                                                                                            (<=
                                                                                                                                                                                                                                             (*
                                                                                                                                                                                                                                              a
                                                                                                                                                                                                                                              b)
                                                                                                                                                                                                                                             3.15e+28))
                                                                                                                                                                                                                                           (or (<=
                                                                                                                                                                                                                                                (*
                                                                                                                                                                                                                                                 a
                                                                                                                                                                                                                                                 b)
                                                                                                                                                                                                                                                3e+31)
                                                                                                                                                                                                                                               (and (not
                                                                                                                                                                                                                                                     (<=
                                                                                                                                                                                                                                                      (*
                                                                                                                                                                                                                                                       a
                                                                                                                                                                                                                                                       b)
                                                                                                                                                                                                                                                      9.6e+34))
                                                                                                                                                                                                                                                    (or (<=
                                                                                                                                                                                                                                                         (*
                                                                                                                                                                                                                                                          a
                                                                                                                                                                                                                                                          b)
                                                                                                                                                                                                                                                         3.7e+60)
                                                                                                                                                                                                                                                        (and (not
                                                                                                                                                                                                                                                              (<=
                                                                                                                                                                                                                                                               (*
                                                                                                                                                                                                                                                                a
                                                                                                                                                                                                                                                                b)
                                                                                                                                                                                                                                                               1.95e+70))
                                                                                                                                                                                                                                                             (or (<=
                                                                                                                                                                                                                                                                  (*
                                                                                                                                                                                                                                                                   a
                                                                                                                                                                                                                                                                   b)
                                                                                                                                                                                                                                                                  2.9e+71)
                                                                                                                                                                                                                                                                 (and (not
                                                                                                                                                                                                                                                                       (<=
                                                                                                                                                                                                                                                                        (*
                                                                                                                                                                                                                                                                         a
                                                                                                                                                                                                                                                                         b)
                                                                                                                                                                                                                                                                        3.4e+77))
                                                                                                                                                                                                                                                                      (or (<=
                                                                                                                                                                                                                                                                           (*
                                                                                                                                                                                                                                                                            a
                                                                                                                                                                                                                                                                            b)
                                                                                                                                                                                                                                                                           3.5e+78)
                                                                                                                                                                                                                                                                          (and (not
                                                                                                                                                                                                                                                                                (<=
                                                                                                                                                                                                                                                                                 (*
                                                                                                                                                                                                                                                                                  a
                                                                                                                                                                                                                                                                                  b)
                                                                                                                                                                                                                                                                                 9.6e+96))
                                                                                                                                                                                                                                                                               (or (<=
                                                                                                                                                                                                                                                                                    (*
                                                                                                                                                                                                                                                                                     a
                                                                                                                                                                                                                                                                                     b)
                                                                                                                                                                                                                                                                                    6.4e+115)
                                                                                                                                                                                                                                                                                   (and (not
                                                                                                                                                                                                                                                                                         (<=
                                                                                                                                                                                                                                                                                          (*
                                                                                                                                                                                                                                                                                           a
                                                                                                                                                                                                                                                                                           b)
                                                                                                                                                                                                                                                                                          1.3e+118))
                                                                                                                                                                                                                                                                                        (or (<=
                                                                                                                                                                                                                                                                                             (*
                                                                                                                                                                                                                                                                                              a
                                                                                                                                                                                                                                                                                              b)
                                                                                                                                                                                                                                                                                             4.7e+121)
                                                                                                                                                                                                                                                                                            (and (not
                                                                                                                                                                                                                                                                                                  (<=
                                                                                                                                                                                                                                                                                                   (*
                                                                                                                                                                                                                                                                                                    a
                                                                                                                                                                                                                                                                                                    b)
                                                                                                                                                                                                                                                                                                   9.5e+133))
                                                                                                                                                                                                                                                                                                 (or (<=
                                                                                                                                                                                                                                                                                                      (*
                                                                                                                                                                                                                                                                                                       a
                                                                                                                                                                                                                                                                                                       b)
                                                                                                                                                                                                                                                                                                      1e+134)
                                                                                                                                                                                                                                                                                                     (and (not
                                                                                                                                                                                                                                                                                                           (<=
                                                                                                                                                                                                                                                                                                            (*
                                                                                                                                                                                                                                                                                                             a
                                                                                                                                                                                                                                                                                                             b)
                                                                                                                                                                                                                                                                                                            1.8e+142))
                                                                                                                                                                                                                                                                                                          (or (<=
                                                                                                                                                                                                                                                                                                               (*
                                                                                                                                                                                                                                                                                                                a
                                                                                                                                                                                                                                                                                                                b)
                                                                                                                                                                                                                                                                                                               4.5e+146)
                                                                                                                                                                                                                                                                                                              (and (not
                                                                                                                                                                                                                                                                                                                    (<=
                                                                                                                                                                                                                                                                                                                     (*
                                                                                                                                                                                                                                                                                                                      a
                                                                                                                                                                                                                                                                                                                      b)
                                                                                                                                                                                                                                                                                                                     5.2e+151))
                                                                                                                                                                                                                                                                                                                   (or (<=
                                                                                                                                                                                                                                                                                                                        (*
                                                                                                                                                                                                                                                                                                                         a
                                                                                                                                                                                                                                                                                                                         b)
                                                                                                                                                                                                                                                                                                                        1.35e+158)
                                                                                                                                                                                                                                                                                                                       (and (not
                                                                                                                                                                                                                                                                                                                             (<=
                                                                                                                                                                                                                                                                                                                              (*
                                                                                                                                                                                                                                                                                                                               a
                                                                                                                                                                                                                                                                                                                               b)
                                                                                                                                                                                                                                                                                                                              2.4e+201))
                                                                                                                                                                                                                                                                                                                            (or (<=
                                                                                                                                                                                                                                                                                                                                 (*
                                                                                                                                                                                                                                                                                                                                  a
                                                                                                                                                                                                                                                                                                                                  b)
                                                                                                                                                                                                                                                                                                                                 2.42e+201)
                                                                                                                                                                                                                                                                                                                                (and (not
                                                                                                                                                                                                                                                                                                                                      (<=
                                                                                                                                                                                                                                                                                                                                       (*
                                                                                                                                                                                                                                                                                                                                        a
                                                                                                                                                                                                                                                                                                                                        b)
                                                                                                                                                                                                                                                                                                                                       1.65e+223))
                                                                                                                                                                                                                                                                                                                                     (<=
                                                                                                                                                                                                                                                                                                                                      (*
                                                                                                                                                                                                                                                                                                                                       a
                                                                                                                                                                                                                                                                                                                                       b)
                                                                                                                                                                                                                                                                                                                                      4.1e+223)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
   (* a b)
   (* z t)))
double code(double x, double y, double z, double t, double a, double b) {
	double tmp;
	if (((a * b) <= -6.5e+203) || (!((a * b) <= -4.8e+68) && (((a * b) <= -3.65e+64) || (!((a * b) <= -6.2e+37) && (((a * b) <= -5.5e+36) || (!((a * b) <= -1.45e+14) && (((a * b) <= -52000000000000.0) || (!((a * b) <= -40.0) && (((a * b) <= -0.155) || (!((a * b) <= -8e-24) && (((a * b) <= -6.8e-24) || (!((a * b) <= -1.35e-39) && (((a * b) <= -1.45e-53) || (!((a * b) <= -5.5e-86) && (((a * b) <= -5.4e-86) || (!((a * b) <= -3.2e-129) && (((a * b) <= -3.1e-129) || (!((a * b) <= -1.22e-144) && (((a * b) <= -1.2e-144) || (!((a * b) <= -2.3e-182) && (((a * b) <= -2.25e-182) || (!((a * b) <= -3.85e-208) && (((a * b) <= -9e-214) || (!((a * b) <= -1.65e-273) && (((a * b) <= -1.62e-273) || (!((a * b) <= -1.95e-294) && (((a * b) <= -1.9e-294) || (!((a * b) <= -2.4e-298) && (((a * b) <= -2.35e-298) || (!((a * b) <= 3.7e-293) && (((a * b) <= 3.8e-293) || (!((a * b) <= 1.85e-266) && (((a * b) <= 2.3e-263) || (!((a * b) <= 2.1e-254) && (((a * b) <= 2.2e-254) || !(((a * b) <= 4.6e-227) || (!((a * b) <= 1.2e-222) && (((a * b) <= 5.3e-196) || (!((a * b) <= 5.5e-196) && (((a * b) <= 2.8e-172) || (!((a * b) <= 3e-172) && (((a * b) <= 4.3e-129) || (!(((a * b) <= 2e-120) || ((a * b) <= 4.2e-58)) && (((a * b) <= 1.46e-36) || (!((a * b) <= 4.5e-36) && (((a * b) <= 3.1e-23) || (!((a * b) <= 7.5e-21) && (((a * b) <= 4.5e-13) || (!((a * b) <= 46000.0) && (((a * b) <= 1.05e+28) || (!((a * b) <= 3.15e+28) && (((a * b) <= 3e+31) || (!((a * b) <= 9.6e+34) && (((a * b) <= 3.7e+60) || (!((a * b) <= 1.95e+70) && (((a * b) <= 2.9e+71) || (!((a * b) <= 3.4e+77) && (((a * b) <= 3.5e+78) || (!((a * b) <= 9.6e+96) && (((a * b) <= 6.4e+115) || (!((a * b) <= 1.3e+118) && (((a * b) <= 4.7e+121) || (!((a * b) <= 9.5e+133) && (((a * b) <= 1e+134) || (!((a * b) <= 1.8e+142) && (((a * b) <= 4.5e+146) || (!((a * b) <= 5.2e+151) && (((a * b) <= 1.35e+158) || (!((a * b) <= 2.4e+201) && (((a * b) <= 2.42e+201) || (!((a * b) <= 1.65e+223) && ((a * b) <= 4.1e+223)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) {
		tmp = a * b;
	} else {
		tmp = z * t;
	}
	return tmp;
}
real(8) function code(x, y, z, t, a, b)
    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), intent (in) :: b
    real(8) :: tmp
    if (((a * b) <= (-6.5d+203)) .or. (.not. ((a * b) <= (-4.8d+68))) .and. ((a * b) <= (-3.65d+64)) .or. (.not. ((a * b) <= (-6.2d+37))) .and. ((a * b) <= (-5.5d+36)) .or. (.not. ((a * b) <= (-1.45d+14))) .and. ((a * b) <= (-52000000000000.0d0)) .or. (.not. ((a * b) <= (-40.0d0))) .and. ((a * b) <= (-0.155d0)) .or. (.not. ((a * b) <= (-8d-24))) .and. ((a * b) <= (-6.8d-24)) .or. (.not. ((a * b) <= (-1.35d-39))) .and. ((a * b) <= (-1.45d-53)) .or. (.not. ((a * b) <= (-5.5d-86))) .and. ((a * b) <= (-5.4d-86)) .or. (.not. ((a * b) <= (-3.2d-129))) .and. ((a * b) <= (-3.1d-129)) .or. (.not. ((a * b) <= (-1.22d-144))) .and. ((a * b) <= (-1.2d-144)) .or. (.not. ((a * b) <= (-2.3d-182))) .and. ((a * b) <= (-2.25d-182)) .or. (.not. ((a * b) <= (-3.85d-208))) .and. ((a * b) <= (-9d-214)) .or. (.not. ((a * b) <= (-1.65d-273))) .and. ((a * b) <= (-1.62d-273)) .or. (.not. ((a * b) <= (-1.95d-294))) .and. ((a * b) <= (-1.9d-294)) .or. (.not. ((a * b) <= (-2.4d-298))) .and. ((a * b) <= (-2.35d-298)) .or. (.not. ((a * b) <= 3.7d-293)) .and. ((a * b) <= 3.8d-293) .or. (.not. ((a * b) <= 1.85d-266)) .and. ((a * b) <= 2.3d-263) .or. (.not. ((a * b) <= 2.1d-254)) .and. ((a * b) <= 2.2d-254) .or. (.not. ((a * b) <= 4.6d-227) .or. (.not. ((a * b) <= 1.2d-222)) .and. ((a * b) <= 5.3d-196) .or. (.not. ((a * b) <= 5.5d-196)) .and. ((a * b) <= 2.8d-172) .or. (.not. ((a * b) <= 3d-172)) .and. ((a * b) <= 4.3d-129) .or. (.not. ((a * b) <= 2d-120) .or. ((a * b) <= 4.2d-58)) .and. ((a * b) <= 1.46d-36) .or. (.not. ((a * b) <= 4.5d-36)) .and. ((a * b) <= 3.1d-23) .or. (.not. ((a * b) <= 7.5d-21)) .and. ((a * b) <= 4.5d-13) .or. (.not. ((a * b) <= 46000.0d0)) .and. ((a * b) <= 1.05d+28) .or. (.not. ((a * b) <= 3.15d+28)) .and. ((a * b) <= 3d+31) .or. (.not. ((a * b) <= 9.6d+34)) .and. ((a * b) <= 3.7d+60) .or. (.not. ((a * b) <= 1.95d+70)) .and. ((a * b) <= 2.9d+71) .or. (.not. ((a * b) <= 3.4d+77)) .and. ((a * b) <= 3.5d+78) .or. (.not. ((a * b) <= 9.6d+96)) .and. ((a * b) <= 6.4d+115) .or. (.not. ((a * b) <= 1.3d+118)) .and. ((a * b) <= 4.7d+121) .or. (.not. ((a * b) <= 9.5d+133)) .and. ((a * b) <= 1d+134) .or. (.not. ((a * b) <= 1.8d+142)) .and. ((a * b) <= 4.5d+146) .or. (.not. ((a * b) <= 5.2d+151)) .and. ((a * b) <= 1.35d+158) .or. (.not. ((a * b) <= 2.4d+201)) .and. ((a * b) <= 2.42d+201) .or. (.not. ((a * b) <= 1.65d+223)) .and. ((a * b) <= 4.1d+223))) then
        tmp = a * b
    else
        tmp = z * t
    end if
    code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
	double tmp;
	if (((a * b) <= -6.5e+203) || (!((a * b) <= -4.8e+68) && (((a * b) <= -3.65e+64) || (!((a * b) <= -6.2e+37) && (((a * b) <= -5.5e+36) || (!((a * b) <= -1.45e+14) && (((a * b) <= -52000000000000.0) || (!((a * b) <= -40.0) && (((a * b) <= -0.155) || (!((a * b) <= -8e-24) && (((a * b) <= -6.8e-24) || (!((a * b) <= -1.35e-39) && (((a * b) <= -1.45e-53) || (!((a * b) <= -5.5e-86) && (((a * b) <= -5.4e-86) || (!((a * b) <= -3.2e-129) && (((a * b) <= -3.1e-129) || (!((a * b) <= -1.22e-144) && (((a * b) <= -1.2e-144) || (!((a * b) <= -2.3e-182) && (((a * b) <= -2.25e-182) || (!((a * b) <= -3.85e-208) && (((a * b) <= -9e-214) || (!((a * b) <= -1.65e-273) && (((a * b) <= -1.62e-273) || (!((a * b) <= -1.95e-294) && (((a * b) <= -1.9e-294) || (!((a * b) <= -2.4e-298) && (((a * b) <= -2.35e-298) || (!((a * b) <= 3.7e-293) && (((a * b) <= 3.8e-293) || (!((a * b) <= 1.85e-266) && (((a * b) <= 2.3e-263) || (!((a * b) <= 2.1e-254) && (((a * b) <= 2.2e-254) || !(((a * b) <= 4.6e-227) || (!((a * b) <= 1.2e-222) && (((a * b) <= 5.3e-196) || (!((a * b) <= 5.5e-196) && (((a * b) <= 2.8e-172) || (!((a * b) <= 3e-172) && (((a * b) <= 4.3e-129) || (!(((a * b) <= 2e-120) || ((a * b) <= 4.2e-58)) && (((a * b) <= 1.46e-36) || (!((a * b) <= 4.5e-36) && (((a * b) <= 3.1e-23) || (!((a * b) <= 7.5e-21) && (((a * b) <= 4.5e-13) || (!((a * b) <= 46000.0) && (((a * b) <= 1.05e+28) || (!((a * b) <= 3.15e+28) && (((a * b) <= 3e+31) || (!((a * b) <= 9.6e+34) && (((a * b) <= 3.7e+60) || (!((a * b) <= 1.95e+70) && (((a * b) <= 2.9e+71) || (!((a * b) <= 3.4e+77) && (((a * b) <= 3.5e+78) || (!((a * b) <= 9.6e+96) && (((a * b) <= 6.4e+115) || (!((a * b) <= 1.3e+118) && (((a * b) <= 4.7e+121) || (!((a * b) <= 9.5e+133) && (((a * b) <= 1e+134) || (!((a * b) <= 1.8e+142) && (((a * b) <= 4.5e+146) || (!((a * b) <= 5.2e+151) && (((a * b) <= 1.35e+158) || (!((a * b) <= 2.4e+201) && (((a * b) <= 2.42e+201) || (!((a * b) <= 1.65e+223) && ((a * b) <= 4.1e+223)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) {
		tmp = a * b;
	} else {
		tmp = z * t;
	}
	return tmp;
}
def code(x, y, z, t, a, b):
	tmp = 0
	if ((a * b) <= -6.5e+203) or (not ((a * b) <= -4.8e+68) and (((a * b) <= -3.65e+64) or (not ((a * b) <= -6.2e+37) and (((a * b) <= -5.5e+36) or (not ((a * b) <= -1.45e+14) and (((a * b) <= -52000000000000.0) or (not ((a * b) <= -40.0) and (((a * b) <= -0.155) or (not ((a * b) <= -8e-24) and (((a * b) <= -6.8e-24) or (not ((a * b) <= -1.35e-39) and (((a * b) <= -1.45e-53) or (not ((a * b) <= -5.5e-86) and (((a * b) <= -5.4e-86) or (not ((a * b) <= -3.2e-129) and (((a * b) <= -3.1e-129) or (not ((a * b) <= -1.22e-144) and (((a * b) <= -1.2e-144) or (not ((a * b) <= -2.3e-182) and (((a * b) <= -2.25e-182) or (not ((a * b) <= -3.85e-208) and (((a * b) <= -9e-214) or (not ((a * b) <= -1.65e-273) and (((a * b) <= -1.62e-273) or (not ((a * b) <= -1.95e-294) and (((a * b) <= -1.9e-294) or (not ((a * b) <= -2.4e-298) and (((a * b) <= -2.35e-298) or (not ((a * b) <= 3.7e-293) and (((a * b) <= 3.8e-293) or (not ((a * b) <= 1.85e-266) and (((a * b) <= 2.3e-263) or (not ((a * b) <= 2.1e-254) and (((a * b) <= 2.2e-254) or not (((a * b) <= 4.6e-227) or (not ((a * b) <= 1.2e-222) and (((a * b) <= 5.3e-196) or (not ((a * b) <= 5.5e-196) and (((a * b) <= 2.8e-172) or (not ((a * b) <= 3e-172) and (((a * b) <= 4.3e-129) or (not (((a * b) <= 2e-120) or ((a * b) <= 4.2e-58)) and (((a * b) <= 1.46e-36) or (not ((a * b) <= 4.5e-36) and (((a * b) <= 3.1e-23) or (not ((a * b) <= 7.5e-21) and (((a * b) <= 4.5e-13) or (not ((a * b) <= 46000.0) and (((a * b) <= 1.05e+28) or (not ((a * b) <= 3.15e+28) and (((a * b) <= 3e+31) or (not ((a * b) <= 9.6e+34) and (((a * b) <= 3.7e+60) or (not ((a * b) <= 1.95e+70) and (((a * b) <= 2.9e+71) or (not ((a * b) <= 3.4e+77) and (((a * b) <= 3.5e+78) or (not ((a * b) <= 9.6e+96) and (((a * b) <= 6.4e+115) or (not ((a * b) <= 1.3e+118) and (((a * b) <= 4.7e+121) or (not ((a * b) <= 9.5e+133) and (((a * b) <= 1e+134) or (not ((a * b) <= 1.8e+142) and (((a * b) <= 4.5e+146) or (not ((a * b) <= 5.2e+151) and (((a * b) <= 1.35e+158) or (not ((a * b) <= 2.4e+201) and (((a * b) <= 2.42e+201) or (not ((a * b) <= 1.65e+223) and ((a * b) <= 4.1e+223))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))):
		tmp = a * b
	else:
		tmp = z * t
	return tmp
function code(x, y, z, t, a, b)
	tmp = 0.0
	if ((Float64(a * b) <= -6.5e+203) || (!(Float64(a * b) <= -4.8e+68) && ((Float64(a * b) <= -3.65e+64) || (!(Float64(a * b) <= -6.2e+37) && ((Float64(a * b) <= -5.5e+36) || (!(Float64(a * b) <= -1.45e+14) && ((Float64(a * b) <= -52000000000000.0) || (!(Float64(a * b) <= -40.0) && ((Float64(a * b) <= -0.155) || (!(Float64(a * b) <= -8e-24) && ((Float64(a * b) <= -6.8e-24) || (!(Float64(a * b) <= -1.35e-39) && ((Float64(a * b) <= -1.45e-53) || (!(Float64(a * b) <= -5.5e-86) && ((Float64(a * b) <= -5.4e-86) || (!(Float64(a * b) <= -3.2e-129) && ((Float64(a * b) <= -3.1e-129) || (!(Float64(a * b) <= -1.22e-144) && ((Float64(a * b) <= -1.2e-144) || (!(Float64(a * b) <= -2.3e-182) && ((Float64(a * b) <= -2.25e-182) || (!(Float64(a * b) <= -3.85e-208) && ((Float64(a * b) <= -9e-214) || (!(Float64(a * b) <= -1.65e-273) && ((Float64(a * b) <= -1.62e-273) || (!(Float64(a * b) <= -1.95e-294) && ((Float64(a * b) <= -1.9e-294) || (!(Float64(a * b) <= -2.4e-298) && ((Float64(a * b) <= -2.35e-298) || (!(Float64(a * b) <= 3.7e-293) && ((Float64(a * b) <= 3.8e-293) || (!(Float64(a * b) <= 1.85e-266) && ((Float64(a * b) <= 2.3e-263) || (!(Float64(a * b) <= 2.1e-254) && ((Float64(a * b) <= 2.2e-254) || !((Float64(a * b) <= 4.6e-227) || (!(Float64(a * b) <= 1.2e-222) && ((Float64(a * b) <= 5.3e-196) || (!(Float64(a * b) <= 5.5e-196) && ((Float64(a * b) <= 2.8e-172) || (!(Float64(a * b) <= 3e-172) && ((Float64(a * b) <= 4.3e-129) || (!((Float64(a * b) <= 2e-120) || (Float64(a * b) <= 4.2e-58)) && ((Float64(a * b) <= 1.46e-36) || (!(Float64(a * b) <= 4.5e-36) && ((Float64(a * b) <= 3.1e-23) || (!(Float64(a * b) <= 7.5e-21) && ((Float64(a * b) <= 4.5e-13) || (!(Float64(a * b) <= 46000.0) && ((Float64(a * b) <= 1.05e+28) || (!(Float64(a * b) <= 3.15e+28) && ((Float64(a * b) <= 3e+31) || (!(Float64(a * b) <= 9.6e+34) && ((Float64(a * b) <= 3.7e+60) || (!(Float64(a * b) <= 1.95e+70) && ((Float64(a * b) <= 2.9e+71) || (!(Float64(a * b) <= 3.4e+77) && ((Float64(a * b) <= 3.5e+78) || (!(Float64(a * b) <= 9.6e+96) && ((Float64(a * b) <= 6.4e+115) || (!(Float64(a * b) <= 1.3e+118) && ((Float64(a * b) <= 4.7e+121) || (!(Float64(a * b) <= 9.5e+133) && ((Float64(a * b) <= 1e+134) || (!(Float64(a * b) <= 1.8e+142) && ((Float64(a * b) <= 4.5e+146) || (!(Float64(a * b) <= 5.2e+151) && ((Float64(a * b) <= 1.35e+158) || (!(Float64(a * b) <= 2.4e+201) && ((Float64(a * b) <= 2.42e+201) || (!(Float64(a * b) <= 1.65e+223) && (Float64(a * b) <= 4.1e+223))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
		tmp = Float64(a * b);
	else
		tmp = Float64(z * t);
	end
	return tmp
end
function tmp_2 = code(x, y, z, t, a, b)
	tmp = 0.0;
	if (((a * b) <= -6.5e+203) || (~(((a * b) <= -4.8e+68)) && (((a * b) <= -3.65e+64) || (~(((a * b) <= -6.2e+37)) && (((a * b) <= -5.5e+36) || (~(((a * b) <= -1.45e+14)) && (((a * b) <= -52000000000000.0) || (~(((a * b) <= -40.0)) && (((a * b) <= -0.155) || (~(((a * b) <= -8e-24)) && (((a * b) <= -6.8e-24) || (~(((a * b) <= -1.35e-39)) && (((a * b) <= -1.45e-53) || (~(((a * b) <= -5.5e-86)) && (((a * b) <= -5.4e-86) || (~(((a * b) <= -3.2e-129)) && (((a * b) <= -3.1e-129) || (~(((a * b) <= -1.22e-144)) && (((a * b) <= -1.2e-144) || (~(((a * b) <= -2.3e-182)) && (((a * b) <= -2.25e-182) || (~(((a * b) <= -3.85e-208)) && (((a * b) <= -9e-214) || (~(((a * b) <= -1.65e-273)) && (((a * b) <= -1.62e-273) || (~(((a * b) <= -1.95e-294)) && (((a * b) <= -1.9e-294) || (~(((a * b) <= -2.4e-298)) && (((a * b) <= -2.35e-298) || (~(((a * b) <= 3.7e-293)) && (((a * b) <= 3.8e-293) || (~(((a * b) <= 1.85e-266)) && (((a * b) <= 2.3e-263) || (~(((a * b) <= 2.1e-254)) && (((a * b) <= 2.2e-254) || ~((((a * b) <= 4.6e-227) || (~(((a * b) <= 1.2e-222)) && (((a * b) <= 5.3e-196) || (~(((a * b) <= 5.5e-196)) && (((a * b) <= 2.8e-172) || (~(((a * b) <= 3e-172)) && (((a * b) <= 4.3e-129) || (~((((a * b) <= 2e-120) || ((a * b) <= 4.2e-58))) && (((a * b) <= 1.46e-36) || (~(((a * b) <= 4.5e-36)) && (((a * b) <= 3.1e-23) || (~(((a * b) <= 7.5e-21)) && (((a * b) <= 4.5e-13) || (~(((a * b) <= 46000.0)) && (((a * b) <= 1.05e+28) || (~(((a * b) <= 3.15e+28)) && (((a * b) <= 3e+31) || (~(((a * b) <= 9.6e+34)) && (((a * b) <= 3.7e+60) || (~(((a * b) <= 1.95e+70)) && (((a * b) <= 2.9e+71) || (~(((a * b) <= 3.4e+77)) && (((a * b) <= 3.5e+78) || (~(((a * b) <= 9.6e+96)) && (((a * b) <= 6.4e+115) || (~(((a * b) <= 1.3e+118)) && (((a * b) <= 4.7e+121) || (~(((a * b) <= 9.5e+133)) && (((a * b) <= 1e+134) || (~(((a * b) <= 1.8e+142)) && (((a * b) <= 4.5e+146) || (~(((a * b) <= 5.2e+151)) && (((a * b) <= 1.35e+158) || (~(((a * b) <= 2.4e+201)) && (((a * b) <= 2.42e+201) || (~(((a * b) <= 1.65e+223)) && ((a * b) <= 4.1e+223)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
		tmp = a * b;
	else
		tmp = z * t;
	end
	tmp_2 = tmp;
end
code[x_, y_, z_, t_, a_, b_] := If[Or[LessEqual[N[(a * b), $MachinePrecision], -6.5e+203], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], -4.8e+68]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], -3.65e+64], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], -6.2e+37]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], -5.5e+36], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], -1.45e+14]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], -52000000000000.0], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], -40.0]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], -0.155], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], -8e-24]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], -6.8e-24], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], -1.35e-39]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], -1.45e-53], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], -5.5e-86]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], -5.4e-86], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], -3.2e-129]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], -3.1e-129], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], -1.22e-144]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], -1.2e-144], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], -2.3e-182]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], -2.25e-182], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], -3.85e-208]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], -9e-214], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], -1.65e-273]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], -1.62e-273], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], -1.95e-294]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], -1.9e-294], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], -2.4e-298]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], -2.35e-298], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], 3.7e-293]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], 3.8e-293], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], 1.85e-266]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], 2.3e-263], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], 2.1e-254]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], 2.2e-254], N[Not[Or[LessEqual[N[(a * b), $MachinePrecision], 4.6e-227], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], 1.2e-222]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], 5.3e-196], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], 5.5e-196]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], 2.8e-172], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], 3e-172]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], 4.3e-129], And[N[Not[Or[LessEqual[N[(a * b), $MachinePrecision], 2e-120], LessEqual[N[(a * b), $MachinePrecision], 4.2e-58]]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], 1.46e-36], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], 4.5e-36]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], 3.1e-23], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], 7.5e-21]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], 4.5e-13], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], 46000.0]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], 1.05e+28], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], 3.15e+28]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], 3e+31], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], 9.6e+34]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], 3.7e+60], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], 1.95e+70]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], 2.9e+71], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], 3.4e+77]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], 3.5e+78], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], 9.6e+96]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], 6.4e+115], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], 1.3e+118]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], 4.7e+121], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], 9.5e+133]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], 1e+134], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], 1.8e+142]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], 4.5e+146], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], 5.2e+151]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], 1.35e+158], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], 2.4e+201]], $MachinePrecision], Or[LessEqual[N[(a * b), $MachinePrecision], 2.42e+201], And[N[Not[LessEqual[N[(a * b), $MachinePrecision], 1.65e+223]], $MachinePrecision], LessEqual[N[(a * b), $MachinePrecision], 4.1e+223]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]], $MachinePrecision]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]], N[(a * b), $MachinePrecision], N[(z * t), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;a \cdot b \leq -6.5 \cdot 10^{+203} \lor \neg \left(a \cdot b \leq -4.8 \cdot 10^{+68}\right) \land \left(a \cdot b \leq -3.65 \cdot 10^{+64} \lor \neg \left(a \cdot b \leq -6.2 \cdot 10^{+37}\right) \land \left(a \cdot b \leq -5.5 \cdot 10^{+36} \lor \neg \left(a \cdot b \leq -1.45 \cdot 10^{+14}\right) \land \left(a \cdot b \leq -52000000000000 \lor \neg \left(a \cdot b \leq -40\right) \land \left(a \cdot b \leq -0.155 \lor \neg \left(a \cdot b \leq -8 \cdot 10^{-24}\right) \land \left(a \cdot b \leq -6.8 \cdot 10^{-24} \lor \neg \left(a \cdot b \leq -1.35 \cdot 10^{-39}\right) \land \left(a \cdot b \leq -1.45 \cdot 10^{-53} \lor \neg \left(a \cdot b \leq -5.5 \cdot 10^{-86}\right) \land \left(a \cdot b \leq -5.4 \cdot 10^{-86} \lor \neg \left(a \cdot b \leq -3.2 \cdot 10^{-129}\right) \land \left(a \cdot b \leq -3.1 \cdot 10^{-129} \lor \neg \left(a \cdot b \leq -1.22 \cdot 10^{-144}\right) \land \left(a \cdot b \leq -1.2 \cdot 10^{-144} \lor \neg \left(a \cdot b \leq -2.3 \cdot 10^{-182}\right) \land \left(a \cdot b \leq -2.25 \cdot 10^{-182} \lor \neg \left(a \cdot b \leq -3.85 \cdot 10^{-208}\right) \land \left(a \cdot b \leq -9 \cdot 10^{-214} \lor \neg \left(a \cdot b \leq -1.65 \cdot 10^{-273}\right) \land \left(a \cdot b \leq -1.62 \cdot 10^{-273} \lor \neg \left(a \cdot b \leq -1.95 \cdot 10^{-294}\right) \land \left(a \cdot b \leq -1.9 \cdot 10^{-294} \lor \neg \left(a \cdot b \leq -2.4 \cdot 10^{-298}\right) \land \left(a \cdot b \leq -2.35 \cdot 10^{-298} \lor \neg \left(a \cdot b \leq 3.7 \cdot 10^{-293}\right) \land \left(a \cdot b \leq 3.8 \cdot 10^{-293} \lor \neg \left(a \cdot b \leq 1.85 \cdot 10^{-266}\right) \land \left(a \cdot b \leq 2.3 \cdot 10^{-263} \lor \neg \left(a \cdot b \leq 2.1 \cdot 10^{-254}\right) \land \left(a \cdot b \leq 2.2 \cdot 10^{-254} \lor \neg \left(a \cdot b \leq 4.6 \cdot 10^{-227} \lor \neg \left(a \cdot b \leq 1.2 \cdot 10^{-222}\right) \land \left(a \cdot b \leq 5.3 \cdot 10^{-196} \lor \neg \left(a \cdot b \leq 5.5 \cdot 10^{-196}\right) \land \left(a \cdot b \leq 2.8 \cdot 10^{-172} \lor \neg \left(a \cdot b \leq 3 \cdot 10^{-172}\right) \land \left(a \cdot b \leq 4.3 \cdot 10^{-129} \lor \neg \left(a \cdot b \leq 2 \cdot 10^{-120} \lor a \cdot b \leq 4.2 \cdot 10^{-58}\right) \land \left(a \cdot b \leq 1.46 \cdot 10^{-36} \lor \neg \left(a \cdot b \leq 4.5 \cdot 10^{-36}\right) \land \left(a \cdot b \leq 3.1 \cdot 10^{-23} \lor \neg \left(a \cdot b \leq 7.5 \cdot 10^{-21}\right) \land \left(a \cdot b \leq 4.5 \cdot 10^{-13} \lor \neg \left(a \cdot b \leq 46000\right) \land \left(a \cdot b \leq 1.05 \cdot 10^{+28} \lor \neg \left(a \cdot b \leq 3.15 \cdot 10^{+28}\right) \land \left(a \cdot b \leq 3 \cdot 10^{+31} \lor \neg \left(a \cdot b \leq 9.6 \cdot 10^{+34}\right) \land \left(a \cdot b \leq 3.7 \cdot 10^{+60} \lor \neg \left(a \cdot b \leq 1.95 \cdot 10^{+70}\right) \land \left(a \cdot b \leq 2.9 \cdot 10^{+71} \lor \neg \left(a \cdot b \leq 3.4 \cdot 10^{+77}\right) \land \left(a \cdot b \leq 3.5 \cdot 10^{+78} \lor \neg \left(a \cdot b \leq 9.6 \cdot 10^{+96}\right) \land \left(a \cdot b \leq 6.4 \cdot 10^{+115} \lor \neg \left(a \cdot b \leq 1.3 \cdot 10^{+118}\right) \land \left(a \cdot b \leq 4.7 \cdot 10^{+121} \lor \neg \left(a \cdot b \leq 9.5 \cdot 10^{+133}\right) \land \left(a \cdot b \leq 10^{+134} \lor \neg \left(a \cdot b \leq 1.8 \cdot 10^{+142}\right) \land \left(a \cdot b \leq 4.5 \cdot 10^{+146} \lor \neg \left(a \cdot b \leq 5.2 \cdot 10^{+151}\right) \land \left(a \cdot b \leq 1.35 \cdot 10^{+158} \lor \neg \left(a \cdot b \leq 2.4 \cdot 10^{+201}\right) \land \left(a \cdot b \leq 2.42 \cdot 10^{+201} \lor \neg \left(a \cdot b \leq 1.65 \cdot 10^{+223}\right) \land a \cdot b \leq 4.1 \cdot 10^{+223}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right):\\
\;\;\;\;a \cdot b\\

\mathbf{else}:\\
\;\;\;\;z \cdot t\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (*.f64 a b) < -6.5000000000000003e203 or -4.80000000000000016e68 < (*.f64 a b) < -3.64999999999999998e64 or -6.2000000000000004e37 < (*.f64 a b) < -5.5000000000000002e36 or -1.45e14 < (*.f64 a b) < -5.2e13 or -40 < (*.f64 a b) < -0.154999999999999999 or -7.99999999999999939e-24 < (*.f64 a b) < -6.79999999999999985e-24 or -1.35e-39 < (*.f64 a b) < -1.4499999999999999e-53 or -5.5e-86 < (*.f64 a b) < -5.39999999999999985e-86 or -3.2000000000000003e-129 < (*.f64 a b) < -3.1e-129 or -1.22e-144 < (*.f64 a b) < -1.19999999999999997e-144 or -2.2999999999999999e-182 < (*.f64 a b) < -2.2499999999999999e-182 or -3.84999999999999986e-208 < (*.f64 a b) < -9.0000000000000002e-214 or -1.64999999999999995e-273 < (*.f64 a b) < -1.61999999999999995e-273 or -1.9500000000000001e-294 < (*.f64 a b) < -1.9e-294 or -2.39999999999999987e-298 < (*.f64 a b) < -2.35000000000000019e-298 or 3.70000000000000008e-293 < (*.f64 a b) < 3.8e-293 or 1.8500000000000001e-266 < (*.f64 a b) < 2.30000000000000003e-263 or 2.09999999999999997e-254 < (*.f64 a b) < 2.2000000000000001e-254 or 4.60000000000000024e-227 < (*.f64 a b) < 1.19999999999999997e-222 or 5.3000000000000001e-196 < (*.f64 a b) < 5.50000000000000014e-196 or 2.80000000000000011e-172 < (*.f64 a b) < 2.99999999999999984e-172 or 4.29999999999999981e-129 < (*.f64 a b) < 1.99999999999999996e-120 or 1.99999999999999996e-120 < (*.f64 a b) < 4.19999999999999975e-58 or 1.4599999999999999e-36 < (*.f64 a b) < 4.50000000000000024e-36 or 3.0999999999999999e-23 < (*.f64 a b) < 7.50000000000000072e-21 or 4.5e-13 < (*.f64 a b) < 46000 or 1.04999999999999995e28 < (*.f64 a b) < 3.1500000000000001e28 or 2.99999999999999989e31 < (*.f64 a b) < 9.59999999999999948e34 or 3.69999999999999988e60 < (*.f64 a b) < 1.94999999999999987e70 or 2.90000000000000007e71 < (*.f64 a b) < 3.39999999999999997e77 or 3.5000000000000001e78 < (*.f64 a b) < 9.59999999999999972e96 or 6.4e115 < (*.f64 a b) < 1.30000000000000008e118 or 4.70000000000000005e121 < (*.f64 a b) < 9.49999999999999996e133 or 9.99999999999999921e133 < (*.f64 a b) < 1.8000000000000001e142 or 4.50000000000000026e146 < (*.f64 a b) < 5.20000000000000026e151 or 1.34999999999999989e158 < (*.f64 a b) < 2.39999999999999993e201 or 2.42e201 < (*.f64 a b) < 1.65e223 or 4.1e223 < (*.f64 a b)

    1. Initial program 95.1%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in a around inf 68.1%

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

    if -6.5000000000000003e203 < (*.f64 a b) < -4.80000000000000016e68 or -3.64999999999999998e64 < (*.f64 a b) < -6.2000000000000004e37 or -5.5000000000000002e36 < (*.f64 a b) < -1.45e14 or -5.2e13 < (*.f64 a b) < -40 or -0.154999999999999999 < (*.f64 a b) < -7.99999999999999939e-24 or -6.79999999999999985e-24 < (*.f64 a b) < -1.35e-39 or -1.4499999999999999e-53 < (*.f64 a b) < -5.5e-86 or -5.39999999999999985e-86 < (*.f64 a b) < -3.2000000000000003e-129 or -3.1e-129 < (*.f64 a b) < -1.22e-144 or -1.19999999999999997e-144 < (*.f64 a b) < -2.2999999999999999e-182 or -2.2499999999999999e-182 < (*.f64 a b) < -3.84999999999999986e-208 or -9.0000000000000002e-214 < (*.f64 a b) < -1.64999999999999995e-273 or -1.61999999999999995e-273 < (*.f64 a b) < -1.9500000000000001e-294 or -1.9e-294 < (*.f64 a b) < -2.39999999999999987e-298 or -2.35000000000000019e-298 < (*.f64 a b) < 3.70000000000000008e-293 or 3.8e-293 < (*.f64 a b) < 1.8500000000000001e-266 or 2.30000000000000003e-263 < (*.f64 a b) < 2.09999999999999997e-254 or 2.2000000000000001e-254 < (*.f64 a b) < 4.60000000000000024e-227 or 1.19999999999999997e-222 < (*.f64 a b) < 5.3000000000000001e-196 or 5.50000000000000014e-196 < (*.f64 a b) < 2.80000000000000011e-172 or 2.99999999999999984e-172 < (*.f64 a b) < 4.29999999999999981e-129 or 4.19999999999999975e-58 < (*.f64 a b) < 1.4599999999999999e-36 or 4.50000000000000024e-36 < (*.f64 a b) < 3.0999999999999999e-23 or 7.50000000000000072e-21 < (*.f64 a b) < 4.5e-13 or 46000 < (*.f64 a b) < 1.04999999999999995e28 or 3.1500000000000001e28 < (*.f64 a b) < 2.99999999999999989e31 or 9.59999999999999948e34 < (*.f64 a b) < 3.69999999999999988e60 or 1.94999999999999987e70 < (*.f64 a b) < 2.90000000000000007e71 or 3.39999999999999997e77 < (*.f64 a b) < 3.5000000000000001e78 or 9.59999999999999972e96 < (*.f64 a b) < 6.4e115 or 1.30000000000000008e118 < (*.f64 a b) < 4.70000000000000005e121 or 9.49999999999999996e133 < (*.f64 a b) < 9.99999999999999921e133 or 1.8000000000000001e142 < (*.f64 a b) < 4.50000000000000026e146 or 5.20000000000000026e151 < (*.f64 a b) < 1.34999999999999989e158 or 2.39999999999999993e201 < (*.f64 a b) < 2.42e201 or 1.65e223 < (*.f64 a b) < 4.1e223

    1. Initial program 97.7%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in z around inf 61.2%

      \[\leadsto \color{blue}{t \cdot z} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification64.5%

    \[\leadsto \begin{array}{l} \mathbf{if}\;a \cdot b \leq -6.5 \cdot 10^{+203} \lor \neg \left(a \cdot b \leq -4.8 \cdot 10^{+68}\right) \land \left(a \cdot b \leq -3.65 \cdot 10^{+64} \lor \neg \left(a \cdot b \leq -6.2 \cdot 10^{+37}\right) \land \left(a \cdot b \leq -5.5 \cdot 10^{+36} \lor \neg \left(a \cdot b \leq -1.45 \cdot 10^{+14}\right) \land \left(a \cdot b \leq -52000000000000 \lor \neg \left(a \cdot b \leq -40\right) \land \left(a \cdot b \leq -0.155 \lor \neg \left(a \cdot b \leq -8 \cdot 10^{-24}\right) \land \left(a \cdot b \leq -6.8 \cdot 10^{-24} \lor \neg \left(a \cdot b \leq -1.35 \cdot 10^{-39}\right) \land \left(a \cdot b \leq -1.45 \cdot 10^{-53} \lor \neg \left(a \cdot b \leq -5.5 \cdot 10^{-86}\right) \land \left(a \cdot b \leq -5.4 \cdot 10^{-86} \lor \neg \left(a \cdot b \leq -3.2 \cdot 10^{-129}\right) \land \left(a \cdot b \leq -3.1 \cdot 10^{-129} \lor \neg \left(a \cdot b \leq -1.22 \cdot 10^{-144}\right) \land \left(a \cdot b \leq -1.2 \cdot 10^{-144} \lor \neg \left(a \cdot b \leq -2.3 \cdot 10^{-182}\right) \land \left(a \cdot b \leq -2.25 \cdot 10^{-182} \lor \neg \left(a \cdot b \leq -3.85 \cdot 10^{-208}\right) \land \left(a \cdot b \leq -9 \cdot 10^{-214} \lor \neg \left(a \cdot b \leq -1.65 \cdot 10^{-273}\right) \land \left(a \cdot b \leq -1.62 \cdot 10^{-273} \lor \neg \left(a \cdot b \leq -1.95 \cdot 10^{-294}\right) \land \left(a \cdot b \leq -1.9 \cdot 10^{-294} \lor \neg \left(a \cdot b \leq -2.4 \cdot 10^{-298}\right) \land \left(a \cdot b \leq -2.35 \cdot 10^{-298} \lor \neg \left(a \cdot b \leq 3.7 \cdot 10^{-293}\right) \land \left(a \cdot b \leq 3.8 \cdot 10^{-293} \lor \neg \left(a \cdot b \leq 1.85 \cdot 10^{-266}\right) \land \left(a \cdot b \leq 2.3 \cdot 10^{-263} \lor \neg \left(a \cdot b \leq 2.1 \cdot 10^{-254}\right) \land \left(a \cdot b \leq 2.2 \cdot 10^{-254} \lor \neg \left(a \cdot b \leq 4.6 \cdot 10^{-227} \lor \neg \left(a \cdot b \leq 1.2 \cdot 10^{-222}\right) \land \left(a \cdot b \leq 5.3 \cdot 10^{-196} \lor \neg \left(a \cdot b \leq 5.5 \cdot 10^{-196}\right) \land \left(a \cdot b \leq 2.8 \cdot 10^{-172} \lor \neg \left(a \cdot b \leq 3 \cdot 10^{-172}\right) \land \left(a \cdot b \leq 4.3 \cdot 10^{-129} \lor \neg \left(a \cdot b \leq 2 \cdot 10^{-120} \lor a \cdot b \leq 4.2 \cdot 10^{-58}\right) \land \left(a \cdot b \leq 1.46 \cdot 10^{-36} \lor \neg \left(a \cdot b \leq 4.5 \cdot 10^{-36}\right) \land \left(a \cdot b \leq 3.1 \cdot 10^{-23} \lor \neg \left(a \cdot b \leq 7.5 \cdot 10^{-21}\right) \land \left(a \cdot b \leq 4.5 \cdot 10^{-13} \lor \neg \left(a \cdot b \leq 46000\right) \land \left(a \cdot b \leq 1.05 \cdot 10^{+28} \lor \neg \left(a \cdot b \leq 3.15 \cdot 10^{+28}\right) \land \left(a \cdot b \leq 3 \cdot 10^{+31} \lor \neg \left(a \cdot b \leq 9.6 \cdot 10^{+34}\right) \land \left(a \cdot b \leq 3.7 \cdot 10^{+60} \lor \neg \left(a \cdot b \leq 1.95 \cdot 10^{+70}\right) \land \left(a \cdot b \leq 2.9 \cdot 10^{+71} \lor \neg \left(a \cdot b \leq 3.4 \cdot 10^{+77}\right) \land \left(a \cdot b \leq 3.5 \cdot 10^{+78} \lor \neg \left(a \cdot b \leq 9.6 \cdot 10^{+96}\right) \land \left(a \cdot b \leq 6.4 \cdot 10^{+115} \lor \neg \left(a \cdot b \leq 1.3 \cdot 10^{+118}\right) \land \left(a \cdot b \leq 4.7 \cdot 10^{+121} \lor \neg \left(a \cdot b \leq 9.5 \cdot 10^{+133}\right) \land \left(a \cdot b \leq 10^{+134} \lor \neg \left(a \cdot b \leq 1.8 \cdot 10^{+142}\right) \land \left(a \cdot b \leq 4.5 \cdot 10^{+146} \lor \neg \left(a \cdot b \leq 5.2 \cdot 10^{+151}\right) \land \left(a \cdot b \leq 1.35 \cdot 10^{+158} \lor \neg \left(a \cdot b \leq 2.4 \cdot 10^{+201}\right) \land \left(a \cdot b \leq 2.42 \cdot 10^{+201} \lor \neg \left(a \cdot b \leq 1.65 \cdot 10^{+223}\right) \land a \cdot b \leq 4.1 \cdot 10^{+223}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right):\\ \;\;\;\;a \cdot b\\ \mathbf{else}:\\ \;\;\;\;z \cdot t\\ \end{array} \]
  5. Add Preprocessing

Alternative 4: 62.6% accurate, 0.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_1 := a \cdot b + z \cdot t\\ \mathbf{if}\;a \cdot b \leq 10^{-323}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;a \cdot b \leq 1.45 \cdot 10^{-234}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 10^{-232}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;a \cdot b \leq 9.5 \cdot 10^{-216}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 2.2 \cdot 10^{-196}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;a \cdot b \leq 4.2 \cdot 10^{-195}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 6.6 \cdot 10^{-175}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;a \cdot b \leq 1.5 \cdot 10^{-167}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 2.5 \cdot 10^{-150}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;a \cdot b \leq 1.35 \cdot 10^{-41}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 3.2 \cdot 10^{-22}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;a \cdot b \leq 1.5 \cdot 10^{-21}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 2.45 \cdot 10^{-21}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;a \cdot b \leq 2.3 \cdot 10^{-20}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 2 \cdot 10^{-14}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;a \cdot b \leq 5 \cdot 10^{-13}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 5.1 \cdot 10^{-12}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;a \cdot b \leq 2 \cdot 10^{-9}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 23000:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;a \cdot b \leq 43000:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 2.1 \cdot 10^{+49}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;a \cdot b \leq 2.6 \cdot 10^{+61}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 7.5 \cdot 10^{+70}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;a \cdot b \leq 1.25 \cdot 10^{+71}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 2.5 \cdot 10^{+91}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;a \cdot b \leq 2.6 \cdot 10^{+91}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 6 \cdot 10^{+99}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;a \cdot b \leq 3 \cdot 10^{+100}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 3.3 \cdot 10^{+111}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;a \cdot b \leq 3.1 \cdot 10^{+114}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 9.5 \cdot 10^{+133}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;a \cdot b \leq 2.5 \cdot 10^{+134}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 5.2 \cdot 10^{+151}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;a \cdot b \leq 6.4 \cdot 10^{+156}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 3.8 \cdot 10^{+160}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;a \cdot b \leq 1.25 \cdot 10^{+162}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 2.3 \cdot 10^{+201}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;a \cdot b \leq 2.42 \cdot 10^{+201}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 1.3 \cdot 10^{+223}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;a \cdot b \leq 1.7 \cdot 10^{+223}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 9 \cdot 10^{+236}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;a \cdot b \leq 1.2 \cdot 10^{+246}:\\ \;\;\;\;x \cdot y\\ \mathbf{else}:\\ \;\;\;\;a \cdot b\\ \end{array} \end{array} \]
(FPCore (x y z t a b)
 :precision binary64
 (let* ((t_1 (+ (* a b) (* z t))))
   (if (<= (* a b) 1e-323)
     t_1
     (if (<= (* a b) 1.45e-234)
       (* x y)
       (if (<= (* a b) 1e-232)
         (* z t)
         (if (<= (* a b) 9.5e-216)
           (* x y)
           (if (<= (* a b) 2.2e-196)
             (* z t)
             (if (<= (* a b) 4.2e-195)
               (* x y)
               (if (<= (* a b) 6.6e-175)
                 (* z t)
                 (if (<= (* a b) 1.5e-167)
                   (* x y)
                   (if (<= (* a b) 2.5e-150)
                     (* z t)
                     (if (<= (* a b) 1.35e-41)
                       (* x y)
                       (if (<= (* a b) 3.2e-22)
                         t_1
                         (if (<= (* a b) 1.5e-21)
                           (* x y)
                           (if (<= (* a b) 2.45e-21)
                             (* a b)
                             (if (<= (* a b) 2.3e-20)
                               (* x y)
                               (if (<= (* a b) 2e-14)
                                 (* z t)
                                 (if (<= (* a b) 5e-13)
                                   (* x y)
                                   (if (<= (* a b) 5.1e-12)
                                     (* a b)
                                     (if (<= (* a b) 2e-9)
                                       (* x y)
                                       (if (<= (* a b) 23000.0)
                                         (* a b)
                                         (if (<= (* a b) 43000.0)
                                           (* x y)
                                           (if (<= (* a b) 2.1e+49)
                                             t_1
                                             (if (<= (* a b) 2.6e+61)
                                               (* x y)
                                               (if (<= (* a b) 7.5e+70)
                                                 (* a b)
                                                 (if (<= (* a b) 1.25e+71)
                                                   (* x y)
                                                   (if (<= (* a b) 2.5e+91)
                                                     t_1
                                                     (if (<= (* a b) 2.6e+91)
                                                       (* x y)
                                                       (if (<= (* a b) 6e+99)
                                                         t_1
                                                         (if (<=
                                                              (* a b)
                                                              3e+100)
                                                           (* x y)
                                                           (if (<=
                                                                (* a b)
                                                                3.3e+111)
                                                             (* z t)
                                                             (if (<=
                                                                  (* a b)
                                                                  3.1e+114)
                                                               (* x y)
                                                               (if (<=
                                                                    (* a b)
                                                                    9.5e+133)
                                                                 t_1
                                                                 (if (<=
                                                                      (* a b)
                                                                      2.5e+134)
                                                                   (* x y)
                                                                   (if (<=
                                                                        (* a b)
                                                                        5.2e+151)
                                                                     t_1
                                                                     (if (<=
                                                                          (*
                                                                           a
                                                                           b)
                                                                          6.4e+156)
                                                                       (* x y)
                                                                       (if (<=
                                                                            (*
                                                                             a
                                                                             b)
                                                                            3.8e+160)
                                                                         (*
                                                                          z
                                                                          t)
                                                                         (if (<=
                                                                              (*
                                                                               a
                                                                               b)
                                                                              1.25e+162)
                                                                           (*
                                                                            x
                                                                            y)
                                                                           (if (<=
                                                                                (*
                                                                                 a
                                                                                 b)
                                                                                2.3e+201)
                                                                             (*
                                                                              a
                                                                              b)
                                                                             (if (<=
                                                                                  (*
                                                                                   a
                                                                                   b)
                                                                                  2.42e+201)
                                                                               (*
                                                                                x
                                                                                y)
                                                                               (if (<=
                                                                                    (*
                                                                                     a
                                                                                     b)
                                                                                    1.3e+223)
                                                                                 (*
                                                                                  a
                                                                                  b)
                                                                                 (if (<=
                                                                                      (*
                                                                                       a
                                                                                       b)
                                                                                      1.7e+223)
                                                                                   (*
                                                                                    x
                                                                                    y)
                                                                                   (if (<=
                                                                                        (*
                                                                                         a
                                                                                         b)
                                                                                        9e+236)
                                                                                     t_1
                                                                                     (if (<=
                                                                                          (*
                                                                                           a
                                                                                           b)
                                                                                          1.2e+246)
                                                                                       (*
                                                                                        x
                                                                                        y)
                                                                                       (*
                                                                                        a
                                                                                        b)))))))))))))))))))))))))))))))))))))))))))))
double code(double x, double y, double z, double t, double a, double b) {
	double t_1 = (a * b) + (z * t);
	double tmp;
	if ((a * b) <= 1e-323) {
		tmp = t_1;
	} else if ((a * b) <= 1.45e-234) {
		tmp = x * y;
	} else if ((a * b) <= 1e-232) {
		tmp = z * t;
	} else if ((a * b) <= 9.5e-216) {
		tmp = x * y;
	} else if ((a * b) <= 2.2e-196) {
		tmp = z * t;
	} else if ((a * b) <= 4.2e-195) {
		tmp = x * y;
	} else if ((a * b) <= 6.6e-175) {
		tmp = z * t;
	} else if ((a * b) <= 1.5e-167) {
		tmp = x * y;
	} else if ((a * b) <= 2.5e-150) {
		tmp = z * t;
	} else if ((a * b) <= 1.35e-41) {
		tmp = x * y;
	} else if ((a * b) <= 3.2e-22) {
		tmp = t_1;
	} else if ((a * b) <= 1.5e-21) {
		tmp = x * y;
	} else if ((a * b) <= 2.45e-21) {
		tmp = a * b;
	} else if ((a * b) <= 2.3e-20) {
		tmp = x * y;
	} else if ((a * b) <= 2e-14) {
		tmp = z * t;
	} else if ((a * b) <= 5e-13) {
		tmp = x * y;
	} else if ((a * b) <= 5.1e-12) {
		tmp = a * b;
	} else if ((a * b) <= 2e-9) {
		tmp = x * y;
	} else if ((a * b) <= 23000.0) {
		tmp = a * b;
	} else if ((a * b) <= 43000.0) {
		tmp = x * y;
	} else if ((a * b) <= 2.1e+49) {
		tmp = t_1;
	} else if ((a * b) <= 2.6e+61) {
		tmp = x * y;
	} else if ((a * b) <= 7.5e+70) {
		tmp = a * b;
	} else if ((a * b) <= 1.25e+71) {
		tmp = x * y;
	} else if ((a * b) <= 2.5e+91) {
		tmp = t_1;
	} else if ((a * b) <= 2.6e+91) {
		tmp = x * y;
	} else if ((a * b) <= 6e+99) {
		tmp = t_1;
	} else if ((a * b) <= 3e+100) {
		tmp = x * y;
	} else if ((a * b) <= 3.3e+111) {
		tmp = z * t;
	} else if ((a * b) <= 3.1e+114) {
		tmp = x * y;
	} else if ((a * b) <= 9.5e+133) {
		tmp = t_1;
	} else if ((a * b) <= 2.5e+134) {
		tmp = x * y;
	} else if ((a * b) <= 5.2e+151) {
		tmp = t_1;
	} else if ((a * b) <= 6.4e+156) {
		tmp = x * y;
	} else if ((a * b) <= 3.8e+160) {
		tmp = z * t;
	} else if ((a * b) <= 1.25e+162) {
		tmp = x * y;
	} else if ((a * b) <= 2.3e+201) {
		tmp = a * b;
	} else if ((a * b) <= 2.42e+201) {
		tmp = x * y;
	} else if ((a * b) <= 1.3e+223) {
		tmp = a * b;
	} else if ((a * b) <= 1.7e+223) {
		tmp = x * y;
	} else if ((a * b) <= 9e+236) {
		tmp = t_1;
	} else if ((a * b) <= 1.2e+246) {
		tmp = x * y;
	} else {
		tmp = a * b;
	}
	return tmp;
}
real(8) function code(x, y, z, t, a, b)
    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), intent (in) :: b
    real(8) :: t_1
    real(8) :: tmp
    t_1 = (a * b) + (z * t)
    if ((a * b) <= 1d-323) then
        tmp = t_1
    else if ((a * b) <= 1.45d-234) then
        tmp = x * y
    else if ((a * b) <= 1d-232) then
        tmp = z * t
    else if ((a * b) <= 9.5d-216) then
        tmp = x * y
    else if ((a * b) <= 2.2d-196) then
        tmp = z * t
    else if ((a * b) <= 4.2d-195) then
        tmp = x * y
    else if ((a * b) <= 6.6d-175) then
        tmp = z * t
    else if ((a * b) <= 1.5d-167) then
        tmp = x * y
    else if ((a * b) <= 2.5d-150) then
        tmp = z * t
    else if ((a * b) <= 1.35d-41) then
        tmp = x * y
    else if ((a * b) <= 3.2d-22) then
        tmp = t_1
    else if ((a * b) <= 1.5d-21) then
        tmp = x * y
    else if ((a * b) <= 2.45d-21) then
        tmp = a * b
    else if ((a * b) <= 2.3d-20) then
        tmp = x * y
    else if ((a * b) <= 2d-14) then
        tmp = z * t
    else if ((a * b) <= 5d-13) then
        tmp = x * y
    else if ((a * b) <= 5.1d-12) then
        tmp = a * b
    else if ((a * b) <= 2d-9) then
        tmp = x * y
    else if ((a * b) <= 23000.0d0) then
        tmp = a * b
    else if ((a * b) <= 43000.0d0) then
        tmp = x * y
    else if ((a * b) <= 2.1d+49) then
        tmp = t_1
    else if ((a * b) <= 2.6d+61) then
        tmp = x * y
    else if ((a * b) <= 7.5d+70) then
        tmp = a * b
    else if ((a * b) <= 1.25d+71) then
        tmp = x * y
    else if ((a * b) <= 2.5d+91) then
        tmp = t_1
    else if ((a * b) <= 2.6d+91) then
        tmp = x * y
    else if ((a * b) <= 6d+99) then
        tmp = t_1
    else if ((a * b) <= 3d+100) then
        tmp = x * y
    else if ((a * b) <= 3.3d+111) then
        tmp = z * t
    else if ((a * b) <= 3.1d+114) then
        tmp = x * y
    else if ((a * b) <= 9.5d+133) then
        tmp = t_1
    else if ((a * b) <= 2.5d+134) then
        tmp = x * y
    else if ((a * b) <= 5.2d+151) then
        tmp = t_1
    else if ((a * b) <= 6.4d+156) then
        tmp = x * y
    else if ((a * b) <= 3.8d+160) then
        tmp = z * t
    else if ((a * b) <= 1.25d+162) then
        tmp = x * y
    else if ((a * b) <= 2.3d+201) then
        tmp = a * b
    else if ((a * b) <= 2.42d+201) then
        tmp = x * y
    else if ((a * b) <= 1.3d+223) then
        tmp = a * b
    else if ((a * b) <= 1.7d+223) then
        tmp = x * y
    else if ((a * b) <= 9d+236) then
        tmp = t_1
    else if ((a * b) <= 1.2d+246) then
        tmp = x * y
    else
        tmp = a * b
    end if
    code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
	double t_1 = (a * b) + (z * t);
	double tmp;
	if ((a * b) <= 1e-323) {
		tmp = t_1;
	} else if ((a * b) <= 1.45e-234) {
		tmp = x * y;
	} else if ((a * b) <= 1e-232) {
		tmp = z * t;
	} else if ((a * b) <= 9.5e-216) {
		tmp = x * y;
	} else if ((a * b) <= 2.2e-196) {
		tmp = z * t;
	} else if ((a * b) <= 4.2e-195) {
		tmp = x * y;
	} else if ((a * b) <= 6.6e-175) {
		tmp = z * t;
	} else if ((a * b) <= 1.5e-167) {
		tmp = x * y;
	} else if ((a * b) <= 2.5e-150) {
		tmp = z * t;
	} else if ((a * b) <= 1.35e-41) {
		tmp = x * y;
	} else if ((a * b) <= 3.2e-22) {
		tmp = t_1;
	} else if ((a * b) <= 1.5e-21) {
		tmp = x * y;
	} else if ((a * b) <= 2.45e-21) {
		tmp = a * b;
	} else if ((a * b) <= 2.3e-20) {
		tmp = x * y;
	} else if ((a * b) <= 2e-14) {
		tmp = z * t;
	} else if ((a * b) <= 5e-13) {
		tmp = x * y;
	} else if ((a * b) <= 5.1e-12) {
		tmp = a * b;
	} else if ((a * b) <= 2e-9) {
		tmp = x * y;
	} else if ((a * b) <= 23000.0) {
		tmp = a * b;
	} else if ((a * b) <= 43000.0) {
		tmp = x * y;
	} else if ((a * b) <= 2.1e+49) {
		tmp = t_1;
	} else if ((a * b) <= 2.6e+61) {
		tmp = x * y;
	} else if ((a * b) <= 7.5e+70) {
		tmp = a * b;
	} else if ((a * b) <= 1.25e+71) {
		tmp = x * y;
	} else if ((a * b) <= 2.5e+91) {
		tmp = t_1;
	} else if ((a * b) <= 2.6e+91) {
		tmp = x * y;
	} else if ((a * b) <= 6e+99) {
		tmp = t_1;
	} else if ((a * b) <= 3e+100) {
		tmp = x * y;
	} else if ((a * b) <= 3.3e+111) {
		tmp = z * t;
	} else if ((a * b) <= 3.1e+114) {
		tmp = x * y;
	} else if ((a * b) <= 9.5e+133) {
		tmp = t_1;
	} else if ((a * b) <= 2.5e+134) {
		tmp = x * y;
	} else if ((a * b) <= 5.2e+151) {
		tmp = t_1;
	} else if ((a * b) <= 6.4e+156) {
		tmp = x * y;
	} else if ((a * b) <= 3.8e+160) {
		tmp = z * t;
	} else if ((a * b) <= 1.25e+162) {
		tmp = x * y;
	} else if ((a * b) <= 2.3e+201) {
		tmp = a * b;
	} else if ((a * b) <= 2.42e+201) {
		tmp = x * y;
	} else if ((a * b) <= 1.3e+223) {
		tmp = a * b;
	} else if ((a * b) <= 1.7e+223) {
		tmp = x * y;
	} else if ((a * b) <= 9e+236) {
		tmp = t_1;
	} else if ((a * b) <= 1.2e+246) {
		tmp = x * y;
	} else {
		tmp = a * b;
	}
	return tmp;
}
def code(x, y, z, t, a, b):
	t_1 = (a * b) + (z * t)
	tmp = 0
	if (a * b) <= 1e-323:
		tmp = t_1
	elif (a * b) <= 1.45e-234:
		tmp = x * y
	elif (a * b) <= 1e-232:
		tmp = z * t
	elif (a * b) <= 9.5e-216:
		tmp = x * y
	elif (a * b) <= 2.2e-196:
		tmp = z * t
	elif (a * b) <= 4.2e-195:
		tmp = x * y
	elif (a * b) <= 6.6e-175:
		tmp = z * t
	elif (a * b) <= 1.5e-167:
		tmp = x * y
	elif (a * b) <= 2.5e-150:
		tmp = z * t
	elif (a * b) <= 1.35e-41:
		tmp = x * y
	elif (a * b) <= 3.2e-22:
		tmp = t_1
	elif (a * b) <= 1.5e-21:
		tmp = x * y
	elif (a * b) <= 2.45e-21:
		tmp = a * b
	elif (a * b) <= 2.3e-20:
		tmp = x * y
	elif (a * b) <= 2e-14:
		tmp = z * t
	elif (a * b) <= 5e-13:
		tmp = x * y
	elif (a * b) <= 5.1e-12:
		tmp = a * b
	elif (a * b) <= 2e-9:
		tmp = x * y
	elif (a * b) <= 23000.0:
		tmp = a * b
	elif (a * b) <= 43000.0:
		tmp = x * y
	elif (a * b) <= 2.1e+49:
		tmp = t_1
	elif (a * b) <= 2.6e+61:
		tmp = x * y
	elif (a * b) <= 7.5e+70:
		tmp = a * b
	elif (a * b) <= 1.25e+71:
		tmp = x * y
	elif (a * b) <= 2.5e+91:
		tmp = t_1
	elif (a * b) <= 2.6e+91:
		tmp = x * y
	elif (a * b) <= 6e+99:
		tmp = t_1
	elif (a * b) <= 3e+100:
		tmp = x * y
	elif (a * b) <= 3.3e+111:
		tmp = z * t
	elif (a * b) <= 3.1e+114:
		tmp = x * y
	elif (a * b) <= 9.5e+133:
		tmp = t_1
	elif (a * b) <= 2.5e+134:
		tmp = x * y
	elif (a * b) <= 5.2e+151:
		tmp = t_1
	elif (a * b) <= 6.4e+156:
		tmp = x * y
	elif (a * b) <= 3.8e+160:
		tmp = z * t
	elif (a * b) <= 1.25e+162:
		tmp = x * y
	elif (a * b) <= 2.3e+201:
		tmp = a * b
	elif (a * b) <= 2.42e+201:
		tmp = x * y
	elif (a * b) <= 1.3e+223:
		tmp = a * b
	elif (a * b) <= 1.7e+223:
		tmp = x * y
	elif (a * b) <= 9e+236:
		tmp = t_1
	elif (a * b) <= 1.2e+246:
		tmp = x * y
	else:
		tmp = a * b
	return tmp
function code(x, y, z, t, a, b)
	t_1 = Float64(Float64(a * b) + Float64(z * t))
	tmp = 0.0
	if (Float64(a * b) <= 1e-323)
		tmp = t_1;
	elseif (Float64(a * b) <= 1.45e-234)
		tmp = Float64(x * y);
	elseif (Float64(a * b) <= 1e-232)
		tmp = Float64(z * t);
	elseif (Float64(a * b) <= 9.5e-216)
		tmp = Float64(x * y);
	elseif (Float64(a * b) <= 2.2e-196)
		tmp = Float64(z * t);
	elseif (Float64(a * b) <= 4.2e-195)
		tmp = Float64(x * y);
	elseif (Float64(a * b) <= 6.6e-175)
		tmp = Float64(z * t);
	elseif (Float64(a * b) <= 1.5e-167)
		tmp = Float64(x * y);
	elseif (Float64(a * b) <= 2.5e-150)
		tmp = Float64(z * t);
	elseif (Float64(a * b) <= 1.35e-41)
		tmp = Float64(x * y);
	elseif (Float64(a * b) <= 3.2e-22)
		tmp = t_1;
	elseif (Float64(a * b) <= 1.5e-21)
		tmp = Float64(x * y);
	elseif (Float64(a * b) <= 2.45e-21)
		tmp = Float64(a * b);
	elseif (Float64(a * b) <= 2.3e-20)
		tmp = Float64(x * y);
	elseif (Float64(a * b) <= 2e-14)
		tmp = Float64(z * t);
	elseif (Float64(a * b) <= 5e-13)
		tmp = Float64(x * y);
	elseif (Float64(a * b) <= 5.1e-12)
		tmp = Float64(a * b);
	elseif (Float64(a * b) <= 2e-9)
		tmp = Float64(x * y);
	elseif (Float64(a * b) <= 23000.0)
		tmp = Float64(a * b);
	elseif (Float64(a * b) <= 43000.0)
		tmp = Float64(x * y);
	elseif (Float64(a * b) <= 2.1e+49)
		tmp = t_1;
	elseif (Float64(a * b) <= 2.6e+61)
		tmp = Float64(x * y);
	elseif (Float64(a * b) <= 7.5e+70)
		tmp = Float64(a * b);
	elseif (Float64(a * b) <= 1.25e+71)
		tmp = Float64(x * y);
	elseif (Float64(a * b) <= 2.5e+91)
		tmp = t_1;
	elseif (Float64(a * b) <= 2.6e+91)
		tmp = Float64(x * y);
	elseif (Float64(a * b) <= 6e+99)
		tmp = t_1;
	elseif (Float64(a * b) <= 3e+100)
		tmp = Float64(x * y);
	elseif (Float64(a * b) <= 3.3e+111)
		tmp = Float64(z * t);
	elseif (Float64(a * b) <= 3.1e+114)
		tmp = Float64(x * y);
	elseif (Float64(a * b) <= 9.5e+133)
		tmp = t_1;
	elseif (Float64(a * b) <= 2.5e+134)
		tmp = Float64(x * y);
	elseif (Float64(a * b) <= 5.2e+151)
		tmp = t_1;
	elseif (Float64(a * b) <= 6.4e+156)
		tmp = Float64(x * y);
	elseif (Float64(a * b) <= 3.8e+160)
		tmp = Float64(z * t);
	elseif (Float64(a * b) <= 1.25e+162)
		tmp = Float64(x * y);
	elseif (Float64(a * b) <= 2.3e+201)
		tmp = Float64(a * b);
	elseif (Float64(a * b) <= 2.42e+201)
		tmp = Float64(x * y);
	elseif (Float64(a * b) <= 1.3e+223)
		tmp = Float64(a * b);
	elseif (Float64(a * b) <= 1.7e+223)
		tmp = Float64(x * y);
	elseif (Float64(a * b) <= 9e+236)
		tmp = t_1;
	elseif (Float64(a * b) <= 1.2e+246)
		tmp = Float64(x * y);
	else
		tmp = Float64(a * b);
	end
	return tmp
end
function tmp_2 = code(x, y, z, t, a, b)
	t_1 = (a * b) + (z * t);
	tmp = 0.0;
	if ((a * b) <= 1e-323)
		tmp = t_1;
	elseif ((a * b) <= 1.45e-234)
		tmp = x * y;
	elseif ((a * b) <= 1e-232)
		tmp = z * t;
	elseif ((a * b) <= 9.5e-216)
		tmp = x * y;
	elseif ((a * b) <= 2.2e-196)
		tmp = z * t;
	elseif ((a * b) <= 4.2e-195)
		tmp = x * y;
	elseif ((a * b) <= 6.6e-175)
		tmp = z * t;
	elseif ((a * b) <= 1.5e-167)
		tmp = x * y;
	elseif ((a * b) <= 2.5e-150)
		tmp = z * t;
	elseif ((a * b) <= 1.35e-41)
		tmp = x * y;
	elseif ((a * b) <= 3.2e-22)
		tmp = t_1;
	elseif ((a * b) <= 1.5e-21)
		tmp = x * y;
	elseif ((a * b) <= 2.45e-21)
		tmp = a * b;
	elseif ((a * b) <= 2.3e-20)
		tmp = x * y;
	elseif ((a * b) <= 2e-14)
		tmp = z * t;
	elseif ((a * b) <= 5e-13)
		tmp = x * y;
	elseif ((a * b) <= 5.1e-12)
		tmp = a * b;
	elseif ((a * b) <= 2e-9)
		tmp = x * y;
	elseif ((a * b) <= 23000.0)
		tmp = a * b;
	elseif ((a * b) <= 43000.0)
		tmp = x * y;
	elseif ((a * b) <= 2.1e+49)
		tmp = t_1;
	elseif ((a * b) <= 2.6e+61)
		tmp = x * y;
	elseif ((a * b) <= 7.5e+70)
		tmp = a * b;
	elseif ((a * b) <= 1.25e+71)
		tmp = x * y;
	elseif ((a * b) <= 2.5e+91)
		tmp = t_1;
	elseif ((a * b) <= 2.6e+91)
		tmp = x * y;
	elseif ((a * b) <= 6e+99)
		tmp = t_1;
	elseif ((a * b) <= 3e+100)
		tmp = x * y;
	elseif ((a * b) <= 3.3e+111)
		tmp = z * t;
	elseif ((a * b) <= 3.1e+114)
		tmp = x * y;
	elseif ((a * b) <= 9.5e+133)
		tmp = t_1;
	elseif ((a * b) <= 2.5e+134)
		tmp = x * y;
	elseif ((a * b) <= 5.2e+151)
		tmp = t_1;
	elseif ((a * b) <= 6.4e+156)
		tmp = x * y;
	elseif ((a * b) <= 3.8e+160)
		tmp = z * t;
	elseif ((a * b) <= 1.25e+162)
		tmp = x * y;
	elseif ((a * b) <= 2.3e+201)
		tmp = a * b;
	elseif ((a * b) <= 2.42e+201)
		tmp = x * y;
	elseif ((a * b) <= 1.3e+223)
		tmp = a * b;
	elseif ((a * b) <= 1.7e+223)
		tmp = x * y;
	elseif ((a * b) <= 9e+236)
		tmp = t_1;
	elseif ((a * b) <= 1.2e+246)
		tmp = x * y;
	else
		tmp = a * b;
	end
	tmp_2 = tmp;
end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(a * b), $MachinePrecision] + N[(z * t), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[(a * b), $MachinePrecision], 1e-323], t$95$1, If[LessEqual[N[(a * b), $MachinePrecision], 1.45e-234], N[(x * y), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 1e-232], N[(z * t), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 9.5e-216], N[(x * y), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 2.2e-196], N[(z * t), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 4.2e-195], N[(x * y), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 6.6e-175], N[(z * t), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 1.5e-167], N[(x * y), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 2.5e-150], N[(z * t), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 1.35e-41], N[(x * y), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 3.2e-22], t$95$1, If[LessEqual[N[(a * b), $MachinePrecision], 1.5e-21], N[(x * y), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 2.45e-21], N[(a * b), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 2.3e-20], N[(x * y), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 2e-14], N[(z * t), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 5e-13], N[(x * y), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 5.1e-12], N[(a * b), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 2e-9], N[(x * y), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 23000.0], N[(a * b), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 43000.0], N[(x * y), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 2.1e+49], t$95$1, If[LessEqual[N[(a * b), $MachinePrecision], 2.6e+61], N[(x * y), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 7.5e+70], N[(a * b), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 1.25e+71], N[(x * y), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 2.5e+91], t$95$1, If[LessEqual[N[(a * b), $MachinePrecision], 2.6e+91], N[(x * y), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 6e+99], t$95$1, If[LessEqual[N[(a * b), $MachinePrecision], 3e+100], N[(x * y), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 3.3e+111], N[(z * t), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 3.1e+114], N[(x * y), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 9.5e+133], t$95$1, If[LessEqual[N[(a * b), $MachinePrecision], 2.5e+134], N[(x * y), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 5.2e+151], t$95$1, If[LessEqual[N[(a * b), $MachinePrecision], 6.4e+156], N[(x * y), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 3.8e+160], N[(z * t), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 1.25e+162], N[(x * y), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 2.3e+201], N[(a * b), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 2.42e+201], N[(x * y), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 1.3e+223], N[(a * b), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 1.7e+223], N[(x * y), $MachinePrecision], If[LessEqual[N[(a * b), $MachinePrecision], 9e+236], t$95$1, If[LessEqual[N[(a * b), $MachinePrecision], 1.2e+246], N[(x * y), $MachinePrecision], N[(a * b), $MachinePrecision]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_1 := a \cdot b + z \cdot t\\
\mathbf{if}\;a \cdot b \leq 10^{-323}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;a \cdot b \leq 1.45 \cdot 10^{-234}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;a \cdot b \leq 10^{-232}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;a \cdot b \leq 9.5 \cdot 10^{-216}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;a \cdot b \leq 2.2 \cdot 10^{-196}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;a \cdot b \leq 4.2 \cdot 10^{-195}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;a \cdot b \leq 6.6 \cdot 10^{-175}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;a \cdot b \leq 1.5 \cdot 10^{-167}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;a \cdot b \leq 2.5 \cdot 10^{-150}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;a \cdot b \leq 1.35 \cdot 10^{-41}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;a \cdot b \leq 3.2 \cdot 10^{-22}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;a \cdot b \leq 1.5 \cdot 10^{-21}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;a \cdot b \leq 2.45 \cdot 10^{-21}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;a \cdot b \leq 2.3 \cdot 10^{-20}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;a \cdot b \leq 2 \cdot 10^{-14}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;a \cdot b \leq 5 \cdot 10^{-13}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;a \cdot b \leq 5.1 \cdot 10^{-12}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;a \cdot b \leq 2 \cdot 10^{-9}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;a \cdot b \leq 23000:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;a \cdot b \leq 43000:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;a \cdot b \leq 2.1 \cdot 10^{+49}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;a \cdot b \leq 2.6 \cdot 10^{+61}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;a \cdot b \leq 7.5 \cdot 10^{+70}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;a \cdot b \leq 1.25 \cdot 10^{+71}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;a \cdot b \leq 2.5 \cdot 10^{+91}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;a \cdot b \leq 2.6 \cdot 10^{+91}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;a \cdot b \leq 6 \cdot 10^{+99}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;a \cdot b \leq 3 \cdot 10^{+100}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;a \cdot b \leq 3.3 \cdot 10^{+111}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;a \cdot b \leq 3.1 \cdot 10^{+114}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;a \cdot b \leq 9.5 \cdot 10^{+133}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;a \cdot b \leq 2.5 \cdot 10^{+134}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;a \cdot b \leq 5.2 \cdot 10^{+151}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;a \cdot b \leq 6.4 \cdot 10^{+156}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;a \cdot b \leq 3.8 \cdot 10^{+160}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;a \cdot b \leq 1.25 \cdot 10^{+162}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;a \cdot b \leq 2.3 \cdot 10^{+201}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;a \cdot b \leq 2.42 \cdot 10^{+201}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;a \cdot b \leq 1.3 \cdot 10^{+223}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;a \cdot b \leq 1.7 \cdot 10^{+223}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;a \cdot b \leq 9 \cdot 10^{+236}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;a \cdot b \leq 1.2 \cdot 10^{+246}:\\
\;\;\;\;x \cdot y\\

\mathbf{else}:\\
\;\;\;\;a \cdot b\\


\end{array}
\end{array}
Derivation
  1. Split input into 4 regimes
  2. if (*.f64 a b) < 9.88131e-324 or 1.35e-41 < (*.f64 a b) < 3.19999999999999987e-22 or 43000 < (*.f64 a b) < 2.10000000000000011e49 or 1.24999999999999993e71 < (*.f64 a b) < 2.5000000000000001e91 or 2.6e91 < (*.f64 a b) < 6.00000000000000029e99 or 3.1e114 < (*.f64 a b) < 9.49999999999999996e133 or 2.4999999999999999e134 < (*.f64 a b) < 5.20000000000000026e151 or 1.6999999999999999e223 < (*.f64 a b) < 9.00000000000000037e236

    1. Initial program 95.6%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in x around 0 74.5%

      \[\leadsto \color{blue}{a \cdot b + t \cdot z} \]

    if 9.88131e-324 < (*.f64 a b) < 1.45000000000000008e-234 or 1.00000000000000002e-232 < (*.f64 a b) < 9.49999999999999943e-216 or 2.20000000000000015e-196 < (*.f64 a b) < 4.2e-195 or 6.59999999999999997e-175 < (*.f64 a b) < 1.4999999999999999e-167 or 2.49999999999999995e-150 < (*.f64 a b) < 1.35e-41 or 3.19999999999999987e-22 < (*.f64 a b) < 1.49999999999999996e-21 or 2.4500000000000001e-21 < (*.f64 a b) < 2.2999999999999999e-20 or 2e-14 < (*.f64 a b) < 4.9999999999999999e-13 or 5.09999999999999968e-12 < (*.f64 a b) < 2.00000000000000012e-9 or 23000 < (*.f64 a b) < 43000 or 2.10000000000000011e49 < (*.f64 a b) < 2.59999999999999973e61 or 7.50000000000000031e70 < (*.f64 a b) < 1.24999999999999993e71 or 2.5000000000000001e91 < (*.f64 a b) < 2.6e91 or 6.00000000000000029e99 < (*.f64 a b) < 2.99999999999999985e100 or 3.3000000000000001e111 < (*.f64 a b) < 3.1e114 or 9.49999999999999996e133 < (*.f64 a b) < 2.4999999999999999e134 or 5.20000000000000026e151 < (*.f64 a b) < 6.40000000000000005e156 or 3.80000000000000012e160 < (*.f64 a b) < 1.2499999999999999e162 or 2.3000000000000001e201 < (*.f64 a b) < 2.42e201 or 1.3000000000000001e223 < (*.f64 a b) < 1.6999999999999999e223 or 9.00000000000000037e236 < (*.f64 a b) < 1.2e246

    1. Initial program 100.0%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in x around inf 89.5%

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

    if 1.45000000000000008e-234 < (*.f64 a b) < 1.00000000000000002e-232 or 9.49999999999999943e-216 < (*.f64 a b) < 2.20000000000000015e-196 or 4.2e-195 < (*.f64 a b) < 6.59999999999999997e-175 or 1.4999999999999999e-167 < (*.f64 a b) < 2.49999999999999995e-150 or 2.2999999999999999e-20 < (*.f64 a b) < 2e-14 or 2.99999999999999985e100 < (*.f64 a b) < 3.3000000000000001e111 or 6.40000000000000005e156 < (*.f64 a b) < 3.80000000000000012e160

    1. Initial program 100.0%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in z around inf 100.0%

      \[\leadsto \color{blue}{t \cdot z} \]

    if 1.49999999999999996e-21 < (*.f64 a b) < 2.4500000000000001e-21 or 4.9999999999999999e-13 < (*.f64 a b) < 5.09999999999999968e-12 or 2.00000000000000012e-9 < (*.f64 a b) < 23000 or 2.59999999999999973e61 < (*.f64 a b) < 7.50000000000000031e70 or 1.2499999999999999e162 < (*.f64 a b) < 2.3000000000000001e201 or 2.42e201 < (*.f64 a b) < 1.3000000000000001e223 or 1.2e246 < (*.f64 a b)

    1. Initial program 94.7%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in a around inf 99.9%

      \[\leadsto \color{blue}{a \cdot b} \]
  3. Recombined 4 regimes into one program.
  4. Final simplification82.0%

    \[\leadsto \begin{array}{l} \mathbf{if}\;a \cdot b \leq 10^{-323}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;a \cdot b \leq 1.45 \cdot 10^{-234}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 10^{-232}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;a \cdot b \leq 9.5 \cdot 10^{-216}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 2.2 \cdot 10^{-196}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;a \cdot b \leq 4.2 \cdot 10^{-195}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 6.6 \cdot 10^{-175}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;a \cdot b \leq 1.5 \cdot 10^{-167}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 2.5 \cdot 10^{-150}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;a \cdot b \leq 1.35 \cdot 10^{-41}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 3.2 \cdot 10^{-22}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;a \cdot b \leq 1.5 \cdot 10^{-21}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 2.45 \cdot 10^{-21}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;a \cdot b \leq 2.3 \cdot 10^{-20}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 2 \cdot 10^{-14}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;a \cdot b \leq 5 \cdot 10^{-13}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 5.1 \cdot 10^{-12}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;a \cdot b \leq 2 \cdot 10^{-9}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 23000:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;a \cdot b \leq 43000:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 2.1 \cdot 10^{+49}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;a \cdot b \leq 2.6 \cdot 10^{+61}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 7.5 \cdot 10^{+70}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;a \cdot b \leq 1.25 \cdot 10^{+71}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 2.5 \cdot 10^{+91}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;a \cdot b \leq 2.6 \cdot 10^{+91}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 6 \cdot 10^{+99}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;a \cdot b \leq 3 \cdot 10^{+100}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 3.3 \cdot 10^{+111}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;a \cdot b \leq 3.1 \cdot 10^{+114}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 9.5 \cdot 10^{+133}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;a \cdot b \leq 2.5 \cdot 10^{+134}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 5.2 \cdot 10^{+151}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;a \cdot b \leq 6.4 \cdot 10^{+156}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 3.8 \cdot 10^{+160}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;a \cdot b \leq 1.25 \cdot 10^{+162}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 2.3 \cdot 10^{+201}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;a \cdot b \leq 2.42 \cdot 10^{+201}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 1.3 \cdot 10^{+223}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;a \cdot b \leq 1.7 \cdot 10^{+223}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;a \cdot b \leq 9 \cdot 10^{+236}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;a \cdot b \leq 1.2 \cdot 10^{+246}:\\ \;\;\;\;x \cdot y\\ \mathbf{else}:\\ \;\;\;\;a \cdot b\\ \end{array} \]
  5. Add Preprocessing

Alternative 5: 81.3% accurate, 0.1× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_1 := x \cdot y + a \cdot b\\ t_2 := z \cdot \left(t + y \cdot \frac{x}{z}\right)\\ t_3 := a \cdot b + z \cdot t\\ t_4 := x \cdot y + z \cdot t\\ t_5 := b \cdot \left(a + \frac{z \cdot t}{b}\right)\\ \mathbf{if}\;x \cdot y \leq -4 \cdot 10^{+111}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-17}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-19}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq -5 \cdot 10^{-48}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-53}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq -5 \cdot 10^{-58}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;x \cdot y \leq -4 \cdot 10^{-168}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-174}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-182}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;x \cdot y \leq -2 \cdot 10^{-190}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq -4 \cdot 10^{-237}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;x \cdot y \leq 10^{-165}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-119}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{-107}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-61}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;x \cdot y \leq 10^{-38}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-37}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{-22}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+15}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+43}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;x \cdot y \leq 10^{+62}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq 7.5 \cdot 10^{+84}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+91}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+104}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+113}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq 10^{+138}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+164}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq 1.3 \cdot 10^{+201}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+208}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+274}:\\ \;\;\;\;t\_4\\ \mathbf{else}:\\ \;\;\;\;t\_2\\ \end{array} \end{array} \]
(FPCore (x y z t a b)
 :precision binary64
 (let* ((t_1 (+ (* x y) (* a b)))
        (t_2 (* z (+ t (* y (/ x z)))))
        (t_3 (+ (* a b) (* z t)))
        (t_4 (+ (* x y) (* z t)))
        (t_5 (* b (+ a (/ (* z t) b)))))
   (if (<= (* x y) -4e+111)
     t_1
     (if (<= (* x y) -1e-17)
       t_3
       (if (<= (* x y) -1e-19)
         (* x y)
         (if (<= (* x y) -5e-48)
           t_3
           (if (<= (* x y) -1e-53)
             t_1
             (if (<= (* x y) -5e-58)
               t_4
               (if (<= (* x y) -4e-168)
                 t_3
                 (if (<= (* x y) -1e-174)
                   t_4
                   (if (<= (* x y) -1e-182)
                     t_3
                     (if (<= (* x y) -2e-190)
                       t_1
                       (if (<= (* x y) -4e-237)
                         t_5
                         (if (<= (* x y) 1e-165)
                           t_3
                           (if (<= (* x y) 5e-119)
                             t_4
                             (if (<= (* x y) 2e-107)
                               t_1
                               (if (<= (* x y) 5e-61)
                                 t_3
                                 (if (<= (* x y) 1e-38)
                                   t_4
                                   (if (<= (* x y) 5e-37)
                                     t_5
                                     (if (<= (* x y) 2e-22)
                                       t_3
                                       (if (<= (* x y) 2e+15)
                                         t_5
                                         (if (<= (* x y) 5e+43)
                                           t_4
                                           (if (<= (* x y) 1e+62)
                                             t_1
                                             (if (<= (* x y) 7.5e+84)
                                               t_3
                                               (if (<= (* x y) 5e+91)
                                                 t_4
                                                 (if (<= (* x y) 5e+104)
                                                   t_2
                                                   (if (<= (* x y) 5e+113)
                                                     t_1
                                                     (if (<= (* x y) 1e+138)
                                                       t_3
                                                       (if (<= (* x y) 5e+164)
                                                         t_1
                                                         (if (<=
                                                              (* x y)
                                                              1.3e+201)
                                                           t_4
                                                           (if (<=
                                                                (* x y)
                                                                2e+208)
                                                             t_1
                                                             (if (<=
                                                                  (* x y)
                                                                  2e+274)
                                                               t_4
                                                               t_2))))))))))))))))))))))))))))))))
double code(double x, double y, double z, double t, double a, double b) {
	double t_1 = (x * y) + (a * b);
	double t_2 = z * (t + (y * (x / z)));
	double t_3 = (a * b) + (z * t);
	double t_4 = (x * y) + (z * t);
	double t_5 = b * (a + ((z * t) / b));
	double tmp;
	if ((x * y) <= -4e+111) {
		tmp = t_1;
	} else if ((x * y) <= -1e-17) {
		tmp = t_3;
	} else if ((x * y) <= -1e-19) {
		tmp = x * y;
	} else if ((x * y) <= -5e-48) {
		tmp = t_3;
	} else if ((x * y) <= -1e-53) {
		tmp = t_1;
	} else if ((x * y) <= -5e-58) {
		tmp = t_4;
	} else if ((x * y) <= -4e-168) {
		tmp = t_3;
	} else if ((x * y) <= -1e-174) {
		tmp = t_4;
	} else if ((x * y) <= -1e-182) {
		tmp = t_3;
	} else if ((x * y) <= -2e-190) {
		tmp = t_1;
	} else if ((x * y) <= -4e-237) {
		tmp = t_5;
	} else if ((x * y) <= 1e-165) {
		tmp = t_3;
	} else if ((x * y) <= 5e-119) {
		tmp = t_4;
	} else if ((x * y) <= 2e-107) {
		tmp = t_1;
	} else if ((x * y) <= 5e-61) {
		tmp = t_3;
	} else if ((x * y) <= 1e-38) {
		tmp = t_4;
	} else if ((x * y) <= 5e-37) {
		tmp = t_5;
	} else if ((x * y) <= 2e-22) {
		tmp = t_3;
	} else if ((x * y) <= 2e+15) {
		tmp = t_5;
	} else if ((x * y) <= 5e+43) {
		tmp = t_4;
	} else if ((x * y) <= 1e+62) {
		tmp = t_1;
	} else if ((x * y) <= 7.5e+84) {
		tmp = t_3;
	} else if ((x * y) <= 5e+91) {
		tmp = t_4;
	} else if ((x * y) <= 5e+104) {
		tmp = t_2;
	} else if ((x * y) <= 5e+113) {
		tmp = t_1;
	} else if ((x * y) <= 1e+138) {
		tmp = t_3;
	} else if ((x * y) <= 5e+164) {
		tmp = t_1;
	} else if ((x * y) <= 1.3e+201) {
		tmp = t_4;
	} else if ((x * y) <= 2e+208) {
		tmp = t_1;
	} else if ((x * y) <= 2e+274) {
		tmp = t_4;
	} else {
		tmp = t_2;
	}
	return tmp;
}
real(8) function code(x, y, z, t, a, b)
    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), intent (in) :: b
    real(8) :: t_1
    real(8) :: t_2
    real(8) :: t_3
    real(8) :: t_4
    real(8) :: t_5
    real(8) :: tmp
    t_1 = (x * y) + (a * b)
    t_2 = z * (t + (y * (x / z)))
    t_3 = (a * b) + (z * t)
    t_4 = (x * y) + (z * t)
    t_5 = b * (a + ((z * t) / b))
    if ((x * y) <= (-4d+111)) then
        tmp = t_1
    else if ((x * y) <= (-1d-17)) then
        tmp = t_3
    else if ((x * y) <= (-1d-19)) then
        tmp = x * y
    else if ((x * y) <= (-5d-48)) then
        tmp = t_3
    else if ((x * y) <= (-1d-53)) then
        tmp = t_1
    else if ((x * y) <= (-5d-58)) then
        tmp = t_4
    else if ((x * y) <= (-4d-168)) then
        tmp = t_3
    else if ((x * y) <= (-1d-174)) then
        tmp = t_4
    else if ((x * y) <= (-1d-182)) then
        tmp = t_3
    else if ((x * y) <= (-2d-190)) then
        tmp = t_1
    else if ((x * y) <= (-4d-237)) then
        tmp = t_5
    else if ((x * y) <= 1d-165) then
        tmp = t_3
    else if ((x * y) <= 5d-119) then
        tmp = t_4
    else if ((x * y) <= 2d-107) then
        tmp = t_1
    else if ((x * y) <= 5d-61) then
        tmp = t_3
    else if ((x * y) <= 1d-38) then
        tmp = t_4
    else if ((x * y) <= 5d-37) then
        tmp = t_5
    else if ((x * y) <= 2d-22) then
        tmp = t_3
    else if ((x * y) <= 2d+15) then
        tmp = t_5
    else if ((x * y) <= 5d+43) then
        tmp = t_4
    else if ((x * y) <= 1d+62) then
        tmp = t_1
    else if ((x * y) <= 7.5d+84) then
        tmp = t_3
    else if ((x * y) <= 5d+91) then
        tmp = t_4
    else if ((x * y) <= 5d+104) then
        tmp = t_2
    else if ((x * y) <= 5d+113) then
        tmp = t_1
    else if ((x * y) <= 1d+138) then
        tmp = t_3
    else if ((x * y) <= 5d+164) then
        tmp = t_1
    else if ((x * y) <= 1.3d+201) then
        tmp = t_4
    else if ((x * y) <= 2d+208) then
        tmp = t_1
    else if ((x * y) <= 2d+274) then
        tmp = t_4
    else
        tmp = t_2
    end if
    code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
	double t_1 = (x * y) + (a * b);
	double t_2 = z * (t + (y * (x / z)));
	double t_3 = (a * b) + (z * t);
	double t_4 = (x * y) + (z * t);
	double t_5 = b * (a + ((z * t) / b));
	double tmp;
	if ((x * y) <= -4e+111) {
		tmp = t_1;
	} else if ((x * y) <= -1e-17) {
		tmp = t_3;
	} else if ((x * y) <= -1e-19) {
		tmp = x * y;
	} else if ((x * y) <= -5e-48) {
		tmp = t_3;
	} else if ((x * y) <= -1e-53) {
		tmp = t_1;
	} else if ((x * y) <= -5e-58) {
		tmp = t_4;
	} else if ((x * y) <= -4e-168) {
		tmp = t_3;
	} else if ((x * y) <= -1e-174) {
		tmp = t_4;
	} else if ((x * y) <= -1e-182) {
		tmp = t_3;
	} else if ((x * y) <= -2e-190) {
		tmp = t_1;
	} else if ((x * y) <= -4e-237) {
		tmp = t_5;
	} else if ((x * y) <= 1e-165) {
		tmp = t_3;
	} else if ((x * y) <= 5e-119) {
		tmp = t_4;
	} else if ((x * y) <= 2e-107) {
		tmp = t_1;
	} else if ((x * y) <= 5e-61) {
		tmp = t_3;
	} else if ((x * y) <= 1e-38) {
		tmp = t_4;
	} else if ((x * y) <= 5e-37) {
		tmp = t_5;
	} else if ((x * y) <= 2e-22) {
		tmp = t_3;
	} else if ((x * y) <= 2e+15) {
		tmp = t_5;
	} else if ((x * y) <= 5e+43) {
		tmp = t_4;
	} else if ((x * y) <= 1e+62) {
		tmp = t_1;
	} else if ((x * y) <= 7.5e+84) {
		tmp = t_3;
	} else if ((x * y) <= 5e+91) {
		tmp = t_4;
	} else if ((x * y) <= 5e+104) {
		tmp = t_2;
	} else if ((x * y) <= 5e+113) {
		tmp = t_1;
	} else if ((x * y) <= 1e+138) {
		tmp = t_3;
	} else if ((x * y) <= 5e+164) {
		tmp = t_1;
	} else if ((x * y) <= 1.3e+201) {
		tmp = t_4;
	} else if ((x * y) <= 2e+208) {
		tmp = t_1;
	} else if ((x * y) <= 2e+274) {
		tmp = t_4;
	} else {
		tmp = t_2;
	}
	return tmp;
}
def code(x, y, z, t, a, b):
	t_1 = (x * y) + (a * b)
	t_2 = z * (t + (y * (x / z)))
	t_3 = (a * b) + (z * t)
	t_4 = (x * y) + (z * t)
	t_5 = b * (a + ((z * t) / b))
	tmp = 0
	if (x * y) <= -4e+111:
		tmp = t_1
	elif (x * y) <= -1e-17:
		tmp = t_3
	elif (x * y) <= -1e-19:
		tmp = x * y
	elif (x * y) <= -5e-48:
		tmp = t_3
	elif (x * y) <= -1e-53:
		tmp = t_1
	elif (x * y) <= -5e-58:
		tmp = t_4
	elif (x * y) <= -4e-168:
		tmp = t_3
	elif (x * y) <= -1e-174:
		tmp = t_4
	elif (x * y) <= -1e-182:
		tmp = t_3
	elif (x * y) <= -2e-190:
		tmp = t_1
	elif (x * y) <= -4e-237:
		tmp = t_5
	elif (x * y) <= 1e-165:
		tmp = t_3
	elif (x * y) <= 5e-119:
		tmp = t_4
	elif (x * y) <= 2e-107:
		tmp = t_1
	elif (x * y) <= 5e-61:
		tmp = t_3
	elif (x * y) <= 1e-38:
		tmp = t_4
	elif (x * y) <= 5e-37:
		tmp = t_5
	elif (x * y) <= 2e-22:
		tmp = t_3
	elif (x * y) <= 2e+15:
		tmp = t_5
	elif (x * y) <= 5e+43:
		tmp = t_4
	elif (x * y) <= 1e+62:
		tmp = t_1
	elif (x * y) <= 7.5e+84:
		tmp = t_3
	elif (x * y) <= 5e+91:
		tmp = t_4
	elif (x * y) <= 5e+104:
		tmp = t_2
	elif (x * y) <= 5e+113:
		tmp = t_1
	elif (x * y) <= 1e+138:
		tmp = t_3
	elif (x * y) <= 5e+164:
		tmp = t_1
	elif (x * y) <= 1.3e+201:
		tmp = t_4
	elif (x * y) <= 2e+208:
		tmp = t_1
	elif (x * y) <= 2e+274:
		tmp = t_4
	else:
		tmp = t_2
	return tmp
function code(x, y, z, t, a, b)
	t_1 = Float64(Float64(x * y) + Float64(a * b))
	t_2 = Float64(z * Float64(t + Float64(y * Float64(x / z))))
	t_3 = Float64(Float64(a * b) + Float64(z * t))
	t_4 = Float64(Float64(x * y) + Float64(z * t))
	t_5 = Float64(b * Float64(a + Float64(Float64(z * t) / b)))
	tmp = 0.0
	if (Float64(x * y) <= -4e+111)
		tmp = t_1;
	elseif (Float64(x * y) <= -1e-17)
		tmp = t_3;
	elseif (Float64(x * y) <= -1e-19)
		tmp = Float64(x * y);
	elseif (Float64(x * y) <= -5e-48)
		tmp = t_3;
	elseif (Float64(x * y) <= -1e-53)
		tmp = t_1;
	elseif (Float64(x * y) <= -5e-58)
		tmp = t_4;
	elseif (Float64(x * y) <= -4e-168)
		tmp = t_3;
	elseif (Float64(x * y) <= -1e-174)
		tmp = t_4;
	elseif (Float64(x * y) <= -1e-182)
		tmp = t_3;
	elseif (Float64(x * y) <= -2e-190)
		tmp = t_1;
	elseif (Float64(x * y) <= -4e-237)
		tmp = t_5;
	elseif (Float64(x * y) <= 1e-165)
		tmp = t_3;
	elseif (Float64(x * y) <= 5e-119)
		tmp = t_4;
	elseif (Float64(x * y) <= 2e-107)
		tmp = t_1;
	elseif (Float64(x * y) <= 5e-61)
		tmp = t_3;
	elseif (Float64(x * y) <= 1e-38)
		tmp = t_4;
	elseif (Float64(x * y) <= 5e-37)
		tmp = t_5;
	elseif (Float64(x * y) <= 2e-22)
		tmp = t_3;
	elseif (Float64(x * y) <= 2e+15)
		tmp = t_5;
	elseif (Float64(x * y) <= 5e+43)
		tmp = t_4;
	elseif (Float64(x * y) <= 1e+62)
		tmp = t_1;
	elseif (Float64(x * y) <= 7.5e+84)
		tmp = t_3;
	elseif (Float64(x * y) <= 5e+91)
		tmp = t_4;
	elseif (Float64(x * y) <= 5e+104)
		tmp = t_2;
	elseif (Float64(x * y) <= 5e+113)
		tmp = t_1;
	elseif (Float64(x * y) <= 1e+138)
		tmp = t_3;
	elseif (Float64(x * y) <= 5e+164)
		tmp = t_1;
	elseif (Float64(x * y) <= 1.3e+201)
		tmp = t_4;
	elseif (Float64(x * y) <= 2e+208)
		tmp = t_1;
	elseif (Float64(x * y) <= 2e+274)
		tmp = t_4;
	else
		tmp = t_2;
	end
	return tmp
end
function tmp_2 = code(x, y, z, t, a, b)
	t_1 = (x * y) + (a * b);
	t_2 = z * (t + (y * (x / z)));
	t_3 = (a * b) + (z * t);
	t_4 = (x * y) + (z * t);
	t_5 = b * (a + ((z * t) / b));
	tmp = 0.0;
	if ((x * y) <= -4e+111)
		tmp = t_1;
	elseif ((x * y) <= -1e-17)
		tmp = t_3;
	elseif ((x * y) <= -1e-19)
		tmp = x * y;
	elseif ((x * y) <= -5e-48)
		tmp = t_3;
	elseif ((x * y) <= -1e-53)
		tmp = t_1;
	elseif ((x * y) <= -5e-58)
		tmp = t_4;
	elseif ((x * y) <= -4e-168)
		tmp = t_3;
	elseif ((x * y) <= -1e-174)
		tmp = t_4;
	elseif ((x * y) <= -1e-182)
		tmp = t_3;
	elseif ((x * y) <= -2e-190)
		tmp = t_1;
	elseif ((x * y) <= -4e-237)
		tmp = t_5;
	elseif ((x * y) <= 1e-165)
		tmp = t_3;
	elseif ((x * y) <= 5e-119)
		tmp = t_4;
	elseif ((x * y) <= 2e-107)
		tmp = t_1;
	elseif ((x * y) <= 5e-61)
		tmp = t_3;
	elseif ((x * y) <= 1e-38)
		tmp = t_4;
	elseif ((x * y) <= 5e-37)
		tmp = t_5;
	elseif ((x * y) <= 2e-22)
		tmp = t_3;
	elseif ((x * y) <= 2e+15)
		tmp = t_5;
	elseif ((x * y) <= 5e+43)
		tmp = t_4;
	elseif ((x * y) <= 1e+62)
		tmp = t_1;
	elseif ((x * y) <= 7.5e+84)
		tmp = t_3;
	elseif ((x * y) <= 5e+91)
		tmp = t_4;
	elseif ((x * y) <= 5e+104)
		tmp = t_2;
	elseif ((x * y) <= 5e+113)
		tmp = t_1;
	elseif ((x * y) <= 1e+138)
		tmp = t_3;
	elseif ((x * y) <= 5e+164)
		tmp = t_1;
	elseif ((x * y) <= 1.3e+201)
		tmp = t_4;
	elseif ((x * y) <= 2e+208)
		tmp = t_1;
	elseif ((x * y) <= 2e+274)
		tmp = t_4;
	else
		tmp = t_2;
	end
	tmp_2 = tmp;
end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(x * y), $MachinePrecision] + N[(a * b), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(z * N[(t + N[(y * N[(x / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(a * b), $MachinePrecision] + N[(z * t), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[(N[(x * y), $MachinePrecision] + N[(z * t), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$5 = N[(b * N[(a + N[(N[(z * t), $MachinePrecision] / b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[(x * y), $MachinePrecision], -4e+111], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], -1e-17], t$95$3, If[LessEqual[N[(x * y), $MachinePrecision], -1e-19], N[(x * y), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -5e-48], t$95$3, If[LessEqual[N[(x * y), $MachinePrecision], -1e-53], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], -5e-58], t$95$4, If[LessEqual[N[(x * y), $MachinePrecision], -4e-168], t$95$3, If[LessEqual[N[(x * y), $MachinePrecision], -1e-174], t$95$4, If[LessEqual[N[(x * y), $MachinePrecision], -1e-182], t$95$3, If[LessEqual[N[(x * y), $MachinePrecision], -2e-190], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], -4e-237], t$95$5, If[LessEqual[N[(x * y), $MachinePrecision], 1e-165], t$95$3, If[LessEqual[N[(x * y), $MachinePrecision], 5e-119], t$95$4, If[LessEqual[N[(x * y), $MachinePrecision], 2e-107], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], 5e-61], t$95$3, If[LessEqual[N[(x * y), $MachinePrecision], 1e-38], t$95$4, If[LessEqual[N[(x * y), $MachinePrecision], 5e-37], t$95$5, If[LessEqual[N[(x * y), $MachinePrecision], 2e-22], t$95$3, If[LessEqual[N[(x * y), $MachinePrecision], 2e+15], t$95$5, If[LessEqual[N[(x * y), $MachinePrecision], 5e+43], t$95$4, If[LessEqual[N[(x * y), $MachinePrecision], 1e+62], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], 7.5e+84], t$95$3, If[LessEqual[N[(x * y), $MachinePrecision], 5e+91], t$95$4, If[LessEqual[N[(x * y), $MachinePrecision], 5e+104], t$95$2, If[LessEqual[N[(x * y), $MachinePrecision], 5e+113], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], 1e+138], t$95$3, If[LessEqual[N[(x * y), $MachinePrecision], 5e+164], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], 1.3e+201], t$95$4, If[LessEqual[N[(x * y), $MachinePrecision], 2e+208], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], 2e+274], t$95$4, t$95$2]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_1 := x \cdot y + a \cdot b\\
t_2 := z \cdot \left(t + y \cdot \frac{x}{z}\right)\\
t_3 := a \cdot b + z \cdot t\\
t_4 := x \cdot y + z \cdot t\\
t_5 := b \cdot \left(a + \frac{z \cdot t}{b}\right)\\
\mathbf{if}\;x \cdot y \leq -4 \cdot 10^{+111}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-17}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-19}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;x \cdot y \leq -5 \cdot 10^{-48}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-53}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq -5 \cdot 10^{-58}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;x \cdot y \leq -4 \cdot 10^{-168}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-174}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-182}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;x \cdot y \leq -2 \cdot 10^{-190}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq -4 \cdot 10^{-237}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;x \cdot y \leq 10^{-165}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-119}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{-107}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-61}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;x \cdot y \leq 10^{-38}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-37}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{-22}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+15}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+43}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;x \cdot y \leq 10^{+62}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq 7.5 \cdot 10^{+84}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+91}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+104}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+113}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq 10^{+138}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+164}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq 1.3 \cdot 10^{+201}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+208}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+274}:\\
\;\;\;\;t\_4\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 6 regimes
  2. if (*.f64 x y) < -3.99999999999999983e111 or -4.9999999999999999e-48 < (*.f64 x y) < -1.00000000000000003e-53 or -1e-182 < (*.f64 x y) < -2e-190 or 4.99999999999999993e-119 < (*.f64 x y) < 2e-107 or 5.0000000000000004e43 < (*.f64 x y) < 1.00000000000000004e62 or 4.9999999999999997e104 < (*.f64 x y) < 5e113 or 1e138 < (*.f64 x y) < 4.9999999999999995e164 or 1.29999999999999993e201 < (*.f64 x y) < 2e208

    1. Initial program 95.4%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in z around 0 92.1%

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

    if -3.99999999999999983e111 < (*.f64 x y) < -1.00000000000000007e-17 or -9.9999999999999998e-20 < (*.f64 x y) < -4.9999999999999999e-48 or -4.99999999999999977e-58 < (*.f64 x y) < -4.0000000000000002e-168 or -1e-174 < (*.f64 x y) < -1e-182 or -4e-237 < (*.f64 x y) < 1e-165 or 2e-107 < (*.f64 x y) < 4.9999999999999999e-61 or 4.9999999999999997e-37 < (*.f64 x y) < 2.0000000000000001e-22 or 1.00000000000000004e62 < (*.f64 x y) < 7.5000000000000001e84 or 5e113 < (*.f64 x y) < 1e138

    1. Initial program 100.0%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in x around 0 96.9%

      \[\leadsto \color{blue}{a \cdot b + t \cdot z} \]

    if -1.00000000000000007e-17 < (*.f64 x y) < -9.9999999999999998e-20

    1. Initial program 100.0%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in x around inf 100.0%

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

    if -1.00000000000000003e-53 < (*.f64 x y) < -4.99999999999999977e-58 or -4.0000000000000002e-168 < (*.f64 x y) < -1e-174 or 1e-165 < (*.f64 x y) < 4.99999999999999993e-119 or 4.9999999999999999e-61 < (*.f64 x y) < 9.9999999999999996e-39 or 2e15 < (*.f64 x y) < 5.0000000000000004e43 or 7.5000000000000001e84 < (*.f64 x y) < 5.0000000000000002e91 or 4.9999999999999995e164 < (*.f64 x y) < 1.29999999999999993e201 or 2e208 < (*.f64 x y) < 1.99999999999999984e274

    1. Initial program 100.0%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in a around 0 100.0%

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

    if -2e-190 < (*.f64 x y) < -4e-237 or 9.9999999999999996e-39 < (*.f64 x y) < 4.9999999999999997e-37 or 2.0000000000000001e-22 < (*.f64 x y) < 2e15

    1. Initial program 84.5%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in b around inf 99.9%

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

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

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

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

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

    if 5.0000000000000002e91 < (*.f64 x y) < 4.9999999999999997e104 or 1.99999999999999984e274 < (*.f64 x y)

    1. Initial program 77.7%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in b around inf 83.2%

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

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

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

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

      \[\leadsto \color{blue}{z \cdot \left(t + \frac{b \cdot \left(a + \frac{x \cdot y}{b}\right)}{z}\right)} \]
    7. Taylor expanded in b around 0 88.9%

      \[\leadsto z \cdot \left(t + \color{blue}{\frac{x \cdot y}{z}}\right) \]
    8. Step-by-step derivation
      1. *-commutative88.9%

        \[\leadsto z \cdot \left(t + \frac{\color{blue}{y \cdot x}}{z}\right) \]
      2. associate-*r/100.0%

        \[\leadsto z \cdot \left(t + \color{blue}{y \cdot \frac{x}{z}}\right) \]
    9. Simplified100.0%

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \cdot y \leq -4 \cdot 10^{+111}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-17}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-19}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq -5 \cdot 10^{-48}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-53}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -5 \cdot 10^{-58}:\\ \;\;\;\;x \cdot y + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -4 \cdot 10^{-168}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-174}:\\ \;\;\;\;x \cdot y + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-182}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -2 \cdot 10^{-190}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -4 \cdot 10^{-237}:\\ \;\;\;\;b \cdot \left(a + \frac{z \cdot t}{b}\right)\\ \mathbf{elif}\;x \cdot y \leq 10^{-165}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-119}:\\ \;\;\;\;x \cdot y + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{-107}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-61}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 10^{-38}:\\ \;\;\;\;x \cdot y + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-37}:\\ \;\;\;\;b \cdot \left(a + \frac{z \cdot t}{b}\right)\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{-22}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+15}:\\ \;\;\;\;b \cdot \left(a + \frac{z \cdot t}{b}\right)\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+43}:\\ \;\;\;\;x \cdot y + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 10^{+62}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 7.5 \cdot 10^{+84}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+91}:\\ \;\;\;\;x \cdot y + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+104}:\\ \;\;\;\;z \cdot \left(t + y \cdot \frac{x}{z}\right)\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+113}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 10^{+138}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+164}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 1.3 \cdot 10^{+201}:\\ \;\;\;\;x \cdot y + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+208}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+274}:\\ \;\;\;\;x \cdot y + z \cdot t\\ \mathbf{else}:\\ \;\;\;\;z \cdot \left(t + y \cdot \frac{x}{z}\right)\\ \end{array} \]
  5. Add Preprocessing

Alternative 6: 80.6% accurate, 0.1× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_1 := x \cdot y + a \cdot b\\ t_2 := a \cdot b + z \cdot t\\ t_3 := x \cdot y + z \cdot t\\ \mathbf{if}\;x \cdot y \leq -4 \cdot 10^{+111}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-17}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-19}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq -5 \cdot 10^{-48}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-53}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq -5 \cdot 10^{-58}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;x \cdot y \leq -4 \cdot 10^{-168}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-174}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-182}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \cdot y \leq -2 \cdot 10^{-190}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-200}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \cdot y \leq -4 \cdot 10^{-237}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 10^{-165}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-119}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{-107}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-61}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \cdot y \leq 10^{-38}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;x \cdot y \leq 2000:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+14}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+15}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+43}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;x \cdot y \leq 10^{+62}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq 7.5 \cdot 10^{+84}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+104}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+113}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq 10^{+138}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+164}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq 1.3 \cdot 10^{+201}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+208}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+229}:\\ \;\;\;\;t\_3\\ \mathbf{else}:\\ \;\;\;\;x \cdot y\\ \end{array} \end{array} \]
(FPCore (x y z t a b)
 :precision binary64
 (let* ((t_1 (+ (* x y) (* a b)))
        (t_2 (+ (* a b) (* z t)))
        (t_3 (+ (* x y) (* z t))))
   (if (<= (* x y) -4e+111)
     t_1
     (if (<= (* x y) -1e-17)
       t_2
       (if (<= (* x y) -1e-19)
         (* x y)
         (if (<= (* x y) -5e-48)
           t_2
           (if (<= (* x y) -1e-53)
             t_1
             (if (<= (* x y) -5e-58)
               t_3
               (if (<= (* x y) -4e-168)
                 t_2
                 (if (<= (* x y) -1e-174)
                   t_3
                   (if (<= (* x y) -1e-182)
                     t_2
                     (if (<= (* x y) -2e-190)
                       t_1
                       (if (<= (* x y) -1e-200)
                         t_2
                         (if (<= (* x y) -4e-237)
                           (* z t)
                           (if (<= (* x y) 1e-165)
                             t_2
                             (if (<= (* x y) 5e-119)
                               t_3
                               (if (<= (* x y) 2e-107)
                                 t_1
                                 (if (<= (* x y) 5e-61)
                                   t_2
                                   (if (<= (* x y) 1e-38)
                                     t_3
                                     (if (<= (* x y) 2000.0)
                                       t_2
                                       (if (<= (* x y) 2e+14)
                                         (* z t)
                                         (if (<= (* x y) 2e+15)
                                           (* a b)
                                           (if (<= (* x y) 5e+43)
                                             t_3
                                             (if (<= (* x y) 1e+62)
                                               t_1
                                               (if (<= (* x y) 7.5e+84)
                                                 t_2
                                                 (if (<= (* x y) 5e+104)
                                                   t_3
                                                   (if (<= (* x y) 5e+113)
                                                     t_1
                                                     (if (<= (* x y) 1e+138)
                                                       t_2
                                                       (if (<= (* x y) 5e+164)
                                                         t_1
                                                         (if (<=
                                                              (* x y)
                                                              1.3e+201)
                                                           t_3
                                                           (if (<=
                                                                (* x y)
                                                                2e+208)
                                                             t_1
                                                             (if (<=
                                                                  (* x y)
                                                                  2e+229)
                                                               t_3
                                                               (*
                                                                x
                                                                y)))))))))))))))))))))))))))))))))
double code(double x, double y, double z, double t, double a, double b) {
	double t_1 = (x * y) + (a * b);
	double t_2 = (a * b) + (z * t);
	double t_3 = (x * y) + (z * t);
	double tmp;
	if ((x * y) <= -4e+111) {
		tmp = t_1;
	} else if ((x * y) <= -1e-17) {
		tmp = t_2;
	} else if ((x * y) <= -1e-19) {
		tmp = x * y;
	} else if ((x * y) <= -5e-48) {
		tmp = t_2;
	} else if ((x * y) <= -1e-53) {
		tmp = t_1;
	} else if ((x * y) <= -5e-58) {
		tmp = t_3;
	} else if ((x * y) <= -4e-168) {
		tmp = t_2;
	} else if ((x * y) <= -1e-174) {
		tmp = t_3;
	} else if ((x * y) <= -1e-182) {
		tmp = t_2;
	} else if ((x * y) <= -2e-190) {
		tmp = t_1;
	} else if ((x * y) <= -1e-200) {
		tmp = t_2;
	} else if ((x * y) <= -4e-237) {
		tmp = z * t;
	} else if ((x * y) <= 1e-165) {
		tmp = t_2;
	} else if ((x * y) <= 5e-119) {
		tmp = t_3;
	} else if ((x * y) <= 2e-107) {
		tmp = t_1;
	} else if ((x * y) <= 5e-61) {
		tmp = t_2;
	} else if ((x * y) <= 1e-38) {
		tmp = t_3;
	} else if ((x * y) <= 2000.0) {
		tmp = t_2;
	} else if ((x * y) <= 2e+14) {
		tmp = z * t;
	} else if ((x * y) <= 2e+15) {
		tmp = a * b;
	} else if ((x * y) <= 5e+43) {
		tmp = t_3;
	} else if ((x * y) <= 1e+62) {
		tmp = t_1;
	} else if ((x * y) <= 7.5e+84) {
		tmp = t_2;
	} else if ((x * y) <= 5e+104) {
		tmp = t_3;
	} else if ((x * y) <= 5e+113) {
		tmp = t_1;
	} else if ((x * y) <= 1e+138) {
		tmp = t_2;
	} else if ((x * y) <= 5e+164) {
		tmp = t_1;
	} else if ((x * y) <= 1.3e+201) {
		tmp = t_3;
	} else if ((x * y) <= 2e+208) {
		tmp = t_1;
	} else if ((x * y) <= 2e+229) {
		tmp = t_3;
	} else {
		tmp = x * y;
	}
	return tmp;
}
real(8) function code(x, y, z, t, a, b)
    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), intent (in) :: b
    real(8) :: t_1
    real(8) :: t_2
    real(8) :: t_3
    real(8) :: tmp
    t_1 = (x * y) + (a * b)
    t_2 = (a * b) + (z * t)
    t_3 = (x * y) + (z * t)
    if ((x * y) <= (-4d+111)) then
        tmp = t_1
    else if ((x * y) <= (-1d-17)) then
        tmp = t_2
    else if ((x * y) <= (-1d-19)) then
        tmp = x * y
    else if ((x * y) <= (-5d-48)) then
        tmp = t_2
    else if ((x * y) <= (-1d-53)) then
        tmp = t_1
    else if ((x * y) <= (-5d-58)) then
        tmp = t_3
    else if ((x * y) <= (-4d-168)) then
        tmp = t_2
    else if ((x * y) <= (-1d-174)) then
        tmp = t_3
    else if ((x * y) <= (-1d-182)) then
        tmp = t_2
    else if ((x * y) <= (-2d-190)) then
        tmp = t_1
    else if ((x * y) <= (-1d-200)) then
        tmp = t_2
    else if ((x * y) <= (-4d-237)) then
        tmp = z * t
    else if ((x * y) <= 1d-165) then
        tmp = t_2
    else if ((x * y) <= 5d-119) then
        tmp = t_3
    else if ((x * y) <= 2d-107) then
        tmp = t_1
    else if ((x * y) <= 5d-61) then
        tmp = t_2
    else if ((x * y) <= 1d-38) then
        tmp = t_3
    else if ((x * y) <= 2000.0d0) then
        tmp = t_2
    else if ((x * y) <= 2d+14) then
        tmp = z * t
    else if ((x * y) <= 2d+15) then
        tmp = a * b
    else if ((x * y) <= 5d+43) then
        tmp = t_3
    else if ((x * y) <= 1d+62) then
        tmp = t_1
    else if ((x * y) <= 7.5d+84) then
        tmp = t_2
    else if ((x * y) <= 5d+104) then
        tmp = t_3
    else if ((x * y) <= 5d+113) then
        tmp = t_1
    else if ((x * y) <= 1d+138) then
        tmp = t_2
    else if ((x * y) <= 5d+164) then
        tmp = t_1
    else if ((x * y) <= 1.3d+201) then
        tmp = t_3
    else if ((x * y) <= 2d+208) then
        tmp = t_1
    else if ((x * y) <= 2d+229) then
        tmp = t_3
    else
        tmp = x * y
    end if
    code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
	double t_1 = (x * y) + (a * b);
	double t_2 = (a * b) + (z * t);
	double t_3 = (x * y) + (z * t);
	double tmp;
	if ((x * y) <= -4e+111) {
		tmp = t_1;
	} else if ((x * y) <= -1e-17) {
		tmp = t_2;
	} else if ((x * y) <= -1e-19) {
		tmp = x * y;
	} else if ((x * y) <= -5e-48) {
		tmp = t_2;
	} else if ((x * y) <= -1e-53) {
		tmp = t_1;
	} else if ((x * y) <= -5e-58) {
		tmp = t_3;
	} else if ((x * y) <= -4e-168) {
		tmp = t_2;
	} else if ((x * y) <= -1e-174) {
		tmp = t_3;
	} else if ((x * y) <= -1e-182) {
		tmp = t_2;
	} else if ((x * y) <= -2e-190) {
		tmp = t_1;
	} else if ((x * y) <= -1e-200) {
		tmp = t_2;
	} else if ((x * y) <= -4e-237) {
		tmp = z * t;
	} else if ((x * y) <= 1e-165) {
		tmp = t_2;
	} else if ((x * y) <= 5e-119) {
		tmp = t_3;
	} else if ((x * y) <= 2e-107) {
		tmp = t_1;
	} else if ((x * y) <= 5e-61) {
		tmp = t_2;
	} else if ((x * y) <= 1e-38) {
		tmp = t_3;
	} else if ((x * y) <= 2000.0) {
		tmp = t_2;
	} else if ((x * y) <= 2e+14) {
		tmp = z * t;
	} else if ((x * y) <= 2e+15) {
		tmp = a * b;
	} else if ((x * y) <= 5e+43) {
		tmp = t_3;
	} else if ((x * y) <= 1e+62) {
		tmp = t_1;
	} else if ((x * y) <= 7.5e+84) {
		tmp = t_2;
	} else if ((x * y) <= 5e+104) {
		tmp = t_3;
	} else if ((x * y) <= 5e+113) {
		tmp = t_1;
	} else if ((x * y) <= 1e+138) {
		tmp = t_2;
	} else if ((x * y) <= 5e+164) {
		tmp = t_1;
	} else if ((x * y) <= 1.3e+201) {
		tmp = t_3;
	} else if ((x * y) <= 2e+208) {
		tmp = t_1;
	} else if ((x * y) <= 2e+229) {
		tmp = t_3;
	} else {
		tmp = x * y;
	}
	return tmp;
}
def code(x, y, z, t, a, b):
	t_1 = (x * y) + (a * b)
	t_2 = (a * b) + (z * t)
	t_3 = (x * y) + (z * t)
	tmp = 0
	if (x * y) <= -4e+111:
		tmp = t_1
	elif (x * y) <= -1e-17:
		tmp = t_2
	elif (x * y) <= -1e-19:
		tmp = x * y
	elif (x * y) <= -5e-48:
		tmp = t_2
	elif (x * y) <= -1e-53:
		tmp = t_1
	elif (x * y) <= -5e-58:
		tmp = t_3
	elif (x * y) <= -4e-168:
		tmp = t_2
	elif (x * y) <= -1e-174:
		tmp = t_3
	elif (x * y) <= -1e-182:
		tmp = t_2
	elif (x * y) <= -2e-190:
		tmp = t_1
	elif (x * y) <= -1e-200:
		tmp = t_2
	elif (x * y) <= -4e-237:
		tmp = z * t
	elif (x * y) <= 1e-165:
		tmp = t_2
	elif (x * y) <= 5e-119:
		tmp = t_3
	elif (x * y) <= 2e-107:
		tmp = t_1
	elif (x * y) <= 5e-61:
		tmp = t_2
	elif (x * y) <= 1e-38:
		tmp = t_3
	elif (x * y) <= 2000.0:
		tmp = t_2
	elif (x * y) <= 2e+14:
		tmp = z * t
	elif (x * y) <= 2e+15:
		tmp = a * b
	elif (x * y) <= 5e+43:
		tmp = t_3
	elif (x * y) <= 1e+62:
		tmp = t_1
	elif (x * y) <= 7.5e+84:
		tmp = t_2
	elif (x * y) <= 5e+104:
		tmp = t_3
	elif (x * y) <= 5e+113:
		tmp = t_1
	elif (x * y) <= 1e+138:
		tmp = t_2
	elif (x * y) <= 5e+164:
		tmp = t_1
	elif (x * y) <= 1.3e+201:
		tmp = t_3
	elif (x * y) <= 2e+208:
		tmp = t_1
	elif (x * y) <= 2e+229:
		tmp = t_3
	else:
		tmp = x * y
	return tmp
function code(x, y, z, t, a, b)
	t_1 = Float64(Float64(x * y) + Float64(a * b))
	t_2 = Float64(Float64(a * b) + Float64(z * t))
	t_3 = Float64(Float64(x * y) + Float64(z * t))
	tmp = 0.0
	if (Float64(x * y) <= -4e+111)
		tmp = t_1;
	elseif (Float64(x * y) <= -1e-17)
		tmp = t_2;
	elseif (Float64(x * y) <= -1e-19)
		tmp = Float64(x * y);
	elseif (Float64(x * y) <= -5e-48)
		tmp = t_2;
	elseif (Float64(x * y) <= -1e-53)
		tmp = t_1;
	elseif (Float64(x * y) <= -5e-58)
		tmp = t_3;
	elseif (Float64(x * y) <= -4e-168)
		tmp = t_2;
	elseif (Float64(x * y) <= -1e-174)
		tmp = t_3;
	elseif (Float64(x * y) <= -1e-182)
		tmp = t_2;
	elseif (Float64(x * y) <= -2e-190)
		tmp = t_1;
	elseif (Float64(x * y) <= -1e-200)
		tmp = t_2;
	elseif (Float64(x * y) <= -4e-237)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= 1e-165)
		tmp = t_2;
	elseif (Float64(x * y) <= 5e-119)
		tmp = t_3;
	elseif (Float64(x * y) <= 2e-107)
		tmp = t_1;
	elseif (Float64(x * y) <= 5e-61)
		tmp = t_2;
	elseif (Float64(x * y) <= 1e-38)
		tmp = t_3;
	elseif (Float64(x * y) <= 2000.0)
		tmp = t_2;
	elseif (Float64(x * y) <= 2e+14)
		tmp = Float64(z * t);
	elseif (Float64(x * y) <= 2e+15)
		tmp = Float64(a * b);
	elseif (Float64(x * y) <= 5e+43)
		tmp = t_3;
	elseif (Float64(x * y) <= 1e+62)
		tmp = t_1;
	elseif (Float64(x * y) <= 7.5e+84)
		tmp = t_2;
	elseif (Float64(x * y) <= 5e+104)
		tmp = t_3;
	elseif (Float64(x * y) <= 5e+113)
		tmp = t_1;
	elseif (Float64(x * y) <= 1e+138)
		tmp = t_2;
	elseif (Float64(x * y) <= 5e+164)
		tmp = t_1;
	elseif (Float64(x * y) <= 1.3e+201)
		tmp = t_3;
	elseif (Float64(x * y) <= 2e+208)
		tmp = t_1;
	elseif (Float64(x * y) <= 2e+229)
		tmp = t_3;
	else
		tmp = Float64(x * y);
	end
	return tmp
end
function tmp_2 = code(x, y, z, t, a, b)
	t_1 = (x * y) + (a * b);
	t_2 = (a * b) + (z * t);
	t_3 = (x * y) + (z * t);
	tmp = 0.0;
	if ((x * y) <= -4e+111)
		tmp = t_1;
	elseif ((x * y) <= -1e-17)
		tmp = t_2;
	elseif ((x * y) <= -1e-19)
		tmp = x * y;
	elseif ((x * y) <= -5e-48)
		tmp = t_2;
	elseif ((x * y) <= -1e-53)
		tmp = t_1;
	elseif ((x * y) <= -5e-58)
		tmp = t_3;
	elseif ((x * y) <= -4e-168)
		tmp = t_2;
	elseif ((x * y) <= -1e-174)
		tmp = t_3;
	elseif ((x * y) <= -1e-182)
		tmp = t_2;
	elseif ((x * y) <= -2e-190)
		tmp = t_1;
	elseif ((x * y) <= -1e-200)
		tmp = t_2;
	elseif ((x * y) <= -4e-237)
		tmp = z * t;
	elseif ((x * y) <= 1e-165)
		tmp = t_2;
	elseif ((x * y) <= 5e-119)
		tmp = t_3;
	elseif ((x * y) <= 2e-107)
		tmp = t_1;
	elseif ((x * y) <= 5e-61)
		tmp = t_2;
	elseif ((x * y) <= 1e-38)
		tmp = t_3;
	elseif ((x * y) <= 2000.0)
		tmp = t_2;
	elseif ((x * y) <= 2e+14)
		tmp = z * t;
	elseif ((x * y) <= 2e+15)
		tmp = a * b;
	elseif ((x * y) <= 5e+43)
		tmp = t_3;
	elseif ((x * y) <= 1e+62)
		tmp = t_1;
	elseif ((x * y) <= 7.5e+84)
		tmp = t_2;
	elseif ((x * y) <= 5e+104)
		tmp = t_3;
	elseif ((x * y) <= 5e+113)
		tmp = t_1;
	elseif ((x * y) <= 1e+138)
		tmp = t_2;
	elseif ((x * y) <= 5e+164)
		tmp = t_1;
	elseif ((x * y) <= 1.3e+201)
		tmp = t_3;
	elseif ((x * y) <= 2e+208)
		tmp = t_1;
	elseif ((x * y) <= 2e+229)
		tmp = t_3;
	else
		tmp = x * y;
	end
	tmp_2 = tmp;
end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(x * y), $MachinePrecision] + N[(a * b), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(a * b), $MachinePrecision] + N[(z * t), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(x * y), $MachinePrecision] + N[(z * t), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[(x * y), $MachinePrecision], -4e+111], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], -1e-17], t$95$2, If[LessEqual[N[(x * y), $MachinePrecision], -1e-19], N[(x * y), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -5e-48], t$95$2, If[LessEqual[N[(x * y), $MachinePrecision], -1e-53], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], -5e-58], t$95$3, If[LessEqual[N[(x * y), $MachinePrecision], -4e-168], t$95$2, If[LessEqual[N[(x * y), $MachinePrecision], -1e-174], t$95$3, If[LessEqual[N[(x * y), $MachinePrecision], -1e-182], t$95$2, If[LessEqual[N[(x * y), $MachinePrecision], -2e-190], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], -1e-200], t$95$2, If[LessEqual[N[(x * y), $MachinePrecision], -4e-237], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 1e-165], t$95$2, If[LessEqual[N[(x * y), $MachinePrecision], 5e-119], t$95$3, If[LessEqual[N[(x * y), $MachinePrecision], 2e-107], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], 5e-61], t$95$2, If[LessEqual[N[(x * y), $MachinePrecision], 1e-38], t$95$3, If[LessEqual[N[(x * y), $MachinePrecision], 2000.0], t$95$2, If[LessEqual[N[(x * y), $MachinePrecision], 2e+14], N[(z * t), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 2e+15], N[(a * b), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 5e+43], t$95$3, If[LessEqual[N[(x * y), $MachinePrecision], 1e+62], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], 7.5e+84], t$95$2, If[LessEqual[N[(x * y), $MachinePrecision], 5e+104], t$95$3, If[LessEqual[N[(x * y), $MachinePrecision], 5e+113], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], 1e+138], t$95$2, If[LessEqual[N[(x * y), $MachinePrecision], 5e+164], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], 1.3e+201], t$95$3, If[LessEqual[N[(x * y), $MachinePrecision], 2e+208], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], 2e+229], t$95$3, N[(x * y), $MachinePrecision]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_1 := x \cdot y + a \cdot b\\
t_2 := a \cdot b + z \cdot t\\
t_3 := x \cdot y + z \cdot t\\
\mathbf{if}\;x \cdot y \leq -4 \cdot 10^{+111}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-17}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-19}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;x \cdot y \leq -5 \cdot 10^{-48}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-53}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq -5 \cdot 10^{-58}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;x \cdot y \leq -4 \cdot 10^{-168}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-174}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-182}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \cdot y \leq -2 \cdot 10^{-190}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-200}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \cdot y \leq -4 \cdot 10^{-237}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq 10^{-165}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-119}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{-107}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-61}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \cdot y \leq 10^{-38}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;x \cdot y \leq 2000:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+14}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+15}:\\
\;\;\;\;a \cdot b\\

\mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+43}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;x \cdot y \leq 10^{+62}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq 7.5 \cdot 10^{+84}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+104}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+113}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq 10^{+138}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+164}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq 1.3 \cdot 10^{+201}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+208}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+229}:\\
\;\;\;\;t\_3\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 6 regimes
  2. if (*.f64 x y) < -3.99999999999999983e111 or -4.9999999999999999e-48 < (*.f64 x y) < -1.00000000000000003e-53 or -1e-182 < (*.f64 x y) < -2e-190 or 4.99999999999999993e-119 < (*.f64 x y) < 2e-107 or 5.0000000000000004e43 < (*.f64 x y) < 1.00000000000000004e62 or 4.9999999999999997e104 < (*.f64 x y) < 5e113 or 1e138 < (*.f64 x y) < 4.9999999999999995e164 or 1.29999999999999993e201 < (*.f64 x y) < 2e208

    1. Initial program 95.4%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in z around 0 92.1%

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

    if -3.99999999999999983e111 < (*.f64 x y) < -1.00000000000000007e-17 or -9.9999999999999998e-20 < (*.f64 x y) < -4.9999999999999999e-48 or -4.99999999999999977e-58 < (*.f64 x y) < -4.0000000000000002e-168 or -1e-174 < (*.f64 x y) < -1e-182 or -2e-190 < (*.f64 x y) < -9.9999999999999998e-201 or -4e-237 < (*.f64 x y) < 1e-165 or 2e-107 < (*.f64 x y) < 4.9999999999999999e-61 or 9.9999999999999996e-39 < (*.f64 x y) < 2e3 or 1.00000000000000004e62 < (*.f64 x y) < 7.5000000000000001e84 or 5e113 < (*.f64 x y) < 1e138

    1. Initial program 100.0%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in x around 0 97.0%

      \[\leadsto \color{blue}{a \cdot b + t \cdot z} \]

    if -1.00000000000000007e-17 < (*.f64 x y) < -9.9999999999999998e-20 or 2e229 < (*.f64 x y)

    1. Initial program 81.8%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in x around inf 90.9%

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

    if -1.00000000000000003e-53 < (*.f64 x y) < -4.99999999999999977e-58 or -4.0000000000000002e-168 < (*.f64 x y) < -1e-174 or 1e-165 < (*.f64 x y) < 4.99999999999999993e-119 or 4.9999999999999999e-61 < (*.f64 x y) < 9.9999999999999996e-39 or 2e15 < (*.f64 x y) < 5.0000000000000004e43 or 7.5000000000000001e84 < (*.f64 x y) < 4.9999999999999997e104 or 4.9999999999999995e164 < (*.f64 x y) < 1.29999999999999993e201 or 2e208 < (*.f64 x y) < 2e229

    1. Initial program 100.0%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in a around 0 100.0%

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

    if -9.9999999999999998e-201 < (*.f64 x y) < -4e-237 or 2e3 < (*.f64 x y) < 2e14

    1. Initial program 60.0%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in z around inf 100.0%

      \[\leadsto \color{blue}{t \cdot z} \]

    if 2e14 < (*.f64 x y) < 2e15

    1. Initial program 100.0%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in a around inf 100.0%

      \[\leadsto \color{blue}{a \cdot b} \]
  3. Recombined 6 regimes into one program.
  4. Final simplification95.7%

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \cdot y \leq -4 \cdot 10^{+111}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-17}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-19}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq -5 \cdot 10^{-48}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-53}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -5 \cdot 10^{-58}:\\ \;\;\;\;x \cdot y + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -4 \cdot 10^{-168}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-174}:\\ \;\;\;\;x \cdot y + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-182}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -2 \cdot 10^{-190}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-200}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -4 \cdot 10^{-237}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 10^{-165}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-119}:\\ \;\;\;\;x \cdot y + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{-107}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-61}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 10^{-38}:\\ \;\;\;\;x \cdot y + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 2000:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+14}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+15}:\\ \;\;\;\;a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+43}:\\ \;\;\;\;x \cdot y + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 10^{+62}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 7.5 \cdot 10^{+84}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+104}:\\ \;\;\;\;x \cdot y + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+113}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 10^{+138}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+164}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 1.3 \cdot 10^{+201}:\\ \;\;\;\;x \cdot y + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+208}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+229}:\\ \;\;\;\;x \cdot y + z \cdot t\\ \mathbf{else}:\\ \;\;\;\;x \cdot y\\ \end{array} \]
  5. Add Preprocessing

Alternative 7: 81.3% accurate, 0.1× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_1 := x \cdot y + a \cdot b\\ t_2 := a \cdot b + z \cdot t\\ t_3 := x \cdot y + z \cdot t\\ t_4 := b \cdot \left(a + \frac{z \cdot t}{b}\right)\\ \mathbf{if}\;x \cdot y \leq -4 \cdot 10^{+111}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-17}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-19}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq -5 \cdot 10^{-48}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-53}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq -5 \cdot 10^{-58}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;x \cdot y \leq -4 \cdot 10^{-168}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-174}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-182}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \cdot y \leq -2 \cdot 10^{-190}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq -4 \cdot 10^{-237}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;x \cdot y \leq 10^{-165}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-119}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{-107}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-61}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \cdot y \leq 10^{-38}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-37}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{-22}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+15}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+43}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;x \cdot y \leq 10^{+62}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq 7.5 \cdot 10^{+84}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+104}:\\ \;\;\;\;z \cdot \left(t + \frac{x \cdot y}{z}\right)\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+113}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq 10^{+138}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+164}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq 1.3 \cdot 10^{+201}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+208}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+274}:\\ \;\;\;\;t\_3\\ \mathbf{else}:\\ \;\;\;\;z \cdot \left(t + y \cdot \frac{x}{z}\right)\\ \end{array} \end{array} \]
(FPCore (x y z t a b)
 :precision binary64
 (let* ((t_1 (+ (* x y) (* a b)))
        (t_2 (+ (* a b) (* z t)))
        (t_3 (+ (* x y) (* z t)))
        (t_4 (* b (+ a (/ (* z t) b)))))
   (if (<= (* x y) -4e+111)
     t_1
     (if (<= (* x y) -1e-17)
       t_2
       (if (<= (* x y) -1e-19)
         (* x y)
         (if (<= (* x y) -5e-48)
           t_2
           (if (<= (* x y) -1e-53)
             t_1
             (if (<= (* x y) -5e-58)
               t_3
               (if (<= (* x y) -4e-168)
                 t_2
                 (if (<= (* x y) -1e-174)
                   t_3
                   (if (<= (* x y) -1e-182)
                     t_2
                     (if (<= (* x y) -2e-190)
                       t_1
                       (if (<= (* x y) -4e-237)
                         t_4
                         (if (<= (* x y) 1e-165)
                           t_2
                           (if (<= (* x y) 5e-119)
                             t_3
                             (if (<= (* x y) 2e-107)
                               t_1
                               (if (<= (* x y) 5e-61)
                                 t_2
                                 (if (<= (* x y) 1e-38)
                                   t_3
                                   (if (<= (* x y) 5e-37)
                                     t_4
                                     (if (<= (* x y) 2e-22)
                                       t_2
                                       (if (<= (* x y) 2e+15)
                                         t_4
                                         (if (<= (* x y) 5e+43)
                                           t_3
                                           (if (<= (* x y) 1e+62)
                                             t_1
                                             (if (<= (* x y) 7.5e+84)
                                               t_2
                                               (if (<= (* x y) 5e+104)
                                                 (* z (+ t (/ (* x y) z)))
                                                 (if (<= (* x y) 5e+113)
                                                   t_1
                                                   (if (<= (* x y) 1e+138)
                                                     t_2
                                                     (if (<= (* x y) 5e+164)
                                                       t_1
                                                       (if (<=
                                                            (* x y)
                                                            1.3e+201)
                                                         t_3
                                                         (if (<=
                                                              (* x y)
                                                              2e+208)
                                                           t_1
                                                           (if (<=
                                                                (* x y)
                                                                2e+274)
                                                             t_3
                                                             (*
                                                              z
                                                              (+
                                                               t
                                                               (*
                                                                y
                                                                (/
                                                                 x
                                                                 z)))))))))))))))))))))))))))))))))))
double code(double x, double y, double z, double t, double a, double b) {
	double t_1 = (x * y) + (a * b);
	double t_2 = (a * b) + (z * t);
	double t_3 = (x * y) + (z * t);
	double t_4 = b * (a + ((z * t) / b));
	double tmp;
	if ((x * y) <= -4e+111) {
		tmp = t_1;
	} else if ((x * y) <= -1e-17) {
		tmp = t_2;
	} else if ((x * y) <= -1e-19) {
		tmp = x * y;
	} else if ((x * y) <= -5e-48) {
		tmp = t_2;
	} else if ((x * y) <= -1e-53) {
		tmp = t_1;
	} else if ((x * y) <= -5e-58) {
		tmp = t_3;
	} else if ((x * y) <= -4e-168) {
		tmp = t_2;
	} else if ((x * y) <= -1e-174) {
		tmp = t_3;
	} else if ((x * y) <= -1e-182) {
		tmp = t_2;
	} else if ((x * y) <= -2e-190) {
		tmp = t_1;
	} else if ((x * y) <= -4e-237) {
		tmp = t_4;
	} else if ((x * y) <= 1e-165) {
		tmp = t_2;
	} else if ((x * y) <= 5e-119) {
		tmp = t_3;
	} else if ((x * y) <= 2e-107) {
		tmp = t_1;
	} else if ((x * y) <= 5e-61) {
		tmp = t_2;
	} else if ((x * y) <= 1e-38) {
		tmp = t_3;
	} else if ((x * y) <= 5e-37) {
		tmp = t_4;
	} else if ((x * y) <= 2e-22) {
		tmp = t_2;
	} else if ((x * y) <= 2e+15) {
		tmp = t_4;
	} else if ((x * y) <= 5e+43) {
		tmp = t_3;
	} else if ((x * y) <= 1e+62) {
		tmp = t_1;
	} else if ((x * y) <= 7.5e+84) {
		tmp = t_2;
	} else if ((x * y) <= 5e+104) {
		tmp = z * (t + ((x * y) / z));
	} else if ((x * y) <= 5e+113) {
		tmp = t_1;
	} else if ((x * y) <= 1e+138) {
		tmp = t_2;
	} else if ((x * y) <= 5e+164) {
		tmp = t_1;
	} else if ((x * y) <= 1.3e+201) {
		tmp = t_3;
	} else if ((x * y) <= 2e+208) {
		tmp = t_1;
	} else if ((x * y) <= 2e+274) {
		tmp = t_3;
	} else {
		tmp = z * (t + (y * (x / z)));
	}
	return tmp;
}
real(8) function code(x, y, z, t, a, b)
    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), intent (in) :: b
    real(8) :: t_1
    real(8) :: t_2
    real(8) :: t_3
    real(8) :: t_4
    real(8) :: tmp
    t_1 = (x * y) + (a * b)
    t_2 = (a * b) + (z * t)
    t_3 = (x * y) + (z * t)
    t_4 = b * (a + ((z * t) / b))
    if ((x * y) <= (-4d+111)) then
        tmp = t_1
    else if ((x * y) <= (-1d-17)) then
        tmp = t_2
    else if ((x * y) <= (-1d-19)) then
        tmp = x * y
    else if ((x * y) <= (-5d-48)) then
        tmp = t_2
    else if ((x * y) <= (-1d-53)) then
        tmp = t_1
    else if ((x * y) <= (-5d-58)) then
        tmp = t_3
    else if ((x * y) <= (-4d-168)) then
        tmp = t_2
    else if ((x * y) <= (-1d-174)) then
        tmp = t_3
    else if ((x * y) <= (-1d-182)) then
        tmp = t_2
    else if ((x * y) <= (-2d-190)) then
        tmp = t_1
    else if ((x * y) <= (-4d-237)) then
        tmp = t_4
    else if ((x * y) <= 1d-165) then
        tmp = t_2
    else if ((x * y) <= 5d-119) then
        tmp = t_3
    else if ((x * y) <= 2d-107) then
        tmp = t_1
    else if ((x * y) <= 5d-61) then
        tmp = t_2
    else if ((x * y) <= 1d-38) then
        tmp = t_3
    else if ((x * y) <= 5d-37) then
        tmp = t_4
    else if ((x * y) <= 2d-22) then
        tmp = t_2
    else if ((x * y) <= 2d+15) then
        tmp = t_4
    else if ((x * y) <= 5d+43) then
        tmp = t_3
    else if ((x * y) <= 1d+62) then
        tmp = t_1
    else if ((x * y) <= 7.5d+84) then
        tmp = t_2
    else if ((x * y) <= 5d+104) then
        tmp = z * (t + ((x * y) / z))
    else if ((x * y) <= 5d+113) then
        tmp = t_1
    else if ((x * y) <= 1d+138) then
        tmp = t_2
    else if ((x * y) <= 5d+164) then
        tmp = t_1
    else if ((x * y) <= 1.3d+201) then
        tmp = t_3
    else if ((x * y) <= 2d+208) then
        tmp = t_1
    else if ((x * y) <= 2d+274) then
        tmp = t_3
    else
        tmp = z * (t + (y * (x / z)))
    end if
    code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
	double t_1 = (x * y) + (a * b);
	double t_2 = (a * b) + (z * t);
	double t_3 = (x * y) + (z * t);
	double t_4 = b * (a + ((z * t) / b));
	double tmp;
	if ((x * y) <= -4e+111) {
		tmp = t_1;
	} else if ((x * y) <= -1e-17) {
		tmp = t_2;
	} else if ((x * y) <= -1e-19) {
		tmp = x * y;
	} else if ((x * y) <= -5e-48) {
		tmp = t_2;
	} else if ((x * y) <= -1e-53) {
		tmp = t_1;
	} else if ((x * y) <= -5e-58) {
		tmp = t_3;
	} else if ((x * y) <= -4e-168) {
		tmp = t_2;
	} else if ((x * y) <= -1e-174) {
		tmp = t_3;
	} else if ((x * y) <= -1e-182) {
		tmp = t_2;
	} else if ((x * y) <= -2e-190) {
		tmp = t_1;
	} else if ((x * y) <= -4e-237) {
		tmp = t_4;
	} else if ((x * y) <= 1e-165) {
		tmp = t_2;
	} else if ((x * y) <= 5e-119) {
		tmp = t_3;
	} else if ((x * y) <= 2e-107) {
		tmp = t_1;
	} else if ((x * y) <= 5e-61) {
		tmp = t_2;
	} else if ((x * y) <= 1e-38) {
		tmp = t_3;
	} else if ((x * y) <= 5e-37) {
		tmp = t_4;
	} else if ((x * y) <= 2e-22) {
		tmp = t_2;
	} else if ((x * y) <= 2e+15) {
		tmp = t_4;
	} else if ((x * y) <= 5e+43) {
		tmp = t_3;
	} else if ((x * y) <= 1e+62) {
		tmp = t_1;
	} else if ((x * y) <= 7.5e+84) {
		tmp = t_2;
	} else if ((x * y) <= 5e+104) {
		tmp = z * (t + ((x * y) / z));
	} else if ((x * y) <= 5e+113) {
		tmp = t_1;
	} else if ((x * y) <= 1e+138) {
		tmp = t_2;
	} else if ((x * y) <= 5e+164) {
		tmp = t_1;
	} else if ((x * y) <= 1.3e+201) {
		tmp = t_3;
	} else if ((x * y) <= 2e+208) {
		tmp = t_1;
	} else if ((x * y) <= 2e+274) {
		tmp = t_3;
	} else {
		tmp = z * (t + (y * (x / z)));
	}
	return tmp;
}
def code(x, y, z, t, a, b):
	t_1 = (x * y) + (a * b)
	t_2 = (a * b) + (z * t)
	t_3 = (x * y) + (z * t)
	t_4 = b * (a + ((z * t) / b))
	tmp = 0
	if (x * y) <= -4e+111:
		tmp = t_1
	elif (x * y) <= -1e-17:
		tmp = t_2
	elif (x * y) <= -1e-19:
		tmp = x * y
	elif (x * y) <= -5e-48:
		tmp = t_2
	elif (x * y) <= -1e-53:
		tmp = t_1
	elif (x * y) <= -5e-58:
		tmp = t_3
	elif (x * y) <= -4e-168:
		tmp = t_2
	elif (x * y) <= -1e-174:
		tmp = t_3
	elif (x * y) <= -1e-182:
		tmp = t_2
	elif (x * y) <= -2e-190:
		tmp = t_1
	elif (x * y) <= -4e-237:
		tmp = t_4
	elif (x * y) <= 1e-165:
		tmp = t_2
	elif (x * y) <= 5e-119:
		tmp = t_3
	elif (x * y) <= 2e-107:
		tmp = t_1
	elif (x * y) <= 5e-61:
		tmp = t_2
	elif (x * y) <= 1e-38:
		tmp = t_3
	elif (x * y) <= 5e-37:
		tmp = t_4
	elif (x * y) <= 2e-22:
		tmp = t_2
	elif (x * y) <= 2e+15:
		tmp = t_4
	elif (x * y) <= 5e+43:
		tmp = t_3
	elif (x * y) <= 1e+62:
		tmp = t_1
	elif (x * y) <= 7.5e+84:
		tmp = t_2
	elif (x * y) <= 5e+104:
		tmp = z * (t + ((x * y) / z))
	elif (x * y) <= 5e+113:
		tmp = t_1
	elif (x * y) <= 1e+138:
		tmp = t_2
	elif (x * y) <= 5e+164:
		tmp = t_1
	elif (x * y) <= 1.3e+201:
		tmp = t_3
	elif (x * y) <= 2e+208:
		tmp = t_1
	elif (x * y) <= 2e+274:
		tmp = t_3
	else:
		tmp = z * (t + (y * (x / z)))
	return tmp
function code(x, y, z, t, a, b)
	t_1 = Float64(Float64(x * y) + Float64(a * b))
	t_2 = Float64(Float64(a * b) + Float64(z * t))
	t_3 = Float64(Float64(x * y) + Float64(z * t))
	t_4 = Float64(b * Float64(a + Float64(Float64(z * t) / b)))
	tmp = 0.0
	if (Float64(x * y) <= -4e+111)
		tmp = t_1;
	elseif (Float64(x * y) <= -1e-17)
		tmp = t_2;
	elseif (Float64(x * y) <= -1e-19)
		tmp = Float64(x * y);
	elseif (Float64(x * y) <= -5e-48)
		tmp = t_2;
	elseif (Float64(x * y) <= -1e-53)
		tmp = t_1;
	elseif (Float64(x * y) <= -5e-58)
		tmp = t_3;
	elseif (Float64(x * y) <= -4e-168)
		tmp = t_2;
	elseif (Float64(x * y) <= -1e-174)
		tmp = t_3;
	elseif (Float64(x * y) <= -1e-182)
		tmp = t_2;
	elseif (Float64(x * y) <= -2e-190)
		tmp = t_1;
	elseif (Float64(x * y) <= -4e-237)
		tmp = t_4;
	elseif (Float64(x * y) <= 1e-165)
		tmp = t_2;
	elseif (Float64(x * y) <= 5e-119)
		tmp = t_3;
	elseif (Float64(x * y) <= 2e-107)
		tmp = t_1;
	elseif (Float64(x * y) <= 5e-61)
		tmp = t_2;
	elseif (Float64(x * y) <= 1e-38)
		tmp = t_3;
	elseif (Float64(x * y) <= 5e-37)
		tmp = t_4;
	elseif (Float64(x * y) <= 2e-22)
		tmp = t_2;
	elseif (Float64(x * y) <= 2e+15)
		tmp = t_4;
	elseif (Float64(x * y) <= 5e+43)
		tmp = t_3;
	elseif (Float64(x * y) <= 1e+62)
		tmp = t_1;
	elseif (Float64(x * y) <= 7.5e+84)
		tmp = t_2;
	elseif (Float64(x * y) <= 5e+104)
		tmp = Float64(z * Float64(t + Float64(Float64(x * y) / z)));
	elseif (Float64(x * y) <= 5e+113)
		tmp = t_1;
	elseif (Float64(x * y) <= 1e+138)
		tmp = t_2;
	elseif (Float64(x * y) <= 5e+164)
		tmp = t_1;
	elseif (Float64(x * y) <= 1.3e+201)
		tmp = t_3;
	elseif (Float64(x * y) <= 2e+208)
		tmp = t_1;
	elseif (Float64(x * y) <= 2e+274)
		tmp = t_3;
	else
		tmp = Float64(z * Float64(t + Float64(y * Float64(x / z))));
	end
	return tmp
end
function tmp_2 = code(x, y, z, t, a, b)
	t_1 = (x * y) + (a * b);
	t_2 = (a * b) + (z * t);
	t_3 = (x * y) + (z * t);
	t_4 = b * (a + ((z * t) / b));
	tmp = 0.0;
	if ((x * y) <= -4e+111)
		tmp = t_1;
	elseif ((x * y) <= -1e-17)
		tmp = t_2;
	elseif ((x * y) <= -1e-19)
		tmp = x * y;
	elseif ((x * y) <= -5e-48)
		tmp = t_2;
	elseif ((x * y) <= -1e-53)
		tmp = t_1;
	elseif ((x * y) <= -5e-58)
		tmp = t_3;
	elseif ((x * y) <= -4e-168)
		tmp = t_2;
	elseif ((x * y) <= -1e-174)
		tmp = t_3;
	elseif ((x * y) <= -1e-182)
		tmp = t_2;
	elseif ((x * y) <= -2e-190)
		tmp = t_1;
	elseif ((x * y) <= -4e-237)
		tmp = t_4;
	elseif ((x * y) <= 1e-165)
		tmp = t_2;
	elseif ((x * y) <= 5e-119)
		tmp = t_3;
	elseif ((x * y) <= 2e-107)
		tmp = t_1;
	elseif ((x * y) <= 5e-61)
		tmp = t_2;
	elseif ((x * y) <= 1e-38)
		tmp = t_3;
	elseif ((x * y) <= 5e-37)
		tmp = t_4;
	elseif ((x * y) <= 2e-22)
		tmp = t_2;
	elseif ((x * y) <= 2e+15)
		tmp = t_4;
	elseif ((x * y) <= 5e+43)
		tmp = t_3;
	elseif ((x * y) <= 1e+62)
		tmp = t_1;
	elseif ((x * y) <= 7.5e+84)
		tmp = t_2;
	elseif ((x * y) <= 5e+104)
		tmp = z * (t + ((x * y) / z));
	elseif ((x * y) <= 5e+113)
		tmp = t_1;
	elseif ((x * y) <= 1e+138)
		tmp = t_2;
	elseif ((x * y) <= 5e+164)
		tmp = t_1;
	elseif ((x * y) <= 1.3e+201)
		tmp = t_3;
	elseif ((x * y) <= 2e+208)
		tmp = t_1;
	elseif ((x * y) <= 2e+274)
		tmp = t_3;
	else
		tmp = z * (t + (y * (x / z)));
	end
	tmp_2 = tmp;
end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(x * y), $MachinePrecision] + N[(a * b), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(a * b), $MachinePrecision] + N[(z * t), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(x * y), $MachinePrecision] + N[(z * t), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[(b * N[(a + N[(N[(z * t), $MachinePrecision] / b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[(x * y), $MachinePrecision], -4e+111], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], -1e-17], t$95$2, If[LessEqual[N[(x * y), $MachinePrecision], -1e-19], N[(x * y), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -5e-48], t$95$2, If[LessEqual[N[(x * y), $MachinePrecision], -1e-53], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], -5e-58], t$95$3, If[LessEqual[N[(x * y), $MachinePrecision], -4e-168], t$95$2, If[LessEqual[N[(x * y), $MachinePrecision], -1e-174], t$95$3, If[LessEqual[N[(x * y), $MachinePrecision], -1e-182], t$95$2, If[LessEqual[N[(x * y), $MachinePrecision], -2e-190], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], -4e-237], t$95$4, If[LessEqual[N[(x * y), $MachinePrecision], 1e-165], t$95$2, If[LessEqual[N[(x * y), $MachinePrecision], 5e-119], t$95$3, If[LessEqual[N[(x * y), $MachinePrecision], 2e-107], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], 5e-61], t$95$2, If[LessEqual[N[(x * y), $MachinePrecision], 1e-38], t$95$3, If[LessEqual[N[(x * y), $MachinePrecision], 5e-37], t$95$4, If[LessEqual[N[(x * y), $MachinePrecision], 2e-22], t$95$2, If[LessEqual[N[(x * y), $MachinePrecision], 2e+15], t$95$4, If[LessEqual[N[(x * y), $MachinePrecision], 5e+43], t$95$3, If[LessEqual[N[(x * y), $MachinePrecision], 1e+62], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], 7.5e+84], t$95$2, If[LessEqual[N[(x * y), $MachinePrecision], 5e+104], N[(z * N[(t + N[(N[(x * y), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 5e+113], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], 1e+138], t$95$2, If[LessEqual[N[(x * y), $MachinePrecision], 5e+164], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], 1.3e+201], t$95$3, If[LessEqual[N[(x * y), $MachinePrecision], 2e+208], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], 2e+274], t$95$3, N[(z * N[(t + N[(y * N[(x / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_1 := x \cdot y + a \cdot b\\
t_2 := a \cdot b + z \cdot t\\
t_3 := x \cdot y + z \cdot t\\
t_4 := b \cdot \left(a + \frac{z \cdot t}{b}\right)\\
\mathbf{if}\;x \cdot y \leq -4 \cdot 10^{+111}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-17}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-19}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;x \cdot y \leq -5 \cdot 10^{-48}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-53}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq -5 \cdot 10^{-58}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;x \cdot y \leq -4 \cdot 10^{-168}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-174}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-182}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \cdot y \leq -2 \cdot 10^{-190}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq -4 \cdot 10^{-237}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;x \cdot y \leq 10^{-165}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-119}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{-107}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-61}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \cdot y \leq 10^{-38}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-37}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{-22}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+15}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+43}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;x \cdot y \leq 10^{+62}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq 7.5 \cdot 10^{+84}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+104}:\\
\;\;\;\;z \cdot \left(t + \frac{x \cdot y}{z}\right)\\

\mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+113}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq 10^{+138}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+164}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq 1.3 \cdot 10^{+201}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+208}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+274}:\\
\;\;\;\;t\_3\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 7 regimes
  2. if (*.f64 x y) < -3.99999999999999983e111 or -4.9999999999999999e-48 < (*.f64 x y) < -1.00000000000000003e-53 or -1e-182 < (*.f64 x y) < -2e-190 or 4.99999999999999993e-119 < (*.f64 x y) < 2e-107 or 5.0000000000000004e43 < (*.f64 x y) < 1.00000000000000004e62 or 4.9999999999999997e104 < (*.f64 x y) < 5e113 or 1e138 < (*.f64 x y) < 4.9999999999999995e164 or 1.29999999999999993e201 < (*.f64 x y) < 2e208

    1. Initial program 95.4%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in z around 0 92.1%

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

    if -3.99999999999999983e111 < (*.f64 x y) < -1.00000000000000007e-17 or -9.9999999999999998e-20 < (*.f64 x y) < -4.9999999999999999e-48 or -4.99999999999999977e-58 < (*.f64 x y) < -4.0000000000000002e-168 or -1e-174 < (*.f64 x y) < -1e-182 or -4e-237 < (*.f64 x y) < 1e-165 or 2e-107 < (*.f64 x y) < 4.9999999999999999e-61 or 4.9999999999999997e-37 < (*.f64 x y) < 2.0000000000000001e-22 or 1.00000000000000004e62 < (*.f64 x y) < 7.5000000000000001e84 or 5e113 < (*.f64 x y) < 1e138

    1. Initial program 100.0%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in x around 0 96.9%

      \[\leadsto \color{blue}{a \cdot b + t \cdot z} \]

    if -1.00000000000000007e-17 < (*.f64 x y) < -9.9999999999999998e-20

    1. Initial program 100.0%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in x around inf 100.0%

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

    if -1.00000000000000003e-53 < (*.f64 x y) < -4.99999999999999977e-58 or -4.0000000000000002e-168 < (*.f64 x y) < -1e-174 or 1e-165 < (*.f64 x y) < 4.99999999999999993e-119 or 4.9999999999999999e-61 < (*.f64 x y) < 9.9999999999999996e-39 or 2e15 < (*.f64 x y) < 5.0000000000000004e43 or 4.9999999999999995e164 < (*.f64 x y) < 1.29999999999999993e201 or 2e208 < (*.f64 x y) < 1.99999999999999984e274

    1. Initial program 100.0%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in a around 0 100.0%

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

    if -2e-190 < (*.f64 x y) < -4e-237 or 9.9999999999999996e-39 < (*.f64 x y) < 4.9999999999999997e-37 or 2.0000000000000001e-22 < (*.f64 x y) < 2e15

    1. Initial program 84.5%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in b around inf 99.9%

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

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

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

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

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

    if 7.5000000000000001e84 < (*.f64 x y) < 4.9999999999999997e104

    1. Initial program 99.6%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in z around inf 100.0%

      \[\leadsto \color{blue}{z \cdot \left(t + \frac{x \cdot y}{z}\right)} + a \cdot b \]
    4. Taylor expanded in a around 0 100.0%

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

    if 1.99999999999999984e274 < (*.f64 x y)

    1. Initial program 75.0%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in b around inf 81.3%

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

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

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

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

      \[\leadsto \color{blue}{z \cdot \left(t + \frac{b \cdot \left(a + \frac{x \cdot y}{b}\right)}{z}\right)} \]
    7. Taylor expanded in b around 0 87.5%

      \[\leadsto z \cdot \left(t + \color{blue}{\frac{x \cdot y}{z}}\right) \]
    8. Step-by-step derivation
      1. *-commutative87.5%

        \[\leadsto z \cdot \left(t + \frac{\color{blue}{y \cdot x}}{z}\right) \]
      2. associate-*r/100.0%

        \[\leadsto z \cdot \left(t + \color{blue}{y \cdot \frac{x}{z}}\right) \]
    9. Simplified100.0%

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \cdot y \leq -4 \cdot 10^{+111}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-17}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-19}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq -5 \cdot 10^{-48}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-53}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -5 \cdot 10^{-58}:\\ \;\;\;\;x \cdot y + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -4 \cdot 10^{-168}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-174}:\\ \;\;\;\;x \cdot y + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-182}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -2 \cdot 10^{-190}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -4 \cdot 10^{-237}:\\ \;\;\;\;b \cdot \left(a + \frac{z \cdot t}{b}\right)\\ \mathbf{elif}\;x \cdot y \leq 10^{-165}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-119}:\\ \;\;\;\;x \cdot y + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{-107}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-61}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 10^{-38}:\\ \;\;\;\;x \cdot y + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-37}:\\ \;\;\;\;b \cdot \left(a + \frac{z \cdot t}{b}\right)\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{-22}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+15}:\\ \;\;\;\;b \cdot \left(a + \frac{z \cdot t}{b}\right)\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+43}:\\ \;\;\;\;x \cdot y + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 10^{+62}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 7.5 \cdot 10^{+84}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+104}:\\ \;\;\;\;z \cdot \left(t + \frac{x \cdot y}{z}\right)\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+113}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 10^{+138}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+164}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 1.3 \cdot 10^{+201}:\\ \;\;\;\;x \cdot y + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+208}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+274}:\\ \;\;\;\;x \cdot y + z \cdot t\\ \mathbf{else}:\\ \;\;\;\;z \cdot \left(t + y \cdot \frac{x}{z}\right)\\ \end{array} \]
  5. Add Preprocessing

Alternative 8: 81.2% accurate, 0.1× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_1 := x \cdot y + a \cdot b\\ t_2 := a \cdot b + z \cdot t\\ t_3 := x \cdot y + z \cdot t\\ t_4 := b \cdot \left(a + \frac{z \cdot t}{b}\right)\\ \mathbf{if}\;x \cdot y \leq -4 \cdot 10^{+111}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-17}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-19}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq -5 \cdot 10^{-48}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-53}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq -5 \cdot 10^{-58}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;x \cdot y \leq -4 \cdot 10^{-168}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-174}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-182}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \cdot y \leq -2 \cdot 10^{-190}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq -4 \cdot 10^{-237}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;x \cdot y \leq 10^{-165}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-119}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{-107}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-61}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \cdot y \leq 10^{-38}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-37}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{-22}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+15}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+43}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;x \cdot y \leq 10^{+62}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq 7.5 \cdot 10^{+84}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+104}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+113}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq 10^{+138}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+164}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq 1.3 \cdot 10^{+201}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+208}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+229}:\\ \;\;\;\;t\_3\\ \mathbf{else}:\\ \;\;\;\;x \cdot y\\ \end{array} \end{array} \]
(FPCore (x y z t a b)
 :precision binary64
 (let* ((t_1 (+ (* x y) (* a b)))
        (t_2 (+ (* a b) (* z t)))
        (t_3 (+ (* x y) (* z t)))
        (t_4 (* b (+ a (/ (* z t) b)))))
   (if (<= (* x y) -4e+111)
     t_1
     (if (<= (* x y) -1e-17)
       t_2
       (if (<= (* x y) -1e-19)
         (* x y)
         (if (<= (* x y) -5e-48)
           t_2
           (if (<= (* x y) -1e-53)
             t_1
             (if (<= (* x y) -5e-58)
               t_3
               (if (<= (* x y) -4e-168)
                 t_2
                 (if (<= (* x y) -1e-174)
                   t_3
                   (if (<= (* x y) -1e-182)
                     t_2
                     (if (<= (* x y) -2e-190)
                       t_1
                       (if (<= (* x y) -4e-237)
                         t_4
                         (if (<= (* x y) 1e-165)
                           t_2
                           (if (<= (* x y) 5e-119)
                             t_3
                             (if (<= (* x y) 2e-107)
                               t_1
                               (if (<= (* x y) 5e-61)
                                 t_2
                                 (if (<= (* x y) 1e-38)
                                   t_3
                                   (if (<= (* x y) 5e-37)
                                     t_4
                                     (if (<= (* x y) 2e-22)
                                       t_2
                                       (if (<= (* x y) 2e+15)
                                         t_4
                                         (if (<= (* x y) 5e+43)
                                           t_3
                                           (if (<= (* x y) 1e+62)
                                             t_1
                                             (if (<= (* x y) 7.5e+84)
                                               t_2
                                               (if (<= (* x y) 5e+104)
                                                 t_3
                                                 (if (<= (* x y) 5e+113)
                                                   t_1
                                                   (if (<= (* x y) 1e+138)
                                                     t_2
                                                     (if (<= (* x y) 5e+164)
                                                       t_1
                                                       (if (<=
                                                            (* x y)
                                                            1.3e+201)
                                                         t_3
                                                         (if (<=
                                                              (* x y)
                                                              2e+208)
                                                           t_1
                                                           (if (<=
                                                                (* x y)
                                                                2e+229)
                                                             t_3
                                                             (*
                                                              x
                                                              y))))))))))))))))))))))))))))))))
double code(double x, double y, double z, double t, double a, double b) {
	double t_1 = (x * y) + (a * b);
	double t_2 = (a * b) + (z * t);
	double t_3 = (x * y) + (z * t);
	double t_4 = b * (a + ((z * t) / b));
	double tmp;
	if ((x * y) <= -4e+111) {
		tmp = t_1;
	} else if ((x * y) <= -1e-17) {
		tmp = t_2;
	} else if ((x * y) <= -1e-19) {
		tmp = x * y;
	} else if ((x * y) <= -5e-48) {
		tmp = t_2;
	} else if ((x * y) <= -1e-53) {
		tmp = t_1;
	} else if ((x * y) <= -5e-58) {
		tmp = t_3;
	} else if ((x * y) <= -4e-168) {
		tmp = t_2;
	} else if ((x * y) <= -1e-174) {
		tmp = t_3;
	} else if ((x * y) <= -1e-182) {
		tmp = t_2;
	} else if ((x * y) <= -2e-190) {
		tmp = t_1;
	} else if ((x * y) <= -4e-237) {
		tmp = t_4;
	} else if ((x * y) <= 1e-165) {
		tmp = t_2;
	} else if ((x * y) <= 5e-119) {
		tmp = t_3;
	} else if ((x * y) <= 2e-107) {
		tmp = t_1;
	} else if ((x * y) <= 5e-61) {
		tmp = t_2;
	} else if ((x * y) <= 1e-38) {
		tmp = t_3;
	} else if ((x * y) <= 5e-37) {
		tmp = t_4;
	} else if ((x * y) <= 2e-22) {
		tmp = t_2;
	} else if ((x * y) <= 2e+15) {
		tmp = t_4;
	} else if ((x * y) <= 5e+43) {
		tmp = t_3;
	} else if ((x * y) <= 1e+62) {
		tmp = t_1;
	} else if ((x * y) <= 7.5e+84) {
		tmp = t_2;
	} else if ((x * y) <= 5e+104) {
		tmp = t_3;
	} else if ((x * y) <= 5e+113) {
		tmp = t_1;
	} else if ((x * y) <= 1e+138) {
		tmp = t_2;
	} else if ((x * y) <= 5e+164) {
		tmp = t_1;
	} else if ((x * y) <= 1.3e+201) {
		tmp = t_3;
	} else if ((x * y) <= 2e+208) {
		tmp = t_1;
	} else if ((x * y) <= 2e+229) {
		tmp = t_3;
	} else {
		tmp = x * y;
	}
	return tmp;
}
real(8) function code(x, y, z, t, a, b)
    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), intent (in) :: b
    real(8) :: t_1
    real(8) :: t_2
    real(8) :: t_3
    real(8) :: t_4
    real(8) :: tmp
    t_1 = (x * y) + (a * b)
    t_2 = (a * b) + (z * t)
    t_3 = (x * y) + (z * t)
    t_4 = b * (a + ((z * t) / b))
    if ((x * y) <= (-4d+111)) then
        tmp = t_1
    else if ((x * y) <= (-1d-17)) then
        tmp = t_2
    else if ((x * y) <= (-1d-19)) then
        tmp = x * y
    else if ((x * y) <= (-5d-48)) then
        tmp = t_2
    else if ((x * y) <= (-1d-53)) then
        tmp = t_1
    else if ((x * y) <= (-5d-58)) then
        tmp = t_3
    else if ((x * y) <= (-4d-168)) then
        tmp = t_2
    else if ((x * y) <= (-1d-174)) then
        tmp = t_3
    else if ((x * y) <= (-1d-182)) then
        tmp = t_2
    else if ((x * y) <= (-2d-190)) then
        tmp = t_1
    else if ((x * y) <= (-4d-237)) then
        tmp = t_4
    else if ((x * y) <= 1d-165) then
        tmp = t_2
    else if ((x * y) <= 5d-119) then
        tmp = t_3
    else if ((x * y) <= 2d-107) then
        tmp = t_1
    else if ((x * y) <= 5d-61) then
        tmp = t_2
    else if ((x * y) <= 1d-38) then
        tmp = t_3
    else if ((x * y) <= 5d-37) then
        tmp = t_4
    else if ((x * y) <= 2d-22) then
        tmp = t_2
    else if ((x * y) <= 2d+15) then
        tmp = t_4
    else if ((x * y) <= 5d+43) then
        tmp = t_3
    else if ((x * y) <= 1d+62) then
        tmp = t_1
    else if ((x * y) <= 7.5d+84) then
        tmp = t_2
    else if ((x * y) <= 5d+104) then
        tmp = t_3
    else if ((x * y) <= 5d+113) then
        tmp = t_1
    else if ((x * y) <= 1d+138) then
        tmp = t_2
    else if ((x * y) <= 5d+164) then
        tmp = t_1
    else if ((x * y) <= 1.3d+201) then
        tmp = t_3
    else if ((x * y) <= 2d+208) then
        tmp = t_1
    else if ((x * y) <= 2d+229) then
        tmp = t_3
    else
        tmp = x * y
    end if
    code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
	double t_1 = (x * y) + (a * b);
	double t_2 = (a * b) + (z * t);
	double t_3 = (x * y) + (z * t);
	double t_4 = b * (a + ((z * t) / b));
	double tmp;
	if ((x * y) <= -4e+111) {
		tmp = t_1;
	} else if ((x * y) <= -1e-17) {
		tmp = t_2;
	} else if ((x * y) <= -1e-19) {
		tmp = x * y;
	} else if ((x * y) <= -5e-48) {
		tmp = t_2;
	} else if ((x * y) <= -1e-53) {
		tmp = t_1;
	} else if ((x * y) <= -5e-58) {
		tmp = t_3;
	} else if ((x * y) <= -4e-168) {
		tmp = t_2;
	} else if ((x * y) <= -1e-174) {
		tmp = t_3;
	} else if ((x * y) <= -1e-182) {
		tmp = t_2;
	} else if ((x * y) <= -2e-190) {
		tmp = t_1;
	} else if ((x * y) <= -4e-237) {
		tmp = t_4;
	} else if ((x * y) <= 1e-165) {
		tmp = t_2;
	} else if ((x * y) <= 5e-119) {
		tmp = t_3;
	} else if ((x * y) <= 2e-107) {
		tmp = t_1;
	} else if ((x * y) <= 5e-61) {
		tmp = t_2;
	} else if ((x * y) <= 1e-38) {
		tmp = t_3;
	} else if ((x * y) <= 5e-37) {
		tmp = t_4;
	} else if ((x * y) <= 2e-22) {
		tmp = t_2;
	} else if ((x * y) <= 2e+15) {
		tmp = t_4;
	} else if ((x * y) <= 5e+43) {
		tmp = t_3;
	} else if ((x * y) <= 1e+62) {
		tmp = t_1;
	} else if ((x * y) <= 7.5e+84) {
		tmp = t_2;
	} else if ((x * y) <= 5e+104) {
		tmp = t_3;
	} else if ((x * y) <= 5e+113) {
		tmp = t_1;
	} else if ((x * y) <= 1e+138) {
		tmp = t_2;
	} else if ((x * y) <= 5e+164) {
		tmp = t_1;
	} else if ((x * y) <= 1.3e+201) {
		tmp = t_3;
	} else if ((x * y) <= 2e+208) {
		tmp = t_1;
	} else if ((x * y) <= 2e+229) {
		tmp = t_3;
	} else {
		tmp = x * y;
	}
	return tmp;
}
def code(x, y, z, t, a, b):
	t_1 = (x * y) + (a * b)
	t_2 = (a * b) + (z * t)
	t_3 = (x * y) + (z * t)
	t_4 = b * (a + ((z * t) / b))
	tmp = 0
	if (x * y) <= -4e+111:
		tmp = t_1
	elif (x * y) <= -1e-17:
		tmp = t_2
	elif (x * y) <= -1e-19:
		tmp = x * y
	elif (x * y) <= -5e-48:
		tmp = t_2
	elif (x * y) <= -1e-53:
		tmp = t_1
	elif (x * y) <= -5e-58:
		tmp = t_3
	elif (x * y) <= -4e-168:
		tmp = t_2
	elif (x * y) <= -1e-174:
		tmp = t_3
	elif (x * y) <= -1e-182:
		tmp = t_2
	elif (x * y) <= -2e-190:
		tmp = t_1
	elif (x * y) <= -4e-237:
		tmp = t_4
	elif (x * y) <= 1e-165:
		tmp = t_2
	elif (x * y) <= 5e-119:
		tmp = t_3
	elif (x * y) <= 2e-107:
		tmp = t_1
	elif (x * y) <= 5e-61:
		tmp = t_2
	elif (x * y) <= 1e-38:
		tmp = t_3
	elif (x * y) <= 5e-37:
		tmp = t_4
	elif (x * y) <= 2e-22:
		tmp = t_2
	elif (x * y) <= 2e+15:
		tmp = t_4
	elif (x * y) <= 5e+43:
		tmp = t_3
	elif (x * y) <= 1e+62:
		tmp = t_1
	elif (x * y) <= 7.5e+84:
		tmp = t_2
	elif (x * y) <= 5e+104:
		tmp = t_3
	elif (x * y) <= 5e+113:
		tmp = t_1
	elif (x * y) <= 1e+138:
		tmp = t_2
	elif (x * y) <= 5e+164:
		tmp = t_1
	elif (x * y) <= 1.3e+201:
		tmp = t_3
	elif (x * y) <= 2e+208:
		tmp = t_1
	elif (x * y) <= 2e+229:
		tmp = t_3
	else:
		tmp = x * y
	return tmp
function code(x, y, z, t, a, b)
	t_1 = Float64(Float64(x * y) + Float64(a * b))
	t_2 = Float64(Float64(a * b) + Float64(z * t))
	t_3 = Float64(Float64(x * y) + Float64(z * t))
	t_4 = Float64(b * Float64(a + Float64(Float64(z * t) / b)))
	tmp = 0.0
	if (Float64(x * y) <= -4e+111)
		tmp = t_1;
	elseif (Float64(x * y) <= -1e-17)
		tmp = t_2;
	elseif (Float64(x * y) <= -1e-19)
		tmp = Float64(x * y);
	elseif (Float64(x * y) <= -5e-48)
		tmp = t_2;
	elseif (Float64(x * y) <= -1e-53)
		tmp = t_1;
	elseif (Float64(x * y) <= -5e-58)
		tmp = t_3;
	elseif (Float64(x * y) <= -4e-168)
		tmp = t_2;
	elseif (Float64(x * y) <= -1e-174)
		tmp = t_3;
	elseif (Float64(x * y) <= -1e-182)
		tmp = t_2;
	elseif (Float64(x * y) <= -2e-190)
		tmp = t_1;
	elseif (Float64(x * y) <= -4e-237)
		tmp = t_4;
	elseif (Float64(x * y) <= 1e-165)
		tmp = t_2;
	elseif (Float64(x * y) <= 5e-119)
		tmp = t_3;
	elseif (Float64(x * y) <= 2e-107)
		tmp = t_1;
	elseif (Float64(x * y) <= 5e-61)
		tmp = t_2;
	elseif (Float64(x * y) <= 1e-38)
		tmp = t_3;
	elseif (Float64(x * y) <= 5e-37)
		tmp = t_4;
	elseif (Float64(x * y) <= 2e-22)
		tmp = t_2;
	elseif (Float64(x * y) <= 2e+15)
		tmp = t_4;
	elseif (Float64(x * y) <= 5e+43)
		tmp = t_3;
	elseif (Float64(x * y) <= 1e+62)
		tmp = t_1;
	elseif (Float64(x * y) <= 7.5e+84)
		tmp = t_2;
	elseif (Float64(x * y) <= 5e+104)
		tmp = t_3;
	elseif (Float64(x * y) <= 5e+113)
		tmp = t_1;
	elseif (Float64(x * y) <= 1e+138)
		tmp = t_2;
	elseif (Float64(x * y) <= 5e+164)
		tmp = t_1;
	elseif (Float64(x * y) <= 1.3e+201)
		tmp = t_3;
	elseif (Float64(x * y) <= 2e+208)
		tmp = t_1;
	elseif (Float64(x * y) <= 2e+229)
		tmp = t_3;
	else
		tmp = Float64(x * y);
	end
	return tmp
end
function tmp_2 = code(x, y, z, t, a, b)
	t_1 = (x * y) + (a * b);
	t_2 = (a * b) + (z * t);
	t_3 = (x * y) + (z * t);
	t_4 = b * (a + ((z * t) / b));
	tmp = 0.0;
	if ((x * y) <= -4e+111)
		tmp = t_1;
	elseif ((x * y) <= -1e-17)
		tmp = t_2;
	elseif ((x * y) <= -1e-19)
		tmp = x * y;
	elseif ((x * y) <= -5e-48)
		tmp = t_2;
	elseif ((x * y) <= -1e-53)
		tmp = t_1;
	elseif ((x * y) <= -5e-58)
		tmp = t_3;
	elseif ((x * y) <= -4e-168)
		tmp = t_2;
	elseif ((x * y) <= -1e-174)
		tmp = t_3;
	elseif ((x * y) <= -1e-182)
		tmp = t_2;
	elseif ((x * y) <= -2e-190)
		tmp = t_1;
	elseif ((x * y) <= -4e-237)
		tmp = t_4;
	elseif ((x * y) <= 1e-165)
		tmp = t_2;
	elseif ((x * y) <= 5e-119)
		tmp = t_3;
	elseif ((x * y) <= 2e-107)
		tmp = t_1;
	elseif ((x * y) <= 5e-61)
		tmp = t_2;
	elseif ((x * y) <= 1e-38)
		tmp = t_3;
	elseif ((x * y) <= 5e-37)
		tmp = t_4;
	elseif ((x * y) <= 2e-22)
		tmp = t_2;
	elseif ((x * y) <= 2e+15)
		tmp = t_4;
	elseif ((x * y) <= 5e+43)
		tmp = t_3;
	elseif ((x * y) <= 1e+62)
		tmp = t_1;
	elseif ((x * y) <= 7.5e+84)
		tmp = t_2;
	elseif ((x * y) <= 5e+104)
		tmp = t_3;
	elseif ((x * y) <= 5e+113)
		tmp = t_1;
	elseif ((x * y) <= 1e+138)
		tmp = t_2;
	elseif ((x * y) <= 5e+164)
		tmp = t_1;
	elseif ((x * y) <= 1.3e+201)
		tmp = t_3;
	elseif ((x * y) <= 2e+208)
		tmp = t_1;
	elseif ((x * y) <= 2e+229)
		tmp = t_3;
	else
		tmp = x * y;
	end
	tmp_2 = tmp;
end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(x * y), $MachinePrecision] + N[(a * b), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(a * b), $MachinePrecision] + N[(z * t), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(x * y), $MachinePrecision] + N[(z * t), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[(b * N[(a + N[(N[(z * t), $MachinePrecision] / b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[(x * y), $MachinePrecision], -4e+111], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], -1e-17], t$95$2, If[LessEqual[N[(x * y), $MachinePrecision], -1e-19], N[(x * y), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], -5e-48], t$95$2, If[LessEqual[N[(x * y), $MachinePrecision], -1e-53], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], -5e-58], t$95$3, If[LessEqual[N[(x * y), $MachinePrecision], -4e-168], t$95$2, If[LessEqual[N[(x * y), $MachinePrecision], -1e-174], t$95$3, If[LessEqual[N[(x * y), $MachinePrecision], -1e-182], t$95$2, If[LessEqual[N[(x * y), $MachinePrecision], -2e-190], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], -4e-237], t$95$4, If[LessEqual[N[(x * y), $MachinePrecision], 1e-165], t$95$2, If[LessEqual[N[(x * y), $MachinePrecision], 5e-119], t$95$3, If[LessEqual[N[(x * y), $MachinePrecision], 2e-107], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], 5e-61], t$95$2, If[LessEqual[N[(x * y), $MachinePrecision], 1e-38], t$95$3, If[LessEqual[N[(x * y), $MachinePrecision], 5e-37], t$95$4, If[LessEqual[N[(x * y), $MachinePrecision], 2e-22], t$95$2, If[LessEqual[N[(x * y), $MachinePrecision], 2e+15], t$95$4, If[LessEqual[N[(x * y), $MachinePrecision], 5e+43], t$95$3, If[LessEqual[N[(x * y), $MachinePrecision], 1e+62], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], 7.5e+84], t$95$2, If[LessEqual[N[(x * y), $MachinePrecision], 5e+104], t$95$3, If[LessEqual[N[(x * y), $MachinePrecision], 5e+113], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], 1e+138], t$95$2, If[LessEqual[N[(x * y), $MachinePrecision], 5e+164], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], 1.3e+201], t$95$3, If[LessEqual[N[(x * y), $MachinePrecision], 2e+208], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], 2e+229], t$95$3, N[(x * y), $MachinePrecision]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_1 := x \cdot y + a \cdot b\\
t_2 := a \cdot b + z \cdot t\\
t_3 := x \cdot y + z \cdot t\\
t_4 := b \cdot \left(a + \frac{z \cdot t}{b}\right)\\
\mathbf{if}\;x \cdot y \leq -4 \cdot 10^{+111}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-17}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-19}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;x \cdot y \leq -5 \cdot 10^{-48}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-53}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq -5 \cdot 10^{-58}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;x \cdot y \leq -4 \cdot 10^{-168}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-174}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-182}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \cdot y \leq -2 \cdot 10^{-190}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq -4 \cdot 10^{-237}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;x \cdot y \leq 10^{-165}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-119}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{-107}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-61}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \cdot y \leq 10^{-38}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-37}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{-22}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+15}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+43}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;x \cdot y \leq 10^{+62}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq 7.5 \cdot 10^{+84}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+104}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+113}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq 10^{+138}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+164}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq 1.3 \cdot 10^{+201}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+208}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+229}:\\
\;\;\;\;t\_3\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 5 regimes
  2. if (*.f64 x y) < -3.99999999999999983e111 or -4.9999999999999999e-48 < (*.f64 x y) < -1.00000000000000003e-53 or -1e-182 < (*.f64 x y) < -2e-190 or 4.99999999999999993e-119 < (*.f64 x y) < 2e-107 or 5.0000000000000004e43 < (*.f64 x y) < 1.00000000000000004e62 or 4.9999999999999997e104 < (*.f64 x y) < 5e113 or 1e138 < (*.f64 x y) < 4.9999999999999995e164 or 1.29999999999999993e201 < (*.f64 x y) < 2e208

    1. Initial program 95.4%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in z around 0 92.1%

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

    if -3.99999999999999983e111 < (*.f64 x y) < -1.00000000000000007e-17 or -9.9999999999999998e-20 < (*.f64 x y) < -4.9999999999999999e-48 or -4.99999999999999977e-58 < (*.f64 x y) < -4.0000000000000002e-168 or -1e-174 < (*.f64 x y) < -1e-182 or -4e-237 < (*.f64 x y) < 1e-165 or 2e-107 < (*.f64 x y) < 4.9999999999999999e-61 or 4.9999999999999997e-37 < (*.f64 x y) < 2.0000000000000001e-22 or 1.00000000000000004e62 < (*.f64 x y) < 7.5000000000000001e84 or 5e113 < (*.f64 x y) < 1e138

    1. Initial program 100.0%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in x around 0 96.9%

      \[\leadsto \color{blue}{a \cdot b + t \cdot z} \]

    if -1.00000000000000007e-17 < (*.f64 x y) < -9.9999999999999998e-20 or 2e229 < (*.f64 x y)

    1. Initial program 81.8%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in x around inf 90.9%

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

    if -1.00000000000000003e-53 < (*.f64 x y) < -4.99999999999999977e-58 or -4.0000000000000002e-168 < (*.f64 x y) < -1e-174 or 1e-165 < (*.f64 x y) < 4.99999999999999993e-119 or 4.9999999999999999e-61 < (*.f64 x y) < 9.9999999999999996e-39 or 2e15 < (*.f64 x y) < 5.0000000000000004e43 or 7.5000000000000001e84 < (*.f64 x y) < 4.9999999999999997e104 or 4.9999999999999995e164 < (*.f64 x y) < 1.29999999999999993e201 or 2e208 < (*.f64 x y) < 2e229

    1. Initial program 100.0%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in a around 0 100.0%

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

    if -2e-190 < (*.f64 x y) < -4e-237 or 9.9999999999999996e-39 < (*.f64 x y) < 4.9999999999999997e-37 or 2.0000000000000001e-22 < (*.f64 x y) < 2e15

    1. Initial program 84.5%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in b around inf 99.9%

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

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

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

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

      \[\leadsto \color{blue}{b \cdot \left(a + \frac{t \cdot z}{b}\right)} \]
  3. Recombined 5 regimes into one program.
  4. Final simplification95.7%

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \cdot y \leq -4 \cdot 10^{+111}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-17}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-19}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;x \cdot y \leq -5 \cdot 10^{-48}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-53}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -5 \cdot 10^{-58}:\\ \;\;\;\;x \cdot y + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -4 \cdot 10^{-168}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-174}:\\ \;\;\;\;x \cdot y + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-182}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq -2 \cdot 10^{-190}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq -4 \cdot 10^{-237}:\\ \;\;\;\;b \cdot \left(a + \frac{z \cdot t}{b}\right)\\ \mathbf{elif}\;x \cdot y \leq 10^{-165}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-119}:\\ \;\;\;\;x \cdot y + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{-107}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-61}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 10^{-38}:\\ \;\;\;\;x \cdot y + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-37}:\\ \;\;\;\;b \cdot \left(a + \frac{z \cdot t}{b}\right)\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{-22}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+15}:\\ \;\;\;\;b \cdot \left(a + \frac{z \cdot t}{b}\right)\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+43}:\\ \;\;\;\;x \cdot y + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 10^{+62}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 7.5 \cdot 10^{+84}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+104}:\\ \;\;\;\;x \cdot y + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+113}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 10^{+138}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+164}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 1.3 \cdot 10^{+201}:\\ \;\;\;\;x \cdot y + z \cdot t\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+208}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{+229}:\\ \;\;\;\;x \cdot y + z \cdot t\\ \mathbf{else}:\\ \;\;\;\;x \cdot y\\ \end{array} \]
  5. Add Preprocessing

Alternative 9: 98.7% accurate, 0.1× speedup?

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

\\
\mathsf{fma}\left(a, b, \mathsf{fma}\left(x, y, z \cdot t\right)\right)
\end{array}
Derivation
  1. Initial program 96.5%

    \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
  2. Step-by-step derivation
    1. +-commutative96.5%

      \[\leadsto \color{blue}{a \cdot b + \left(x \cdot y + z \cdot t\right)} \]
    2. fma-define98.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(a, b, x \cdot y + z \cdot t\right)} \]
    3. fma-define98.8%

      \[\leadsto \mathsf{fma}\left(a, b, \color{blue}{\mathsf{fma}\left(x, y, z \cdot t\right)}\right) \]
  3. Simplified98.8%

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

Alternative 10: 71.1% accurate, 0.1× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_1 := x \cdot y + a \cdot b\\ t_2 := a \cdot b + z \cdot t\\ \mathbf{if}\;z \leq -1.52 \cdot 10^{+54}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;z \leq -1.45 \cdot 10^{-7}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;z \leq -8.5 \cdot 10^{-13}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;z \leq -1.45 \cdot 10^{-15}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;z \leq -3.4 \cdot 10^{-28}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;z \leq -7.6 \cdot 10^{-70}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;z \leq -7.5 \cdot 10^{-70}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;z \leq -3.3 \cdot 10^{-89}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;z \leq -1.4 \cdot 10^{-97}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;z \leq -8.8 \cdot 10^{-106}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;z \leq -1.2 \cdot 10^{-113}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;z \leq -9.4 \cdot 10^{-130}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;z \leq -5 \cdot 10^{-152}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;z \leq -1.25 \cdot 10^{-186}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;z \leq -3.8 \cdot 10^{-207}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;z \leq -3.8 \cdot 10^{-241}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;z \leq -3.6 \cdot 10^{-241}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;z \leq -6.3 \cdot 10^{-246}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;z \leq 2.35 \cdot 10^{-254}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;z \leq 2.4 \cdot 10^{-254}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;z \leq 1.56 \cdot 10^{-203}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;z \leq 1.6 \cdot 10^{-203}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;z \leq 4.8 \cdot 10^{-198}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;z \leq 5.5 \cdot 10^{-182}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;z \leq 4.8 \cdot 10^{-128}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;z \leq 4.9 \cdot 10^{-128}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;z \leq 4.4 \cdot 10^{-107}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;z \leq 1.1 \cdot 10^{-101}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;z \leq 1.45 \cdot 10^{-59}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;z \leq 1.5 \cdot 10^{-59}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;z \leq 9.5 \cdot 10^{-49}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;z \leq 2.45 \cdot 10^{-42}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;z \leq 4 \cdot 10^{+30}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;z \leq 1.4 \cdot 10^{+95}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;z \leq 3.5 \cdot 10^{+104}:\\ \;\;\;\;x \cdot y\\ \mathbf{else}:\\ \;\;\;\;z \cdot t\\ \end{array} \end{array} \]
(FPCore (x y z t a b)
 :precision binary64
 (let* ((t_1 (+ (* x y) (* a b))) (t_2 (+ (* a b) (* z t))))
   (if (<= z -1.52e+54)
     t_2
     (if (<= z -1.45e-7)
       t_1
       (if (<= z -8.5e-13)
         (* z t)
         (if (<= z -1.45e-15)
           (* x y)
           (if (<= z -3.4e-28)
             t_2
             (if (<= z -7.6e-70)
               t_1
               (if (<= z -7.5e-70)
                 (* z t)
                 (if (<= z -3.3e-89)
                   t_1
                   (if (<= z -1.4e-97)
                     t_2
                     (if (<= z -8.8e-106)
                       t_1
                       (if (<= z -1.2e-113)
                         t_2
                         (if (<= z -9.4e-130)
                           t_1
                           (if (<= z -5e-152)
                             t_2
                             (if (<= z -1.25e-186)
                               t_1
                               (if (<= z -3.8e-207)
                                 t_2
                                 (if (<= z -3.8e-241)
                                   t_1
                                   (if (<= z -3.6e-241)
                                     (* z t)
                                     (if (<= z -6.3e-246)
                                       t_2
                                       (if (<= z 2.35e-254)
                                         t_1
                                         (if (<= z 2.4e-254)
                                           (* z t)
                                           (if (<= z 1.56e-203)
                                             t_1
                                             (if (<= z 1.6e-203)
                                               (* z t)
                                               (if (<= z 4.8e-198)
                                                 (* x y)
                                                 (if (<= z 5.5e-182)
                                                   t_2
                                                   (if (<= z 4.8e-128)
                                                     t_1
                                                     (if (<= z 4.9e-128)
                                                       (* z t)
                                                       (if (<= z 4.4e-107)
                                                         (* x y)
                                                         (if (<= z 1.1e-101)
                                                           (* z t)
                                                           (if (<= z 1.45e-59)
                                                             t_1
                                                             (if (<= z 1.5e-59)
                                                               (* z t)
                                                               (if (<=
                                                                    z
                                                                    9.5e-49)
                                                                 t_1
                                                                 (if (<=
                                                                      z
                                                                      2.45e-42)
                                                                   t_2
                                                                   (if (<=
                                                                        z
                                                                        4e+30)
                                                                     (* z t)
                                                                     (if (<=
                                                                          z
                                                                          1.4e+95)
                                                                       t_2
                                                                       (if (<=
                                                                            z
                                                                            3.5e+104)
                                                                         (*
                                                                          x
                                                                          y)
                                                                         (*
                                                                          z
                                                                          t))))))))))))))))))))))))))))))))))))))
double code(double x, double y, double z, double t, double a, double b) {
	double t_1 = (x * y) + (a * b);
	double t_2 = (a * b) + (z * t);
	double tmp;
	if (z <= -1.52e+54) {
		tmp = t_2;
	} else if (z <= -1.45e-7) {
		tmp = t_1;
	} else if (z <= -8.5e-13) {
		tmp = z * t;
	} else if (z <= -1.45e-15) {
		tmp = x * y;
	} else if (z <= -3.4e-28) {
		tmp = t_2;
	} else if (z <= -7.6e-70) {
		tmp = t_1;
	} else if (z <= -7.5e-70) {
		tmp = z * t;
	} else if (z <= -3.3e-89) {
		tmp = t_1;
	} else if (z <= -1.4e-97) {
		tmp = t_2;
	} else if (z <= -8.8e-106) {
		tmp = t_1;
	} else if (z <= -1.2e-113) {
		tmp = t_2;
	} else if (z <= -9.4e-130) {
		tmp = t_1;
	} else if (z <= -5e-152) {
		tmp = t_2;
	} else if (z <= -1.25e-186) {
		tmp = t_1;
	} else if (z <= -3.8e-207) {
		tmp = t_2;
	} else if (z <= -3.8e-241) {
		tmp = t_1;
	} else if (z <= -3.6e-241) {
		tmp = z * t;
	} else if (z <= -6.3e-246) {
		tmp = t_2;
	} else if (z <= 2.35e-254) {
		tmp = t_1;
	} else if (z <= 2.4e-254) {
		tmp = z * t;
	} else if (z <= 1.56e-203) {
		tmp = t_1;
	} else if (z <= 1.6e-203) {
		tmp = z * t;
	} else if (z <= 4.8e-198) {
		tmp = x * y;
	} else if (z <= 5.5e-182) {
		tmp = t_2;
	} else if (z <= 4.8e-128) {
		tmp = t_1;
	} else if (z <= 4.9e-128) {
		tmp = z * t;
	} else if (z <= 4.4e-107) {
		tmp = x * y;
	} else if (z <= 1.1e-101) {
		tmp = z * t;
	} else if (z <= 1.45e-59) {
		tmp = t_1;
	} else if (z <= 1.5e-59) {
		tmp = z * t;
	} else if (z <= 9.5e-49) {
		tmp = t_1;
	} else if (z <= 2.45e-42) {
		tmp = t_2;
	} else if (z <= 4e+30) {
		tmp = z * t;
	} else if (z <= 1.4e+95) {
		tmp = t_2;
	} else if (z <= 3.5e+104) {
		tmp = x * y;
	} else {
		tmp = z * t;
	}
	return tmp;
}
real(8) function code(x, y, z, t, a, b)
    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), intent (in) :: b
    real(8) :: t_1
    real(8) :: t_2
    real(8) :: tmp
    t_1 = (x * y) + (a * b)
    t_2 = (a * b) + (z * t)
    if (z <= (-1.52d+54)) then
        tmp = t_2
    else if (z <= (-1.45d-7)) then
        tmp = t_1
    else if (z <= (-8.5d-13)) then
        tmp = z * t
    else if (z <= (-1.45d-15)) then
        tmp = x * y
    else if (z <= (-3.4d-28)) then
        tmp = t_2
    else if (z <= (-7.6d-70)) then
        tmp = t_1
    else if (z <= (-7.5d-70)) then
        tmp = z * t
    else if (z <= (-3.3d-89)) then
        tmp = t_1
    else if (z <= (-1.4d-97)) then
        tmp = t_2
    else if (z <= (-8.8d-106)) then
        tmp = t_1
    else if (z <= (-1.2d-113)) then
        tmp = t_2
    else if (z <= (-9.4d-130)) then
        tmp = t_1
    else if (z <= (-5d-152)) then
        tmp = t_2
    else if (z <= (-1.25d-186)) then
        tmp = t_1
    else if (z <= (-3.8d-207)) then
        tmp = t_2
    else if (z <= (-3.8d-241)) then
        tmp = t_1
    else if (z <= (-3.6d-241)) then
        tmp = z * t
    else if (z <= (-6.3d-246)) then
        tmp = t_2
    else if (z <= 2.35d-254) then
        tmp = t_1
    else if (z <= 2.4d-254) then
        tmp = z * t
    else if (z <= 1.56d-203) then
        tmp = t_1
    else if (z <= 1.6d-203) then
        tmp = z * t
    else if (z <= 4.8d-198) then
        tmp = x * y
    else if (z <= 5.5d-182) then
        tmp = t_2
    else if (z <= 4.8d-128) then
        tmp = t_1
    else if (z <= 4.9d-128) then
        tmp = z * t
    else if (z <= 4.4d-107) then
        tmp = x * y
    else if (z <= 1.1d-101) then
        tmp = z * t
    else if (z <= 1.45d-59) then
        tmp = t_1
    else if (z <= 1.5d-59) then
        tmp = z * t
    else if (z <= 9.5d-49) then
        tmp = t_1
    else if (z <= 2.45d-42) then
        tmp = t_2
    else if (z <= 4d+30) then
        tmp = z * t
    else if (z <= 1.4d+95) then
        tmp = t_2
    else if (z <= 3.5d+104) then
        tmp = x * y
    else
        tmp = z * t
    end if
    code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
	double t_1 = (x * y) + (a * b);
	double t_2 = (a * b) + (z * t);
	double tmp;
	if (z <= -1.52e+54) {
		tmp = t_2;
	} else if (z <= -1.45e-7) {
		tmp = t_1;
	} else if (z <= -8.5e-13) {
		tmp = z * t;
	} else if (z <= -1.45e-15) {
		tmp = x * y;
	} else if (z <= -3.4e-28) {
		tmp = t_2;
	} else if (z <= -7.6e-70) {
		tmp = t_1;
	} else if (z <= -7.5e-70) {
		tmp = z * t;
	} else if (z <= -3.3e-89) {
		tmp = t_1;
	} else if (z <= -1.4e-97) {
		tmp = t_2;
	} else if (z <= -8.8e-106) {
		tmp = t_1;
	} else if (z <= -1.2e-113) {
		tmp = t_2;
	} else if (z <= -9.4e-130) {
		tmp = t_1;
	} else if (z <= -5e-152) {
		tmp = t_2;
	} else if (z <= -1.25e-186) {
		tmp = t_1;
	} else if (z <= -3.8e-207) {
		tmp = t_2;
	} else if (z <= -3.8e-241) {
		tmp = t_1;
	} else if (z <= -3.6e-241) {
		tmp = z * t;
	} else if (z <= -6.3e-246) {
		tmp = t_2;
	} else if (z <= 2.35e-254) {
		tmp = t_1;
	} else if (z <= 2.4e-254) {
		tmp = z * t;
	} else if (z <= 1.56e-203) {
		tmp = t_1;
	} else if (z <= 1.6e-203) {
		tmp = z * t;
	} else if (z <= 4.8e-198) {
		tmp = x * y;
	} else if (z <= 5.5e-182) {
		tmp = t_2;
	} else if (z <= 4.8e-128) {
		tmp = t_1;
	} else if (z <= 4.9e-128) {
		tmp = z * t;
	} else if (z <= 4.4e-107) {
		tmp = x * y;
	} else if (z <= 1.1e-101) {
		tmp = z * t;
	} else if (z <= 1.45e-59) {
		tmp = t_1;
	} else if (z <= 1.5e-59) {
		tmp = z * t;
	} else if (z <= 9.5e-49) {
		tmp = t_1;
	} else if (z <= 2.45e-42) {
		tmp = t_2;
	} else if (z <= 4e+30) {
		tmp = z * t;
	} else if (z <= 1.4e+95) {
		tmp = t_2;
	} else if (z <= 3.5e+104) {
		tmp = x * y;
	} else {
		tmp = z * t;
	}
	return tmp;
}
def code(x, y, z, t, a, b):
	t_1 = (x * y) + (a * b)
	t_2 = (a * b) + (z * t)
	tmp = 0
	if z <= -1.52e+54:
		tmp = t_2
	elif z <= -1.45e-7:
		tmp = t_1
	elif z <= -8.5e-13:
		tmp = z * t
	elif z <= -1.45e-15:
		tmp = x * y
	elif z <= -3.4e-28:
		tmp = t_2
	elif z <= -7.6e-70:
		tmp = t_1
	elif z <= -7.5e-70:
		tmp = z * t
	elif z <= -3.3e-89:
		tmp = t_1
	elif z <= -1.4e-97:
		tmp = t_2
	elif z <= -8.8e-106:
		tmp = t_1
	elif z <= -1.2e-113:
		tmp = t_2
	elif z <= -9.4e-130:
		tmp = t_1
	elif z <= -5e-152:
		tmp = t_2
	elif z <= -1.25e-186:
		tmp = t_1
	elif z <= -3.8e-207:
		tmp = t_2
	elif z <= -3.8e-241:
		tmp = t_1
	elif z <= -3.6e-241:
		tmp = z * t
	elif z <= -6.3e-246:
		tmp = t_2
	elif z <= 2.35e-254:
		tmp = t_1
	elif z <= 2.4e-254:
		tmp = z * t
	elif z <= 1.56e-203:
		tmp = t_1
	elif z <= 1.6e-203:
		tmp = z * t
	elif z <= 4.8e-198:
		tmp = x * y
	elif z <= 5.5e-182:
		tmp = t_2
	elif z <= 4.8e-128:
		tmp = t_1
	elif z <= 4.9e-128:
		tmp = z * t
	elif z <= 4.4e-107:
		tmp = x * y
	elif z <= 1.1e-101:
		tmp = z * t
	elif z <= 1.45e-59:
		tmp = t_1
	elif z <= 1.5e-59:
		tmp = z * t
	elif z <= 9.5e-49:
		tmp = t_1
	elif z <= 2.45e-42:
		tmp = t_2
	elif z <= 4e+30:
		tmp = z * t
	elif z <= 1.4e+95:
		tmp = t_2
	elif z <= 3.5e+104:
		tmp = x * y
	else:
		tmp = z * t
	return tmp
function code(x, y, z, t, a, b)
	t_1 = Float64(Float64(x * y) + Float64(a * b))
	t_2 = Float64(Float64(a * b) + Float64(z * t))
	tmp = 0.0
	if (z <= -1.52e+54)
		tmp = t_2;
	elseif (z <= -1.45e-7)
		tmp = t_1;
	elseif (z <= -8.5e-13)
		tmp = Float64(z * t);
	elseif (z <= -1.45e-15)
		tmp = Float64(x * y);
	elseif (z <= -3.4e-28)
		tmp = t_2;
	elseif (z <= -7.6e-70)
		tmp = t_1;
	elseif (z <= -7.5e-70)
		tmp = Float64(z * t);
	elseif (z <= -3.3e-89)
		tmp = t_1;
	elseif (z <= -1.4e-97)
		tmp = t_2;
	elseif (z <= -8.8e-106)
		tmp = t_1;
	elseif (z <= -1.2e-113)
		tmp = t_2;
	elseif (z <= -9.4e-130)
		tmp = t_1;
	elseif (z <= -5e-152)
		tmp = t_2;
	elseif (z <= -1.25e-186)
		tmp = t_1;
	elseif (z <= -3.8e-207)
		tmp = t_2;
	elseif (z <= -3.8e-241)
		tmp = t_1;
	elseif (z <= -3.6e-241)
		tmp = Float64(z * t);
	elseif (z <= -6.3e-246)
		tmp = t_2;
	elseif (z <= 2.35e-254)
		tmp = t_1;
	elseif (z <= 2.4e-254)
		tmp = Float64(z * t);
	elseif (z <= 1.56e-203)
		tmp = t_1;
	elseif (z <= 1.6e-203)
		tmp = Float64(z * t);
	elseif (z <= 4.8e-198)
		tmp = Float64(x * y);
	elseif (z <= 5.5e-182)
		tmp = t_2;
	elseif (z <= 4.8e-128)
		tmp = t_1;
	elseif (z <= 4.9e-128)
		tmp = Float64(z * t);
	elseif (z <= 4.4e-107)
		tmp = Float64(x * y);
	elseif (z <= 1.1e-101)
		tmp = Float64(z * t);
	elseif (z <= 1.45e-59)
		tmp = t_1;
	elseif (z <= 1.5e-59)
		tmp = Float64(z * t);
	elseif (z <= 9.5e-49)
		tmp = t_1;
	elseif (z <= 2.45e-42)
		tmp = t_2;
	elseif (z <= 4e+30)
		tmp = Float64(z * t);
	elseif (z <= 1.4e+95)
		tmp = t_2;
	elseif (z <= 3.5e+104)
		tmp = Float64(x * y);
	else
		tmp = Float64(z * t);
	end
	return tmp
end
function tmp_2 = code(x, y, z, t, a, b)
	t_1 = (x * y) + (a * b);
	t_2 = (a * b) + (z * t);
	tmp = 0.0;
	if (z <= -1.52e+54)
		tmp = t_2;
	elseif (z <= -1.45e-7)
		tmp = t_1;
	elseif (z <= -8.5e-13)
		tmp = z * t;
	elseif (z <= -1.45e-15)
		tmp = x * y;
	elseif (z <= -3.4e-28)
		tmp = t_2;
	elseif (z <= -7.6e-70)
		tmp = t_1;
	elseif (z <= -7.5e-70)
		tmp = z * t;
	elseif (z <= -3.3e-89)
		tmp = t_1;
	elseif (z <= -1.4e-97)
		tmp = t_2;
	elseif (z <= -8.8e-106)
		tmp = t_1;
	elseif (z <= -1.2e-113)
		tmp = t_2;
	elseif (z <= -9.4e-130)
		tmp = t_1;
	elseif (z <= -5e-152)
		tmp = t_2;
	elseif (z <= -1.25e-186)
		tmp = t_1;
	elseif (z <= -3.8e-207)
		tmp = t_2;
	elseif (z <= -3.8e-241)
		tmp = t_1;
	elseif (z <= -3.6e-241)
		tmp = z * t;
	elseif (z <= -6.3e-246)
		tmp = t_2;
	elseif (z <= 2.35e-254)
		tmp = t_1;
	elseif (z <= 2.4e-254)
		tmp = z * t;
	elseif (z <= 1.56e-203)
		tmp = t_1;
	elseif (z <= 1.6e-203)
		tmp = z * t;
	elseif (z <= 4.8e-198)
		tmp = x * y;
	elseif (z <= 5.5e-182)
		tmp = t_2;
	elseif (z <= 4.8e-128)
		tmp = t_1;
	elseif (z <= 4.9e-128)
		tmp = z * t;
	elseif (z <= 4.4e-107)
		tmp = x * y;
	elseif (z <= 1.1e-101)
		tmp = z * t;
	elseif (z <= 1.45e-59)
		tmp = t_1;
	elseif (z <= 1.5e-59)
		tmp = z * t;
	elseif (z <= 9.5e-49)
		tmp = t_1;
	elseif (z <= 2.45e-42)
		tmp = t_2;
	elseif (z <= 4e+30)
		tmp = z * t;
	elseif (z <= 1.4e+95)
		tmp = t_2;
	elseif (z <= 3.5e+104)
		tmp = x * y;
	else
		tmp = z * t;
	end
	tmp_2 = tmp;
end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(x * y), $MachinePrecision] + N[(a * b), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(a * b), $MachinePrecision] + N[(z * t), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z, -1.52e+54], t$95$2, If[LessEqual[z, -1.45e-7], t$95$1, If[LessEqual[z, -8.5e-13], N[(z * t), $MachinePrecision], If[LessEqual[z, -1.45e-15], N[(x * y), $MachinePrecision], If[LessEqual[z, -3.4e-28], t$95$2, If[LessEqual[z, -7.6e-70], t$95$1, If[LessEqual[z, -7.5e-70], N[(z * t), $MachinePrecision], If[LessEqual[z, -3.3e-89], t$95$1, If[LessEqual[z, -1.4e-97], t$95$2, If[LessEqual[z, -8.8e-106], t$95$1, If[LessEqual[z, -1.2e-113], t$95$2, If[LessEqual[z, -9.4e-130], t$95$1, If[LessEqual[z, -5e-152], t$95$2, If[LessEqual[z, -1.25e-186], t$95$1, If[LessEqual[z, -3.8e-207], t$95$2, If[LessEqual[z, -3.8e-241], t$95$1, If[LessEqual[z, -3.6e-241], N[(z * t), $MachinePrecision], If[LessEqual[z, -6.3e-246], t$95$2, If[LessEqual[z, 2.35e-254], t$95$1, If[LessEqual[z, 2.4e-254], N[(z * t), $MachinePrecision], If[LessEqual[z, 1.56e-203], t$95$1, If[LessEqual[z, 1.6e-203], N[(z * t), $MachinePrecision], If[LessEqual[z, 4.8e-198], N[(x * y), $MachinePrecision], If[LessEqual[z, 5.5e-182], t$95$2, If[LessEqual[z, 4.8e-128], t$95$1, If[LessEqual[z, 4.9e-128], N[(z * t), $MachinePrecision], If[LessEqual[z, 4.4e-107], N[(x * y), $MachinePrecision], If[LessEqual[z, 1.1e-101], N[(z * t), $MachinePrecision], If[LessEqual[z, 1.45e-59], t$95$1, If[LessEqual[z, 1.5e-59], N[(z * t), $MachinePrecision], If[LessEqual[z, 9.5e-49], t$95$1, If[LessEqual[z, 2.45e-42], t$95$2, If[LessEqual[z, 4e+30], N[(z * t), $MachinePrecision], If[LessEqual[z, 1.4e+95], t$95$2, If[LessEqual[z, 3.5e+104], N[(x * y), $MachinePrecision], N[(z * t), $MachinePrecision]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_1 := x \cdot y + a \cdot b\\
t_2 := a \cdot b + z \cdot t\\
\mathbf{if}\;z \leq -1.52 \cdot 10^{+54}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;z \leq -1.45 \cdot 10^{-7}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;z \leq -8.5 \cdot 10^{-13}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;z \leq -1.45 \cdot 10^{-15}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;z \leq -3.4 \cdot 10^{-28}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;z \leq -7.6 \cdot 10^{-70}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;z \leq -7.5 \cdot 10^{-70}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;z \leq -3.3 \cdot 10^{-89}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;z \leq -1.4 \cdot 10^{-97}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;z \leq -8.8 \cdot 10^{-106}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;z \leq -1.2 \cdot 10^{-113}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;z \leq -9.4 \cdot 10^{-130}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;z \leq -5 \cdot 10^{-152}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;z \leq -1.25 \cdot 10^{-186}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;z \leq -3.8 \cdot 10^{-207}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;z \leq -3.8 \cdot 10^{-241}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;z \leq -3.6 \cdot 10^{-241}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;z \leq -6.3 \cdot 10^{-246}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;z \leq 2.35 \cdot 10^{-254}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;z \leq 2.4 \cdot 10^{-254}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;z \leq 1.56 \cdot 10^{-203}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;z \leq 1.6 \cdot 10^{-203}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;z \leq 4.8 \cdot 10^{-198}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;z \leq 5.5 \cdot 10^{-182}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;z \leq 4.8 \cdot 10^{-128}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;z \leq 4.9 \cdot 10^{-128}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;z \leq 4.4 \cdot 10^{-107}:\\
\;\;\;\;x \cdot y\\

\mathbf{elif}\;z \leq 1.1 \cdot 10^{-101}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;z \leq 1.45 \cdot 10^{-59}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;z \leq 1.5 \cdot 10^{-59}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;z \leq 9.5 \cdot 10^{-49}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;z \leq 2.45 \cdot 10^{-42}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;z \leq 4 \cdot 10^{+30}:\\
\;\;\;\;z \cdot t\\

\mathbf{elif}\;z \leq 1.4 \cdot 10^{+95}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;z \leq 3.5 \cdot 10^{+104}:\\
\;\;\;\;x \cdot y\\

\mathbf{else}:\\
\;\;\;\;z \cdot t\\


\end{array}
\end{array}
Derivation
  1. Split input into 4 regimes
  2. if z < -1.51999999999999999e54 or -1.45000000000000009e-15 < z < -3.4000000000000001e-28 or -3.2999999999999997e-89 < z < -1.4000000000000001e-97 or -8.79999999999999977e-106 < z < -1.20000000000000006e-113 or -9.39999999999999937e-130 < z < -4.9999999999999997e-152 or -1.25e-186 < z < -3.8e-207 or -3.5999999999999999e-241 < z < -6.30000000000000009e-246 or 4.79999999999999973e-198 < z < 5.49999999999999993e-182 or 9.50000000000000006e-49 < z < 2.45e-42 or 4.0000000000000001e30 < z < 1.3999999999999999e95

    1. Initial program 97.6%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in x around 0 77.3%

      \[\leadsto \color{blue}{a \cdot b + t \cdot z} \]

    if -1.51999999999999999e54 < z < -1.4499999999999999e-7 or -3.4000000000000001e-28 < z < -7.5999999999999995e-70 or -7.49999999999999973e-70 < z < -3.2999999999999997e-89 or -1.4000000000000001e-97 < z < -8.79999999999999977e-106 or -1.20000000000000006e-113 < z < -9.39999999999999937e-130 or -4.9999999999999997e-152 < z < -1.25e-186 or -3.8e-207 < z < -3.7999999999999999e-241 or -6.30000000000000009e-246 < z < 2.35000000000000013e-254 or 2.40000000000000002e-254 < z < 1.56e-203 or 5.49999999999999993e-182 < z < 4.7999999999999996e-128 or 1.0999999999999999e-101 < z < 1.45000000000000008e-59 or 1.5e-59 < z < 9.50000000000000006e-49

    1. Initial program 99.0%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in z around 0 87.5%

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

    if -1.4499999999999999e-7 < z < -8.5000000000000001e-13 or -7.5999999999999995e-70 < z < -7.49999999999999973e-70 or -3.7999999999999999e-241 < z < -3.5999999999999999e-241 or 2.35000000000000013e-254 < z < 2.40000000000000002e-254 or 1.56e-203 < z < 1.6e-203 or 4.7999999999999996e-128 < z < 4.89999999999999989e-128 or 4.40000000000000025e-107 < z < 1.0999999999999999e-101 or 1.45000000000000008e-59 < z < 1.5e-59 or 2.45e-42 < z < 4.0000000000000001e30 or 3.5000000000000002e104 < z

    1. Initial program 89.8%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in z around inf 62.8%

      \[\leadsto \color{blue}{t \cdot z} \]

    if -8.5000000000000001e-13 < z < -1.45000000000000009e-15 or 1.6e-203 < z < 4.79999999999999973e-198 or 4.89999999999999989e-128 < z < 4.40000000000000025e-107 or 1.3999999999999999e95 < z < 3.5000000000000002e104

    1. Initial program 100.0%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in x around inf 38.3%

      \[\leadsto \color{blue}{x \cdot y} \]
  3. Recombined 4 regimes into one program.
  4. Final simplification77.3%

    \[\leadsto \begin{array}{l} \mathbf{if}\;z \leq -1.52 \cdot 10^{+54}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;z \leq -1.45 \cdot 10^{-7}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;z \leq -8.5 \cdot 10^{-13}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;z \leq -1.45 \cdot 10^{-15}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;z \leq -3.4 \cdot 10^{-28}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;z \leq -7.6 \cdot 10^{-70}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;z \leq -7.5 \cdot 10^{-70}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;z \leq -3.3 \cdot 10^{-89}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;z \leq -1.4 \cdot 10^{-97}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;z \leq -8.8 \cdot 10^{-106}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;z \leq -1.2 \cdot 10^{-113}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;z \leq -9.4 \cdot 10^{-130}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;z \leq -5 \cdot 10^{-152}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;z \leq -1.25 \cdot 10^{-186}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;z \leq -3.8 \cdot 10^{-207}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;z \leq -3.8 \cdot 10^{-241}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;z \leq -3.6 \cdot 10^{-241}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;z \leq -6.3 \cdot 10^{-246}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;z \leq 2.35 \cdot 10^{-254}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;z \leq 2.4 \cdot 10^{-254}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;z \leq 1.56 \cdot 10^{-203}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;z \leq 1.6 \cdot 10^{-203}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;z \leq 4.8 \cdot 10^{-198}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;z \leq 5.5 \cdot 10^{-182}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;z \leq 4.8 \cdot 10^{-128}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;z \leq 4.9 \cdot 10^{-128}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;z \leq 4.4 \cdot 10^{-107}:\\ \;\;\;\;x \cdot y\\ \mathbf{elif}\;z \leq 1.1 \cdot 10^{-101}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;z \leq 1.45 \cdot 10^{-59}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;z \leq 1.5 \cdot 10^{-59}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;z \leq 9.5 \cdot 10^{-49}:\\ \;\;\;\;x \cdot y + a \cdot b\\ \mathbf{elif}\;z \leq 2.45 \cdot 10^{-42}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;z \leq 4 \cdot 10^{+30}:\\ \;\;\;\;z \cdot t\\ \mathbf{elif}\;z \leq 1.4 \cdot 10^{+95}:\\ \;\;\;\;a \cdot b + z \cdot t\\ \mathbf{elif}\;z \leq 3.5 \cdot 10^{+104}:\\ \;\;\;\;x \cdot y\\ \mathbf{else}:\\ \;\;\;\;z \cdot t\\ \end{array} \]
  5. Add Preprocessing

Alternative 11: 99.0% accurate, 0.4× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_1 := a \cdot b + \left(x \cdot y + z \cdot t\right)\\ \mathbf{if}\;t\_1 \leq \infty:\\ \;\;\;\;t\_1\\ \mathbf{else}:\\ \;\;\;\;z \cdot \left(t + y \cdot \frac{x}{z}\right)\\ \end{array} \end{array} \]
(FPCore (x y z t a b)
 :precision binary64
 (let* ((t_1 (+ (* a b) (+ (* x y) (* z t)))))
   (if (<= t_1 INFINITY) t_1 (* z (+ t (* y (/ x z)))))))
double code(double x, double y, double z, double t, double a, double b) {
	double t_1 = (a * b) + ((x * y) + (z * t));
	double tmp;
	if (t_1 <= ((double) INFINITY)) {
		tmp = t_1;
	} else {
		tmp = z * (t + (y * (x / z)));
	}
	return tmp;
}
public static double code(double x, double y, double z, double t, double a, double b) {
	double t_1 = (a * b) + ((x * y) + (z * t));
	double tmp;
	if (t_1 <= Double.POSITIVE_INFINITY) {
		tmp = t_1;
	} else {
		tmp = z * (t + (y * (x / z)));
	}
	return tmp;
}
def code(x, y, z, t, a, b):
	t_1 = (a * b) + ((x * y) + (z * t))
	tmp = 0
	if t_1 <= math.inf:
		tmp = t_1
	else:
		tmp = z * (t + (y * (x / z)))
	return tmp
function code(x, y, z, t, a, b)
	t_1 = Float64(Float64(a * b) + Float64(Float64(x * y) + Float64(z * t)))
	tmp = 0.0
	if (t_1 <= Inf)
		tmp = t_1;
	else
		tmp = Float64(z * Float64(t + Float64(y * Float64(x / z))));
	end
	return tmp
end
function tmp_2 = code(x, y, z, t, a, b)
	t_1 = (a * b) + ((x * y) + (z * t));
	tmp = 0.0;
	if (t_1 <= Inf)
		tmp = t_1;
	else
		tmp = z * (t + (y * (x / z)));
	end
	tmp_2 = tmp;
end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(a * b), $MachinePrecision] + N[(N[(x * y), $MachinePrecision] + N[(z * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$1, Infinity], t$95$1, N[(z * N[(t + N[(y * N[(x / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}

\\
\begin{array}{l}
t_1 := a \cdot b + \left(x \cdot y + z \cdot t\right)\\
\mathbf{if}\;t\_1 \leq \infty:\\
\;\;\;\;t\_1\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) < +inf.0

    1. Initial program 100.0%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing

    if +inf.0 < (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))

    1. Initial program 0.0%

      \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
    2. Add Preprocessing
    3. Taylor expanded in b around inf 44.4%

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

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

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

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

      \[\leadsto \color{blue}{z \cdot \left(t + \frac{b \cdot \left(a + \frac{x \cdot y}{b}\right)}{z}\right)} \]
    7. Taylor expanded in b around 0 55.6%

      \[\leadsto z \cdot \left(t + \color{blue}{\frac{x \cdot y}{z}}\right) \]
    8. Step-by-step derivation
      1. *-commutative55.6%

        \[\leadsto z \cdot \left(t + \frac{\color{blue}{y \cdot x}}{z}\right) \]
      2. associate-*r/77.8%

        \[\leadsto z \cdot \left(t + \color{blue}{y \cdot \frac{x}{z}}\right) \]
    9. Simplified77.8%

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;a \cdot b + \left(x \cdot y + z \cdot t\right) \leq \infty:\\ \;\;\;\;a \cdot b + \left(x \cdot y + z \cdot t\right)\\ \mathbf{else}:\\ \;\;\;\;z \cdot \left(t + y \cdot \frac{x}{z}\right)\\ \end{array} \]
  5. Add Preprocessing

Alternative 12: 35.6% accurate, 3.7× speedup?

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

\\
a \cdot b
\end{array}
Derivation
  1. Initial program 96.5%

    \[\left(x \cdot y + z \cdot t\right) + a \cdot b \]
  2. Add Preprocessing
  3. Taylor expanded in a around inf 36.5%

    \[\leadsto \color{blue}{a \cdot b} \]
  4. Add Preprocessing

Reproduce

?
herbie shell --seed 2024096 
(FPCore (x y z t a b)
  :name "Linear.V3:$cdot from linear-1.19.1.3, B"
  :precision binary64
  (+ (+ (* x y) (* z t)) (* a b)))