_divideComplex, imaginary part

Percentage Accurate: 61.2% → 72.4%
Time: 34.0s
Alternatives: 21
Speedup: 0.1×

Specification

?
\[\begin{array}{l} \\ \frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \end{array} \]
(FPCore (x.re x.im y.re y.im)
 :precision binary64
 (/ (- (* x.im y.re) (* x.re y.im)) (+ (* y.re y.re) (* y.im y.im))))
double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	return ((x_46_im * y_46_re) - (x_46_re * y_46_im)) / ((y_46_re * y_46_re) + (y_46_im * y_46_im));
}
real(8) function code(x_46re, x_46im, y_46re, y_46im)
    real(8), intent (in) :: x_46re
    real(8), intent (in) :: x_46im
    real(8), intent (in) :: y_46re
    real(8), intent (in) :: y_46im
    code = ((x_46im * y_46re) - (x_46re * y_46im)) / ((y_46re * y_46re) + (y_46im * y_46im))
end function
public static double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	return ((x_46_im * y_46_re) - (x_46_re * y_46_im)) / ((y_46_re * y_46_re) + (y_46_im * y_46_im));
}
def code(x_46_re, x_46_im, y_46_re, y_46_im):
	return ((x_46_im * y_46_re) - (x_46_re * y_46_im)) / ((y_46_re * y_46_re) + (y_46_im * y_46_im))
function code(x_46_re, x_46_im, y_46_re, y_46_im)
	return Float64(Float64(Float64(x_46_im * y_46_re) - Float64(x_46_re * y_46_im)) / Float64(Float64(y_46_re * y_46_re) + Float64(y_46_im * y_46_im)))
end
function tmp = code(x_46_re, x_46_im, y_46_re, y_46_im)
	tmp = ((x_46_im * y_46_re) - (x_46_re * y_46_im)) / ((y_46_re * y_46_re) + (y_46_im * y_46_im));
end
code[x$46$re_, x$46$im_, y$46$re_, y$46$im_] := N[(N[(N[(x$46$im * y$46$re), $MachinePrecision] - N[(x$46$re * y$46$im), $MachinePrecision]), $MachinePrecision] / N[(N[(y$46$re * y$46$re), $MachinePrecision] + N[(y$46$im * y$46$im), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}
\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 21 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: 61.2% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \end{array} \]
(FPCore (x.re x.im y.re y.im)
 :precision binary64
 (/ (- (* x.im y.re) (* x.re y.im)) (+ (* y.re y.re) (* y.im y.im))))
double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	return ((x_46_im * y_46_re) - (x_46_re * y_46_im)) / ((y_46_re * y_46_re) + (y_46_im * y_46_im));
}
real(8) function code(x_46re, x_46im, y_46re, y_46im)
    real(8), intent (in) :: x_46re
    real(8), intent (in) :: x_46im
    real(8), intent (in) :: y_46re
    real(8), intent (in) :: y_46im
    code = ((x_46im * y_46re) - (x_46re * y_46im)) / ((y_46re * y_46re) + (y_46im * y_46im))
end function
public static double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	return ((x_46_im * y_46_re) - (x_46_re * y_46_im)) / ((y_46_re * y_46_re) + (y_46_im * y_46_im));
}
def code(x_46_re, x_46_im, y_46_re, y_46_im):
	return ((x_46_im * y_46_re) - (x_46_re * y_46_im)) / ((y_46_re * y_46_re) + (y_46_im * y_46_im))
function code(x_46_re, x_46_im, y_46_re, y_46_im)
	return Float64(Float64(Float64(x_46_im * y_46_re) - Float64(x_46_re * y_46_im)) / Float64(Float64(y_46_re * y_46_re) + Float64(y_46_im * y_46_im)))
end
function tmp = code(x_46_re, x_46_im, y_46_re, y_46_im)
	tmp = ((x_46_im * y_46_re) - (x_46_re * y_46_im)) / ((y_46_re * y_46_re) + (y_46_im * y_46_im));
end
code[x$46$re_, x$46$im_, y$46$re_, y$46$im_] := N[(N[(N[(x$46$im * y$46$re), $MachinePrecision] - N[(x$46$re * y$46$im), $MachinePrecision]), $MachinePrecision] / N[(N[(y$46$re * y$46$re), $MachinePrecision] + N[(y$46$im * y$46$im), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}
\end{array}

Alternative 1: 72.4% accurate, 0.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ t_1 := x.im - x.re \cdot \frac{y.im}{y.re}\\ t_2 := x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ t_3 := \frac{x.re}{-y.im}\\ t_4 := \frac{y.re \cdot \frac{x.im}{y.im} - x.re}{y.im}\\ t_5 := y.im \cdot \frac{x.re}{y.re}\\ t_6 := x.im \cdot \frac{y.re}{y.im}\\ t_7 := \frac{t\_6 - x.re}{y.im}\\ t_8 := \frac{t\_1}{y.re}\\ t_9 := \frac{x.im - t\_5}{y.re}\\ \mathbf{if}\;y.im \leq -4.6 \cdot 10^{+107}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;y.im \leq -8.8 \cdot 10^{+82}:\\ \;\;\;\;t\_8\\ \mathbf{elif}\;y.im \leq -4.1 \cdot 10^{+72}:\\ \;\;\;\;t\_7\\ \mathbf{elif}\;y.im \leq -1.7 \cdot 10^{+59}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq -3.4 \cdot 10^{+50}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq -9.8 \cdot 10^{+39}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -8.2 \cdot 10^{+35}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq -1.3 \cdot 10^{+35}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -5 \cdot 10^{+28}:\\ \;\;\;\;\frac{1}{\frac{y.re}{t\_1}}\\ \mathbf{elif}\;y.im \leq -180000:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;y.im \leq -255:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -58:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq -0.0126:\\ \;\;\;\;t\_8\\ \mathbf{elif}\;y.im \leq -7.2 \cdot 10^{-15}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq -1.65 \cdot 10^{-30}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1 \cdot 10^{-33}:\\ \;\;\;\;t\_7\\ \mathbf{elif}\;y.im \leq -6.2 \cdot 10^{-39}:\\ \;\;\;\;t\_8\\ \mathbf{elif}\;y.im \leq -6 \cdot 10^{-39}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq -1.3 \cdot 10^{-84}:\\ \;\;\;\;t\_8\\ \mathbf{elif}\;y.im \leq -1.25 \cdot 10^{-84}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq -1.44 \cdot 10^{-92}:\\ \;\;\;\;t\_8\\ \mathbf{elif}\;y.im \leq -5 \cdot 10^{-94}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq -1.85 \cdot 10^{-95}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -8 \cdot 10^{-96}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq -3.6 \cdot 10^{-133}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -3.5 \cdot 10^{-133}:\\ \;\;\;\;\frac{t\_6}{y.im}\\ \mathbf{elif}\;y.im \leq -1.6 \cdot 10^{-172}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-172}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq -3.4 \cdot 10^{-228}:\\ \;\;\;\;\frac{x.im}{y.re} - \frac{t\_5}{y.re}\\ \mathbf{elif}\;y.im \leq 10^{-287}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq 1.2 \cdot 10^{-194}:\\ \;\;\;\;t\_9\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{-194}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 2.1 \cdot 10^{-143}:\\ \;\;\;\;t\_8\\ \mathbf{elif}\;y.im \leq 2.2 \cdot 10^{-143}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 5.6 \cdot 10^{-86}:\\ \;\;\;\;t\_9\\ \mathbf{elif}\;y.im \leq 1.15 \cdot 10^{-85}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 6.2 \cdot 10^{-52}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 5.2 \cdot 10^{-34}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 21000000:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq 2.6 \cdot 10^{+17}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 2.55 \cdot 10^{+18}:\\ \;\;\;\;t\_8\\ \mathbf{elif}\;y.im \leq 1.85 \cdot 10^{+21}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 2.2 \cdot 10^{+22}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 2.1 \cdot 10^{+24}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 1.72 \cdot 10^{+31}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 3.5 \cdot 10^{+61}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 2.4 \cdot 10^{+76}:\\ \;\;\;\;t\_8\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{+82}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 1.4 \cdot 10^{+82}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 2.55 \cdot 10^{+103}:\\ \;\;\;\;t\_7\\ \mathbf{elif}\;y.im \leq 8 \cdot 10^{+103}:\\ \;\;\;\;t\_9\\ \mathbf{elif}\;y.im \leq 1.8 \cdot 10^{+143}:\\ \;\;\;\;t\_7\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{+147}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.3 \cdot 10^{+174}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{+175}:\\ \;\;\;\;t\_8\\ \mathbf{elif}\;y.im \leq 4.7 \cdot 10^{+235}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+241}:\\ \;\;\;\;t\_8\\ \mathbf{elif}\;y.im \leq 1.9 \cdot 10^{+271}:\\ \;\;\;\;t\_7\\ \mathbf{elif}\;y.im \leq 1.95 \cdot 10^{+271}:\\ \;\;\;\;t\_8\\ \mathbf{elif}\;y.im \leq 5.8 \cdot 10^{+297}:\\ \;\;\;\;t\_3\\ \mathbf{else}:\\ \;\;\;\;\frac{y.re}{y.im} \cdot \frac{x.im}{y.im}\\ \end{array} \end{array} \]
(FPCore (x.re x.im y.re y.im)
 :precision binary64
 (let* ((t_0 (/ (- x.im (/ (* y.im x.re) y.re)) y.re))
        (t_1 (- x.im (* x.re (/ y.im y.re))))
        (t_2 (* x.im (/ (/ y.re y.im) y.im)))
        (t_3 (/ x.re (- y.im)))
        (t_4 (/ (- (* y.re (/ x.im y.im)) x.re) y.im))
        (t_5 (* y.im (/ x.re y.re)))
        (t_6 (* x.im (/ y.re y.im)))
        (t_7 (/ (- t_6 x.re) y.im))
        (t_8 (/ t_1 y.re))
        (t_9 (/ (- x.im t_5) y.re)))
   (if (<= y.im -4.6e+107)
     t_4
     (if (<= y.im -8.8e+82)
       t_8
       (if (<= y.im -4.1e+72)
         t_7
         (if (<= y.im -1.7e+59)
           t_0
           (if (<= y.im -3.4e+50)
             t_3
             (if (<= y.im -9.8e+39)
               (/ x.im y.re)
               (if (<= y.im -8.2e+35)
                 t_3
                 (if (<= y.im -1.3e+35)
                   (/ x.im y.re)
                   (if (<= y.im -5e+28)
                     (/ 1.0 (/ y.re t_1))
                     (if (<= y.im -180000.0)
                       t_4
                       (if (<= y.im -255.0)
                         (/ x.im y.re)
                         (if (<= y.im -58.0)
                           t_3
                           (if (<= y.im -0.0126)
                             t_8
                             (if (<= y.im -7.2e-15)
                               t_3
                               (if (<= y.im -1.65e-30)
                                 (/ x.im y.re)
                                 (if (<= y.im -1e-33)
                                   t_7
                                   (if (<= y.im -6.2e-39)
                                     t_8
                                     (if (<= y.im -6e-39)
                                       t_2
                                       (if (<= y.im -1.3e-84)
                                         t_8
                                         (if (<= y.im -1.25e-84)
                                           t_2
                                           (if (<= y.im -1.44e-92)
                                             t_8
                                             (if (<= y.im -5e-94)
                                               t_3
                                               (if (<= y.im -1.85e-95)
                                                 (/ x.im y.re)
                                                 (if (<= y.im -8e-96)
                                                   t_3
                                                   (if (<= y.im -3.6e-133)
                                                     (/ x.im y.re)
                                                     (if (<= y.im -3.5e-133)
                                                       (/ t_6 y.im)
                                                       (if (<= y.im -1.6e-172)
                                                         t_0
                                                         (if (<=
                                                              y.im
                                                              -1.55e-172)
                                                           t_3
                                                           (if (<=
                                                                y.im
                                                                -3.4e-228)
                                                             (-
                                                              (/ x.im y.re)
                                                              (/ t_5 y.re))
                                                             (if (<=
                                                                  y.im
                                                                  1e-287)
                                                               t_0
                                                               (if (<=
                                                                    y.im
                                                                    1.2e-194)
                                                                 t_9
                                                                 (if (<=
                                                                      y.im
                                                                      1.25e-194)
                                                                   t_3
                                                                   (if (<=
                                                                        y.im
                                                                        2.1e-143)
                                                                     t_8
                                                                     (if (<=
                                                                          y.im
                                                                          2.2e-143)
                                                                       t_3
                                                                       (if (<=
                                                                            y.im
                                                                            5.6e-86)
                                                                         t_9
                                                                         (if (<=
                                                                              y.im
                                                                              1.15e-85)
                                                                           t_3
                                                                           (if (<=
                                                                                y.im
                                                                                6.2e-52)
                                                                             (/
                                                                              x.im
                                                                              y.re)
                                                                             (if (<=
                                                                                  y.im
                                                                                  5.2e-34)
                                                                               t_3
                                                                               (if (<=
                                                                                    y.im
                                                                                    21000000.0)
                                                                                 t_0
                                                                                 (if (<=
                                                                                      y.im
                                                                                      2.6e+17)
                                                                                   t_3
                                                                                   (if (<=
                                                                                        y.im
                                                                                        2.55e+18)
                                                                                     t_8
                                                                                     (if (<=
                                                                                          y.im
                                                                                          1.85e+21)
                                                                                       t_3
                                                                                       (if (<=
                                                                                            y.im
                                                                                            2.2e+22)
                                                                                         (/
                                                                                          x.im
                                                                                          y.re)
                                                                                         (if (<=
                                                                                              y.im
                                                                                              2.1e+24)
                                                                                           t_3
                                                                                           (if (<=
                                                                                                y.im
                                                                                                1.72e+31)
                                                                                             (/
                                                                                              x.im
                                                                                              y.re)
                                                                                             (if (<=
                                                                                                  y.im
                                                                                                  3.5e+61)
                                                                                               t_3
                                                                                               (if (<=
                                                                                                    y.im
                                                                                                    2.4e+76)
                                                                                                 t_8
                                                                                                 (if (<=
                                                                                                      y.im
                                                                                                      1.25e+82)
                                                                                                   t_3
                                                                                                   (if (<=
                                                                                                        y.im
                                                                                                        1.4e+82)
                                                                                                     (/
                                                                                                      x.im
                                                                                                      y.re)
                                                                                                     (if (<=
                                                                                                          y.im
                                                                                                          2.55e+103)
                                                                                                       t_7
                                                                                                       (if (<=
                                                                                                            y.im
                                                                                                            8e+103)
                                                                                                         t_9
                                                                                                         (if (<=
                                                                                                              y.im
                                                                                                              1.8e+143)
                                                                                                           t_7
                                                                                                           (if (<=
                                                                                                                y.im
                                                                                                                6e+147)
                                                                                                             (/
                                                                                                              x.im
                                                                                                              y.re)
                                                                                                             (if (<=
                                                                                                                  y.im
                                                                                                                  1.3e+174)
                                                                                                               t_3
                                                                                                               (if (<=
                                                                                                                    y.im
                                                                                                                    1.25e+175)
                                                                                                                 t_8
                                                                                                                 (if (<=
                                                                                                                      y.im
                                                                                                                      4.7e+235)
                                                                                                                   t_3
                                                                                                                   (if (<=
                                                                                                                        y.im
                                                                                                                        7.8e+241)
                                                                                                                     t_8
                                                                                                                     (if (<=
                                                                                                                          y.im
                                                                                                                          1.9e+271)
                                                                                                                       t_7
                                                                                                                       (if (<=
                                                                                                                            y.im
                                                                                                                            1.95e+271)
                                                                                                                         t_8
                                                                                                                         (if (<=
                                                                                                                              y.im
                                                                                                                              5.8e+297)
                                                                                                                           t_3
                                                                                                                           (*
                                                                                                                            (/
                                                                                                                             y.re
                                                                                                                             y.im)
                                                                                                                            (/
                                                                                                                             x.im
                                                                                                                             y.im))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double t_0 = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re;
	double t_1 = x_46_im - (x_46_re * (y_46_im / y_46_re));
	double t_2 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	double t_3 = x_46_re / -y_46_im;
	double t_4 = ((y_46_re * (x_46_im / y_46_im)) - x_46_re) / y_46_im;
	double t_5 = y_46_im * (x_46_re / y_46_re);
	double t_6 = x_46_im * (y_46_re / y_46_im);
	double t_7 = (t_6 - x_46_re) / y_46_im;
	double t_8 = t_1 / y_46_re;
	double t_9 = (x_46_im - t_5) / y_46_re;
	double tmp;
	if (y_46_im <= -4.6e+107) {
		tmp = t_4;
	} else if (y_46_im <= -8.8e+82) {
		tmp = t_8;
	} else if (y_46_im <= -4.1e+72) {
		tmp = t_7;
	} else if (y_46_im <= -1.7e+59) {
		tmp = t_0;
	} else if (y_46_im <= -3.4e+50) {
		tmp = t_3;
	} else if (y_46_im <= -9.8e+39) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -8.2e+35) {
		tmp = t_3;
	} else if (y_46_im <= -1.3e+35) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -5e+28) {
		tmp = 1.0 / (y_46_re / t_1);
	} else if (y_46_im <= -180000.0) {
		tmp = t_4;
	} else if (y_46_im <= -255.0) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -58.0) {
		tmp = t_3;
	} else if (y_46_im <= -0.0126) {
		tmp = t_8;
	} else if (y_46_im <= -7.2e-15) {
		tmp = t_3;
	} else if (y_46_im <= -1.65e-30) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1e-33) {
		tmp = t_7;
	} else if (y_46_im <= -6.2e-39) {
		tmp = t_8;
	} else if (y_46_im <= -6e-39) {
		tmp = t_2;
	} else if (y_46_im <= -1.3e-84) {
		tmp = t_8;
	} else if (y_46_im <= -1.25e-84) {
		tmp = t_2;
	} else if (y_46_im <= -1.44e-92) {
		tmp = t_8;
	} else if (y_46_im <= -5e-94) {
		tmp = t_3;
	} else if (y_46_im <= -1.85e-95) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -8e-96) {
		tmp = t_3;
	} else if (y_46_im <= -3.6e-133) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -3.5e-133) {
		tmp = t_6 / y_46_im;
	} else if (y_46_im <= -1.6e-172) {
		tmp = t_0;
	} else if (y_46_im <= -1.55e-172) {
		tmp = t_3;
	} else if (y_46_im <= -3.4e-228) {
		tmp = (x_46_im / y_46_re) - (t_5 / y_46_re);
	} else if (y_46_im <= 1e-287) {
		tmp = t_0;
	} else if (y_46_im <= 1.2e-194) {
		tmp = t_9;
	} else if (y_46_im <= 1.25e-194) {
		tmp = t_3;
	} else if (y_46_im <= 2.1e-143) {
		tmp = t_8;
	} else if (y_46_im <= 2.2e-143) {
		tmp = t_3;
	} else if (y_46_im <= 5.6e-86) {
		tmp = t_9;
	} else if (y_46_im <= 1.15e-85) {
		tmp = t_3;
	} else if (y_46_im <= 6.2e-52) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 5.2e-34) {
		tmp = t_3;
	} else if (y_46_im <= 21000000.0) {
		tmp = t_0;
	} else if (y_46_im <= 2.6e+17) {
		tmp = t_3;
	} else if (y_46_im <= 2.55e+18) {
		tmp = t_8;
	} else if (y_46_im <= 1.85e+21) {
		tmp = t_3;
	} else if (y_46_im <= 2.2e+22) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 2.1e+24) {
		tmp = t_3;
	} else if (y_46_im <= 1.72e+31) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 3.5e+61) {
		tmp = t_3;
	} else if (y_46_im <= 2.4e+76) {
		tmp = t_8;
	} else if (y_46_im <= 1.25e+82) {
		tmp = t_3;
	} else if (y_46_im <= 1.4e+82) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 2.55e+103) {
		tmp = t_7;
	} else if (y_46_im <= 8e+103) {
		tmp = t_9;
	} else if (y_46_im <= 1.8e+143) {
		tmp = t_7;
	} else if (y_46_im <= 6e+147) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.3e+174) {
		tmp = t_3;
	} else if (y_46_im <= 1.25e+175) {
		tmp = t_8;
	} else if (y_46_im <= 4.7e+235) {
		tmp = t_3;
	} else if (y_46_im <= 7.8e+241) {
		tmp = t_8;
	} else if (y_46_im <= 1.9e+271) {
		tmp = t_7;
	} else if (y_46_im <= 1.95e+271) {
		tmp = t_8;
	} else if (y_46_im <= 5.8e+297) {
		tmp = t_3;
	} else {
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im);
	}
	return tmp;
}
real(8) function code(x_46re, x_46im, y_46re, y_46im)
    real(8), intent (in) :: x_46re
    real(8), intent (in) :: x_46im
    real(8), intent (in) :: y_46re
    real(8), intent (in) :: y_46im
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: t_2
    real(8) :: t_3
    real(8) :: t_4
    real(8) :: t_5
    real(8) :: t_6
    real(8) :: t_7
    real(8) :: t_8
    real(8) :: t_9
    real(8) :: tmp
    t_0 = (x_46im - ((y_46im * x_46re) / y_46re)) / y_46re
    t_1 = x_46im - (x_46re * (y_46im / y_46re))
    t_2 = x_46im * ((y_46re / y_46im) / y_46im)
    t_3 = x_46re / -y_46im
    t_4 = ((y_46re * (x_46im / y_46im)) - x_46re) / y_46im
    t_5 = y_46im * (x_46re / y_46re)
    t_6 = x_46im * (y_46re / y_46im)
    t_7 = (t_6 - x_46re) / y_46im
    t_8 = t_1 / y_46re
    t_9 = (x_46im - t_5) / y_46re
    if (y_46im <= (-4.6d+107)) then
        tmp = t_4
    else if (y_46im <= (-8.8d+82)) then
        tmp = t_8
    else if (y_46im <= (-4.1d+72)) then
        tmp = t_7
    else if (y_46im <= (-1.7d+59)) then
        tmp = t_0
    else if (y_46im <= (-3.4d+50)) then
        tmp = t_3
    else if (y_46im <= (-9.8d+39)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-8.2d+35)) then
        tmp = t_3
    else if (y_46im <= (-1.3d+35)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-5d+28)) then
        tmp = 1.0d0 / (y_46re / t_1)
    else if (y_46im <= (-180000.0d0)) then
        tmp = t_4
    else if (y_46im <= (-255.0d0)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-58.0d0)) then
        tmp = t_3
    else if (y_46im <= (-0.0126d0)) then
        tmp = t_8
    else if (y_46im <= (-7.2d-15)) then
        tmp = t_3
    else if (y_46im <= (-1.65d-30)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1d-33)) then
        tmp = t_7
    else if (y_46im <= (-6.2d-39)) then
        tmp = t_8
    else if (y_46im <= (-6d-39)) then
        tmp = t_2
    else if (y_46im <= (-1.3d-84)) then
        tmp = t_8
    else if (y_46im <= (-1.25d-84)) then
        tmp = t_2
    else if (y_46im <= (-1.44d-92)) then
        tmp = t_8
    else if (y_46im <= (-5d-94)) then
        tmp = t_3
    else if (y_46im <= (-1.85d-95)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-8d-96)) then
        tmp = t_3
    else if (y_46im <= (-3.6d-133)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-3.5d-133)) then
        tmp = t_6 / y_46im
    else if (y_46im <= (-1.6d-172)) then
        tmp = t_0
    else if (y_46im <= (-1.55d-172)) then
        tmp = t_3
    else if (y_46im <= (-3.4d-228)) then
        tmp = (x_46im / y_46re) - (t_5 / y_46re)
    else if (y_46im <= 1d-287) then
        tmp = t_0
    else if (y_46im <= 1.2d-194) then
        tmp = t_9
    else if (y_46im <= 1.25d-194) then
        tmp = t_3
    else if (y_46im <= 2.1d-143) then
        tmp = t_8
    else if (y_46im <= 2.2d-143) then
        tmp = t_3
    else if (y_46im <= 5.6d-86) then
        tmp = t_9
    else if (y_46im <= 1.15d-85) then
        tmp = t_3
    else if (y_46im <= 6.2d-52) then
        tmp = x_46im / y_46re
    else if (y_46im <= 5.2d-34) then
        tmp = t_3
    else if (y_46im <= 21000000.0d0) then
        tmp = t_0
    else if (y_46im <= 2.6d+17) then
        tmp = t_3
    else if (y_46im <= 2.55d+18) then
        tmp = t_8
    else if (y_46im <= 1.85d+21) then
        tmp = t_3
    else if (y_46im <= 2.2d+22) then
        tmp = x_46im / y_46re
    else if (y_46im <= 2.1d+24) then
        tmp = t_3
    else if (y_46im <= 1.72d+31) then
        tmp = x_46im / y_46re
    else if (y_46im <= 3.5d+61) then
        tmp = t_3
    else if (y_46im <= 2.4d+76) then
        tmp = t_8
    else if (y_46im <= 1.25d+82) then
        tmp = t_3
    else if (y_46im <= 1.4d+82) then
        tmp = x_46im / y_46re
    else if (y_46im <= 2.55d+103) then
        tmp = t_7
    else if (y_46im <= 8d+103) then
        tmp = t_9
    else if (y_46im <= 1.8d+143) then
        tmp = t_7
    else if (y_46im <= 6d+147) then
        tmp = x_46im / y_46re
    else if (y_46im <= 1.3d+174) then
        tmp = t_3
    else if (y_46im <= 1.25d+175) then
        tmp = t_8
    else if (y_46im <= 4.7d+235) then
        tmp = t_3
    else if (y_46im <= 7.8d+241) then
        tmp = t_8
    else if (y_46im <= 1.9d+271) then
        tmp = t_7
    else if (y_46im <= 1.95d+271) then
        tmp = t_8
    else if (y_46im <= 5.8d+297) then
        tmp = t_3
    else
        tmp = (y_46re / y_46im) * (x_46im / y_46im)
    end if
    code = tmp
end function
public static double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double t_0 = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re;
	double t_1 = x_46_im - (x_46_re * (y_46_im / y_46_re));
	double t_2 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	double t_3 = x_46_re / -y_46_im;
	double t_4 = ((y_46_re * (x_46_im / y_46_im)) - x_46_re) / y_46_im;
	double t_5 = y_46_im * (x_46_re / y_46_re);
	double t_6 = x_46_im * (y_46_re / y_46_im);
	double t_7 = (t_6 - x_46_re) / y_46_im;
	double t_8 = t_1 / y_46_re;
	double t_9 = (x_46_im - t_5) / y_46_re;
	double tmp;
	if (y_46_im <= -4.6e+107) {
		tmp = t_4;
	} else if (y_46_im <= -8.8e+82) {
		tmp = t_8;
	} else if (y_46_im <= -4.1e+72) {
		tmp = t_7;
	} else if (y_46_im <= -1.7e+59) {
		tmp = t_0;
	} else if (y_46_im <= -3.4e+50) {
		tmp = t_3;
	} else if (y_46_im <= -9.8e+39) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -8.2e+35) {
		tmp = t_3;
	} else if (y_46_im <= -1.3e+35) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -5e+28) {
		tmp = 1.0 / (y_46_re / t_1);
	} else if (y_46_im <= -180000.0) {
		tmp = t_4;
	} else if (y_46_im <= -255.0) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -58.0) {
		tmp = t_3;
	} else if (y_46_im <= -0.0126) {
		tmp = t_8;
	} else if (y_46_im <= -7.2e-15) {
		tmp = t_3;
	} else if (y_46_im <= -1.65e-30) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1e-33) {
		tmp = t_7;
	} else if (y_46_im <= -6.2e-39) {
		tmp = t_8;
	} else if (y_46_im <= -6e-39) {
		tmp = t_2;
	} else if (y_46_im <= -1.3e-84) {
		tmp = t_8;
	} else if (y_46_im <= -1.25e-84) {
		tmp = t_2;
	} else if (y_46_im <= -1.44e-92) {
		tmp = t_8;
	} else if (y_46_im <= -5e-94) {
		tmp = t_3;
	} else if (y_46_im <= -1.85e-95) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -8e-96) {
		tmp = t_3;
	} else if (y_46_im <= -3.6e-133) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -3.5e-133) {
		tmp = t_6 / y_46_im;
	} else if (y_46_im <= -1.6e-172) {
		tmp = t_0;
	} else if (y_46_im <= -1.55e-172) {
		tmp = t_3;
	} else if (y_46_im <= -3.4e-228) {
		tmp = (x_46_im / y_46_re) - (t_5 / y_46_re);
	} else if (y_46_im <= 1e-287) {
		tmp = t_0;
	} else if (y_46_im <= 1.2e-194) {
		tmp = t_9;
	} else if (y_46_im <= 1.25e-194) {
		tmp = t_3;
	} else if (y_46_im <= 2.1e-143) {
		tmp = t_8;
	} else if (y_46_im <= 2.2e-143) {
		tmp = t_3;
	} else if (y_46_im <= 5.6e-86) {
		tmp = t_9;
	} else if (y_46_im <= 1.15e-85) {
		tmp = t_3;
	} else if (y_46_im <= 6.2e-52) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 5.2e-34) {
		tmp = t_3;
	} else if (y_46_im <= 21000000.0) {
		tmp = t_0;
	} else if (y_46_im <= 2.6e+17) {
		tmp = t_3;
	} else if (y_46_im <= 2.55e+18) {
		tmp = t_8;
	} else if (y_46_im <= 1.85e+21) {
		tmp = t_3;
	} else if (y_46_im <= 2.2e+22) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 2.1e+24) {
		tmp = t_3;
	} else if (y_46_im <= 1.72e+31) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 3.5e+61) {
		tmp = t_3;
	} else if (y_46_im <= 2.4e+76) {
		tmp = t_8;
	} else if (y_46_im <= 1.25e+82) {
		tmp = t_3;
	} else if (y_46_im <= 1.4e+82) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 2.55e+103) {
		tmp = t_7;
	} else if (y_46_im <= 8e+103) {
		tmp = t_9;
	} else if (y_46_im <= 1.8e+143) {
		tmp = t_7;
	} else if (y_46_im <= 6e+147) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.3e+174) {
		tmp = t_3;
	} else if (y_46_im <= 1.25e+175) {
		tmp = t_8;
	} else if (y_46_im <= 4.7e+235) {
		tmp = t_3;
	} else if (y_46_im <= 7.8e+241) {
		tmp = t_8;
	} else if (y_46_im <= 1.9e+271) {
		tmp = t_7;
	} else if (y_46_im <= 1.95e+271) {
		tmp = t_8;
	} else if (y_46_im <= 5.8e+297) {
		tmp = t_3;
	} else {
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im);
	}
	return tmp;
}
def code(x_46_re, x_46_im, y_46_re, y_46_im):
	t_0 = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re
	t_1 = x_46_im - (x_46_re * (y_46_im / y_46_re))
	t_2 = x_46_im * ((y_46_re / y_46_im) / y_46_im)
	t_3 = x_46_re / -y_46_im
	t_4 = ((y_46_re * (x_46_im / y_46_im)) - x_46_re) / y_46_im
	t_5 = y_46_im * (x_46_re / y_46_re)
	t_6 = x_46_im * (y_46_re / y_46_im)
	t_7 = (t_6 - x_46_re) / y_46_im
	t_8 = t_1 / y_46_re
	t_9 = (x_46_im - t_5) / y_46_re
	tmp = 0
	if y_46_im <= -4.6e+107:
		tmp = t_4
	elif y_46_im <= -8.8e+82:
		tmp = t_8
	elif y_46_im <= -4.1e+72:
		tmp = t_7
	elif y_46_im <= -1.7e+59:
		tmp = t_0
	elif y_46_im <= -3.4e+50:
		tmp = t_3
	elif y_46_im <= -9.8e+39:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -8.2e+35:
		tmp = t_3
	elif y_46_im <= -1.3e+35:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -5e+28:
		tmp = 1.0 / (y_46_re / t_1)
	elif y_46_im <= -180000.0:
		tmp = t_4
	elif y_46_im <= -255.0:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -58.0:
		tmp = t_3
	elif y_46_im <= -0.0126:
		tmp = t_8
	elif y_46_im <= -7.2e-15:
		tmp = t_3
	elif y_46_im <= -1.65e-30:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1e-33:
		tmp = t_7
	elif y_46_im <= -6.2e-39:
		tmp = t_8
	elif y_46_im <= -6e-39:
		tmp = t_2
	elif y_46_im <= -1.3e-84:
		tmp = t_8
	elif y_46_im <= -1.25e-84:
		tmp = t_2
	elif y_46_im <= -1.44e-92:
		tmp = t_8
	elif y_46_im <= -5e-94:
		tmp = t_3
	elif y_46_im <= -1.85e-95:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -8e-96:
		tmp = t_3
	elif y_46_im <= -3.6e-133:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -3.5e-133:
		tmp = t_6 / y_46_im
	elif y_46_im <= -1.6e-172:
		tmp = t_0
	elif y_46_im <= -1.55e-172:
		tmp = t_3
	elif y_46_im <= -3.4e-228:
		tmp = (x_46_im / y_46_re) - (t_5 / y_46_re)
	elif y_46_im <= 1e-287:
		tmp = t_0
	elif y_46_im <= 1.2e-194:
		tmp = t_9
	elif y_46_im <= 1.25e-194:
		tmp = t_3
	elif y_46_im <= 2.1e-143:
		tmp = t_8
	elif y_46_im <= 2.2e-143:
		tmp = t_3
	elif y_46_im <= 5.6e-86:
		tmp = t_9
	elif y_46_im <= 1.15e-85:
		tmp = t_3
	elif y_46_im <= 6.2e-52:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 5.2e-34:
		tmp = t_3
	elif y_46_im <= 21000000.0:
		tmp = t_0
	elif y_46_im <= 2.6e+17:
		tmp = t_3
	elif y_46_im <= 2.55e+18:
		tmp = t_8
	elif y_46_im <= 1.85e+21:
		tmp = t_3
	elif y_46_im <= 2.2e+22:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 2.1e+24:
		tmp = t_3
	elif y_46_im <= 1.72e+31:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 3.5e+61:
		tmp = t_3
	elif y_46_im <= 2.4e+76:
		tmp = t_8
	elif y_46_im <= 1.25e+82:
		tmp = t_3
	elif y_46_im <= 1.4e+82:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 2.55e+103:
		tmp = t_7
	elif y_46_im <= 8e+103:
		tmp = t_9
	elif y_46_im <= 1.8e+143:
		tmp = t_7
	elif y_46_im <= 6e+147:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 1.3e+174:
		tmp = t_3
	elif y_46_im <= 1.25e+175:
		tmp = t_8
	elif y_46_im <= 4.7e+235:
		tmp = t_3
	elif y_46_im <= 7.8e+241:
		tmp = t_8
	elif y_46_im <= 1.9e+271:
		tmp = t_7
	elif y_46_im <= 1.95e+271:
		tmp = t_8
	elif y_46_im <= 5.8e+297:
		tmp = t_3
	else:
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im)
	return tmp
function code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = Float64(Float64(x_46_im - Float64(Float64(y_46_im * x_46_re) / y_46_re)) / y_46_re)
	t_1 = Float64(x_46_im - Float64(x_46_re * Float64(y_46_im / y_46_re)))
	t_2 = Float64(x_46_im * Float64(Float64(y_46_re / y_46_im) / y_46_im))
	t_3 = Float64(x_46_re / Float64(-y_46_im))
	t_4 = Float64(Float64(Float64(y_46_re * Float64(x_46_im / y_46_im)) - x_46_re) / y_46_im)
	t_5 = Float64(y_46_im * Float64(x_46_re / y_46_re))
	t_6 = Float64(x_46_im * Float64(y_46_re / y_46_im))
	t_7 = Float64(Float64(t_6 - x_46_re) / y_46_im)
	t_8 = Float64(t_1 / y_46_re)
	t_9 = Float64(Float64(x_46_im - t_5) / y_46_re)
	tmp = 0.0
	if (y_46_im <= -4.6e+107)
		tmp = t_4;
	elseif (y_46_im <= -8.8e+82)
		tmp = t_8;
	elseif (y_46_im <= -4.1e+72)
		tmp = t_7;
	elseif (y_46_im <= -1.7e+59)
		tmp = t_0;
	elseif (y_46_im <= -3.4e+50)
		tmp = t_3;
	elseif (y_46_im <= -9.8e+39)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -8.2e+35)
		tmp = t_3;
	elseif (y_46_im <= -1.3e+35)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -5e+28)
		tmp = Float64(1.0 / Float64(y_46_re / t_1));
	elseif (y_46_im <= -180000.0)
		tmp = t_4;
	elseif (y_46_im <= -255.0)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -58.0)
		tmp = t_3;
	elseif (y_46_im <= -0.0126)
		tmp = t_8;
	elseif (y_46_im <= -7.2e-15)
		tmp = t_3;
	elseif (y_46_im <= -1.65e-30)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1e-33)
		tmp = t_7;
	elseif (y_46_im <= -6.2e-39)
		tmp = t_8;
	elseif (y_46_im <= -6e-39)
		tmp = t_2;
	elseif (y_46_im <= -1.3e-84)
		tmp = t_8;
	elseif (y_46_im <= -1.25e-84)
		tmp = t_2;
	elseif (y_46_im <= -1.44e-92)
		tmp = t_8;
	elseif (y_46_im <= -5e-94)
		tmp = t_3;
	elseif (y_46_im <= -1.85e-95)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -8e-96)
		tmp = t_3;
	elseif (y_46_im <= -3.6e-133)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -3.5e-133)
		tmp = Float64(t_6 / y_46_im);
	elseif (y_46_im <= -1.6e-172)
		tmp = t_0;
	elseif (y_46_im <= -1.55e-172)
		tmp = t_3;
	elseif (y_46_im <= -3.4e-228)
		tmp = Float64(Float64(x_46_im / y_46_re) - Float64(t_5 / y_46_re));
	elseif (y_46_im <= 1e-287)
		tmp = t_0;
	elseif (y_46_im <= 1.2e-194)
		tmp = t_9;
	elseif (y_46_im <= 1.25e-194)
		tmp = t_3;
	elseif (y_46_im <= 2.1e-143)
		tmp = t_8;
	elseif (y_46_im <= 2.2e-143)
		tmp = t_3;
	elseif (y_46_im <= 5.6e-86)
		tmp = t_9;
	elseif (y_46_im <= 1.15e-85)
		tmp = t_3;
	elseif (y_46_im <= 6.2e-52)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 5.2e-34)
		tmp = t_3;
	elseif (y_46_im <= 21000000.0)
		tmp = t_0;
	elseif (y_46_im <= 2.6e+17)
		tmp = t_3;
	elseif (y_46_im <= 2.55e+18)
		tmp = t_8;
	elseif (y_46_im <= 1.85e+21)
		tmp = t_3;
	elseif (y_46_im <= 2.2e+22)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 2.1e+24)
		tmp = t_3;
	elseif (y_46_im <= 1.72e+31)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 3.5e+61)
		tmp = t_3;
	elseif (y_46_im <= 2.4e+76)
		tmp = t_8;
	elseif (y_46_im <= 1.25e+82)
		tmp = t_3;
	elseif (y_46_im <= 1.4e+82)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 2.55e+103)
		tmp = t_7;
	elseif (y_46_im <= 8e+103)
		tmp = t_9;
	elseif (y_46_im <= 1.8e+143)
		tmp = t_7;
	elseif (y_46_im <= 6e+147)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 1.3e+174)
		tmp = t_3;
	elseif (y_46_im <= 1.25e+175)
		tmp = t_8;
	elseif (y_46_im <= 4.7e+235)
		tmp = t_3;
	elseif (y_46_im <= 7.8e+241)
		tmp = t_8;
	elseif (y_46_im <= 1.9e+271)
		tmp = t_7;
	elseif (y_46_im <= 1.95e+271)
		tmp = t_8;
	elseif (y_46_im <= 5.8e+297)
		tmp = t_3;
	else
		tmp = Float64(Float64(y_46_re / y_46_im) * Float64(x_46_im / y_46_im));
	end
	return tmp
end
function tmp_2 = code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re;
	t_1 = x_46_im - (x_46_re * (y_46_im / y_46_re));
	t_2 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	t_3 = x_46_re / -y_46_im;
	t_4 = ((y_46_re * (x_46_im / y_46_im)) - x_46_re) / y_46_im;
	t_5 = y_46_im * (x_46_re / y_46_re);
	t_6 = x_46_im * (y_46_re / y_46_im);
	t_7 = (t_6 - x_46_re) / y_46_im;
	t_8 = t_1 / y_46_re;
	t_9 = (x_46_im - t_5) / y_46_re;
	tmp = 0.0;
	if (y_46_im <= -4.6e+107)
		tmp = t_4;
	elseif (y_46_im <= -8.8e+82)
		tmp = t_8;
	elseif (y_46_im <= -4.1e+72)
		tmp = t_7;
	elseif (y_46_im <= -1.7e+59)
		tmp = t_0;
	elseif (y_46_im <= -3.4e+50)
		tmp = t_3;
	elseif (y_46_im <= -9.8e+39)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -8.2e+35)
		tmp = t_3;
	elseif (y_46_im <= -1.3e+35)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -5e+28)
		tmp = 1.0 / (y_46_re / t_1);
	elseif (y_46_im <= -180000.0)
		tmp = t_4;
	elseif (y_46_im <= -255.0)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -58.0)
		tmp = t_3;
	elseif (y_46_im <= -0.0126)
		tmp = t_8;
	elseif (y_46_im <= -7.2e-15)
		tmp = t_3;
	elseif (y_46_im <= -1.65e-30)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1e-33)
		tmp = t_7;
	elseif (y_46_im <= -6.2e-39)
		tmp = t_8;
	elseif (y_46_im <= -6e-39)
		tmp = t_2;
	elseif (y_46_im <= -1.3e-84)
		tmp = t_8;
	elseif (y_46_im <= -1.25e-84)
		tmp = t_2;
	elseif (y_46_im <= -1.44e-92)
		tmp = t_8;
	elseif (y_46_im <= -5e-94)
		tmp = t_3;
	elseif (y_46_im <= -1.85e-95)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -8e-96)
		tmp = t_3;
	elseif (y_46_im <= -3.6e-133)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -3.5e-133)
		tmp = t_6 / y_46_im;
	elseif (y_46_im <= -1.6e-172)
		tmp = t_0;
	elseif (y_46_im <= -1.55e-172)
		tmp = t_3;
	elseif (y_46_im <= -3.4e-228)
		tmp = (x_46_im / y_46_re) - (t_5 / y_46_re);
	elseif (y_46_im <= 1e-287)
		tmp = t_0;
	elseif (y_46_im <= 1.2e-194)
		tmp = t_9;
	elseif (y_46_im <= 1.25e-194)
		tmp = t_3;
	elseif (y_46_im <= 2.1e-143)
		tmp = t_8;
	elseif (y_46_im <= 2.2e-143)
		tmp = t_3;
	elseif (y_46_im <= 5.6e-86)
		tmp = t_9;
	elseif (y_46_im <= 1.15e-85)
		tmp = t_3;
	elseif (y_46_im <= 6.2e-52)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 5.2e-34)
		tmp = t_3;
	elseif (y_46_im <= 21000000.0)
		tmp = t_0;
	elseif (y_46_im <= 2.6e+17)
		tmp = t_3;
	elseif (y_46_im <= 2.55e+18)
		tmp = t_8;
	elseif (y_46_im <= 1.85e+21)
		tmp = t_3;
	elseif (y_46_im <= 2.2e+22)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 2.1e+24)
		tmp = t_3;
	elseif (y_46_im <= 1.72e+31)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 3.5e+61)
		tmp = t_3;
	elseif (y_46_im <= 2.4e+76)
		tmp = t_8;
	elseif (y_46_im <= 1.25e+82)
		tmp = t_3;
	elseif (y_46_im <= 1.4e+82)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 2.55e+103)
		tmp = t_7;
	elseif (y_46_im <= 8e+103)
		tmp = t_9;
	elseif (y_46_im <= 1.8e+143)
		tmp = t_7;
	elseif (y_46_im <= 6e+147)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 1.3e+174)
		tmp = t_3;
	elseif (y_46_im <= 1.25e+175)
		tmp = t_8;
	elseif (y_46_im <= 4.7e+235)
		tmp = t_3;
	elseif (y_46_im <= 7.8e+241)
		tmp = t_8;
	elseif (y_46_im <= 1.9e+271)
		tmp = t_7;
	elseif (y_46_im <= 1.95e+271)
		tmp = t_8;
	elseif (y_46_im <= 5.8e+297)
		tmp = t_3;
	else
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im);
	end
	tmp_2 = tmp;
end
code[x$46$re_, x$46$im_, y$46$re_, y$46$im_] := Block[{t$95$0 = N[(N[(x$46$im - N[(N[(y$46$im * x$46$re), $MachinePrecision] / y$46$re), $MachinePrecision]), $MachinePrecision] / y$46$re), $MachinePrecision]}, Block[{t$95$1 = N[(x$46$im - N[(x$46$re * N[(y$46$im / y$46$re), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(x$46$im * N[(N[(y$46$re / y$46$im), $MachinePrecision] / y$46$im), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(x$46$re / (-y$46$im)), $MachinePrecision]}, Block[{t$95$4 = N[(N[(N[(y$46$re * N[(x$46$im / y$46$im), $MachinePrecision]), $MachinePrecision] - x$46$re), $MachinePrecision] / y$46$im), $MachinePrecision]}, Block[{t$95$5 = N[(y$46$im * N[(x$46$re / y$46$re), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$6 = N[(x$46$im * N[(y$46$re / y$46$im), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$7 = N[(N[(t$95$6 - x$46$re), $MachinePrecision] / y$46$im), $MachinePrecision]}, Block[{t$95$8 = N[(t$95$1 / y$46$re), $MachinePrecision]}, Block[{t$95$9 = N[(N[(x$46$im - t$95$5), $MachinePrecision] / y$46$re), $MachinePrecision]}, If[LessEqual[y$46$im, -4.6e+107], t$95$4, If[LessEqual[y$46$im, -8.8e+82], t$95$8, If[LessEqual[y$46$im, -4.1e+72], t$95$7, If[LessEqual[y$46$im, -1.7e+59], t$95$0, If[LessEqual[y$46$im, -3.4e+50], t$95$3, If[LessEqual[y$46$im, -9.8e+39], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -8.2e+35], t$95$3, If[LessEqual[y$46$im, -1.3e+35], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -5e+28], N[(1.0 / N[(y$46$re / t$95$1), $MachinePrecision]), $MachinePrecision], If[LessEqual[y$46$im, -180000.0], t$95$4, If[LessEqual[y$46$im, -255.0], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -58.0], t$95$3, If[LessEqual[y$46$im, -0.0126], t$95$8, If[LessEqual[y$46$im, -7.2e-15], t$95$3, If[LessEqual[y$46$im, -1.65e-30], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1e-33], t$95$7, If[LessEqual[y$46$im, -6.2e-39], t$95$8, If[LessEqual[y$46$im, -6e-39], t$95$2, If[LessEqual[y$46$im, -1.3e-84], t$95$8, If[LessEqual[y$46$im, -1.25e-84], t$95$2, If[LessEqual[y$46$im, -1.44e-92], t$95$8, If[LessEqual[y$46$im, -5e-94], t$95$3, If[LessEqual[y$46$im, -1.85e-95], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -8e-96], t$95$3, If[LessEqual[y$46$im, -3.6e-133], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -3.5e-133], N[(t$95$6 / y$46$im), $MachinePrecision], If[LessEqual[y$46$im, -1.6e-172], t$95$0, If[LessEqual[y$46$im, -1.55e-172], t$95$3, If[LessEqual[y$46$im, -3.4e-228], N[(N[(x$46$im / y$46$re), $MachinePrecision] - N[(t$95$5 / y$46$re), $MachinePrecision]), $MachinePrecision], If[LessEqual[y$46$im, 1e-287], t$95$0, If[LessEqual[y$46$im, 1.2e-194], t$95$9, If[LessEqual[y$46$im, 1.25e-194], t$95$3, If[LessEqual[y$46$im, 2.1e-143], t$95$8, If[LessEqual[y$46$im, 2.2e-143], t$95$3, If[LessEqual[y$46$im, 5.6e-86], t$95$9, If[LessEqual[y$46$im, 1.15e-85], t$95$3, If[LessEqual[y$46$im, 6.2e-52], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 5.2e-34], t$95$3, If[LessEqual[y$46$im, 21000000.0], t$95$0, If[LessEqual[y$46$im, 2.6e+17], t$95$3, If[LessEqual[y$46$im, 2.55e+18], t$95$8, If[LessEqual[y$46$im, 1.85e+21], t$95$3, If[LessEqual[y$46$im, 2.2e+22], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 2.1e+24], t$95$3, If[LessEqual[y$46$im, 1.72e+31], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 3.5e+61], t$95$3, If[LessEqual[y$46$im, 2.4e+76], t$95$8, If[LessEqual[y$46$im, 1.25e+82], t$95$3, If[LessEqual[y$46$im, 1.4e+82], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 2.55e+103], t$95$7, If[LessEqual[y$46$im, 8e+103], t$95$9, If[LessEqual[y$46$im, 1.8e+143], t$95$7, If[LessEqual[y$46$im, 6e+147], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 1.3e+174], t$95$3, If[LessEqual[y$46$im, 1.25e+175], t$95$8, If[LessEqual[y$46$im, 4.7e+235], t$95$3, If[LessEqual[y$46$im, 7.8e+241], t$95$8, If[LessEqual[y$46$im, 1.9e+271], t$95$7, If[LessEqual[y$46$im, 1.95e+271], t$95$8, If[LessEqual[y$46$im, 5.8e+297], t$95$3, N[(N[(y$46$re / y$46$im), $MachinePrecision] * N[(x$46$im / y$46$im), $MachinePrecision]), $MachinePrecision]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\
t_1 := x.im - x.re \cdot \frac{y.im}{y.re}\\
t_2 := x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\
t_3 := \frac{x.re}{-y.im}\\
t_4 := \frac{y.re \cdot \frac{x.im}{y.im} - x.re}{y.im}\\
t_5 := y.im \cdot \frac{x.re}{y.re}\\
t_6 := x.im \cdot \frac{y.re}{y.im}\\
t_7 := \frac{t\_6 - x.re}{y.im}\\
t_8 := \frac{t\_1}{y.re}\\
t_9 := \frac{x.im - t\_5}{y.re}\\
\mathbf{if}\;y.im \leq -4.6 \cdot 10^{+107}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;y.im \leq -8.8 \cdot 10^{+82}:\\
\;\;\;\;t\_8\\

\mathbf{elif}\;y.im \leq -4.1 \cdot 10^{+72}:\\
\;\;\;\;t\_7\\

\mathbf{elif}\;y.im \leq -1.7 \cdot 10^{+59}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq -3.4 \cdot 10^{+50}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq -9.8 \cdot 10^{+39}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -8.2 \cdot 10^{+35}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq -1.3 \cdot 10^{+35}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -5 \cdot 10^{+28}:\\
\;\;\;\;\frac{1}{\frac{y.re}{t\_1}}\\

\mathbf{elif}\;y.im \leq -180000:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;y.im \leq -255:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -58:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq -0.0126:\\
\;\;\;\;t\_8\\

\mathbf{elif}\;y.im \leq -7.2 \cdot 10^{-15}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq -1.65 \cdot 10^{-30}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1 \cdot 10^{-33}:\\
\;\;\;\;t\_7\\

\mathbf{elif}\;y.im \leq -6.2 \cdot 10^{-39}:\\
\;\;\;\;t\_8\\

\mathbf{elif}\;y.im \leq -6 \cdot 10^{-39}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq -1.3 \cdot 10^{-84}:\\
\;\;\;\;t\_8\\

\mathbf{elif}\;y.im \leq -1.25 \cdot 10^{-84}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq -1.44 \cdot 10^{-92}:\\
\;\;\;\;t\_8\\

\mathbf{elif}\;y.im \leq -5 \cdot 10^{-94}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq -1.85 \cdot 10^{-95}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -8 \cdot 10^{-96}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq -3.6 \cdot 10^{-133}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -3.5 \cdot 10^{-133}:\\
\;\;\;\;\frac{t\_6}{y.im}\\

\mathbf{elif}\;y.im \leq -1.6 \cdot 10^{-172}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-172}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq -3.4 \cdot 10^{-228}:\\
\;\;\;\;\frac{x.im}{y.re} - \frac{t\_5}{y.re}\\

\mathbf{elif}\;y.im \leq 10^{-287}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq 1.2 \cdot 10^{-194}:\\
\;\;\;\;t\_9\\

\mathbf{elif}\;y.im \leq 1.25 \cdot 10^{-194}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 2.1 \cdot 10^{-143}:\\
\;\;\;\;t\_8\\

\mathbf{elif}\;y.im \leq 2.2 \cdot 10^{-143}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 5.6 \cdot 10^{-86}:\\
\;\;\;\;t\_9\\

\mathbf{elif}\;y.im \leq 1.15 \cdot 10^{-85}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 6.2 \cdot 10^{-52}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 5.2 \cdot 10^{-34}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 21000000:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq 2.6 \cdot 10^{+17}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 2.55 \cdot 10^{+18}:\\
\;\;\;\;t\_8\\

\mathbf{elif}\;y.im \leq 1.85 \cdot 10^{+21}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 2.2 \cdot 10^{+22}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 2.1 \cdot 10^{+24}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 1.72 \cdot 10^{+31}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 3.5 \cdot 10^{+61}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 2.4 \cdot 10^{+76}:\\
\;\;\;\;t\_8\\

\mathbf{elif}\;y.im \leq 1.25 \cdot 10^{+82}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 1.4 \cdot 10^{+82}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 2.55 \cdot 10^{+103}:\\
\;\;\;\;t\_7\\

\mathbf{elif}\;y.im \leq 8 \cdot 10^{+103}:\\
\;\;\;\;t\_9\\

\mathbf{elif}\;y.im \leq 1.8 \cdot 10^{+143}:\\
\;\;\;\;t\_7\\

\mathbf{elif}\;y.im \leq 6 \cdot 10^{+147}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 1.3 \cdot 10^{+174}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 1.25 \cdot 10^{+175}:\\
\;\;\;\;t\_8\\

\mathbf{elif}\;y.im \leq 4.7 \cdot 10^{+235}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+241}:\\
\;\;\;\;t\_8\\

\mathbf{elif}\;y.im \leq 1.9 \cdot 10^{+271}:\\
\;\;\;\;t\_7\\

\mathbf{elif}\;y.im \leq 1.95 \cdot 10^{+271}:\\
\;\;\;\;t\_8\\

\mathbf{elif}\;y.im \leq 5.8 \cdot 10^{+297}:\\
\;\;\;\;t\_3\\

\mathbf{else}:\\
\;\;\;\;\frac{y.re}{y.im} \cdot \frac{x.im}{y.im}\\


\end{array}
\end{array}
Derivation
  1. Split input into 12 regimes
  2. if y.im < -4.6000000000000001e107 or -4.99999999999999957e28 < y.im < -1.8e5

    1. Initial program 37.9%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around 0 75.0%

      \[\leadsto \color{blue}{-1 \cdot \frac{x.re}{y.im} + \frac{x.im \cdot y.re}{{y.im}^{2}}} \]
    4. Step-by-step derivation
      1. +-commutative75.0%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{{y.im}^{2}} + -1 \cdot \frac{x.re}{y.im}} \]
      2. mul-1-neg75.0%

        \[\leadsto \frac{x.im \cdot y.re}{{y.im}^{2}} + \color{blue}{\left(-\frac{x.re}{y.im}\right)} \]
      3. unsub-neg75.0%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{{y.im}^{2}} - \frac{x.re}{y.im}} \]
      4. unpow275.0%

        \[\leadsto \frac{x.im \cdot y.re}{\color{blue}{y.im \cdot y.im}} - \frac{x.re}{y.im} \]
      5. associate-/r*82.2%

        \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im}}{y.im}} - \frac{x.re}{y.im} \]
      6. div-sub82.2%

        \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
      7. *-commutative82.2%

        \[\leadsto \frac{\frac{\color{blue}{y.re \cdot x.im}}{y.im} - x.re}{y.im} \]
      8. associate-/l*90.6%

        \[\leadsto \frac{\color{blue}{y.re \cdot \frac{x.im}{y.im}} - x.re}{y.im} \]
    5. Simplified90.6%

      \[\leadsto \color{blue}{\frac{y.re \cdot \frac{x.im}{y.im} - x.re}{y.im}} \]

    if -4.6000000000000001e107 < y.im < -8.8000000000000005e82 or -58 < y.im < -0.0126 or -1.0000000000000001e-33 < y.im < -6.1999999999999994e-39 or -6.00000000000000055e-39 < y.im < -1.3e-84 or -1.25e-84 < y.im < -1.4400000000000001e-92 or 1.2500000000000001e-194 < y.im < 2.1000000000000001e-143 or 2.6e17 < y.im < 2.55e18 or 3.50000000000000018e61 < y.im < 2.4e76 or 1.2999999999999999e174 < y.im < 1.25e175 or 4.6999999999999999e235 < y.im < 7.80000000000000052e241 or 1.8999999999999999e271 < y.im < 1.95e271

    1. Initial program 60.9%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around inf 92.7%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    4. Step-by-step derivation
      1. remove-double-neg92.7%

        \[\leadsto \frac{\color{blue}{\left(-\left(-x.im\right)\right)} + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      2. mul-1-neg92.7%

        \[\leadsto \frac{\left(-\color{blue}{-1 \cdot x.im}\right) + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      3. neg-mul-192.7%

        \[\leadsto \frac{\color{blue}{-1 \cdot \left(-1 \cdot x.im\right)} + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      4. distribute-lft-in92.7%

        \[\leadsto \frac{\color{blue}{-1 \cdot \left(-1 \cdot x.im + \frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      5. mul-1-neg92.7%

        \[\leadsto \frac{\color{blue}{-\left(-1 \cdot x.im + \frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      6. distribute-neg-in92.7%

        \[\leadsto \frac{\color{blue}{\left(--1 \cdot x.im\right) + \left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      7. mul-1-neg92.7%

        \[\leadsto \frac{\left(-\color{blue}{\left(-x.im\right)}\right) + \left(-\frac{x.re \cdot y.im}{y.re}\right)}{y.re} \]
      8. remove-double-neg92.7%

        \[\leadsto \frac{\color{blue}{x.im} + \left(-\frac{x.re \cdot y.im}{y.re}\right)}{y.re} \]
      9. unsub-neg92.7%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      10. associate-/l*100.0%

        \[\leadsto \frac{x.im - \color{blue}{x.re \cdot \frac{y.im}{y.re}}}{y.re} \]
    5. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}} \]

    if -8.8000000000000005e82 < y.im < -4.09999999999999963e72 or -1.6500000000000001e-30 < y.im < -1.0000000000000001e-33 or 1.4e82 < y.im < 2.5500000000000001e103 or 8e103 < y.im < 1.8e143 or 7.80000000000000052e241 < y.im < 1.8999999999999999e271

    1. Initial program 62.9%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub62.9%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative62.9%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt62.9%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac67.5%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg67.5%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define67.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define67.7%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*86.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt86.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow286.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define86.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr86.4%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 90.7%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]

    if -4.09999999999999963e72 < y.im < -1.70000000000000003e59 or -3.50000000000000003e-133 < y.im < -1.6000000000000001e-172 or -3.39999999999999991e-228 < y.im < 1.00000000000000002e-287 or 5.1999999999999999e-34 < y.im < 2.1e7

    1. Initial program 72.1%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub67.9%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative67.9%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt67.9%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac72.0%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg72.0%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define72.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define86.9%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*86.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt86.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow286.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define86.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr86.8%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 100.0%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg100.0%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg100.0%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative100.0%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]

    if -1.70000000000000003e59 < y.im < -3.3999999999999998e50 or -9.79999999999999974e39 < y.im < -8.1999999999999997e35 or -255 < y.im < -58 or -0.0126 < y.im < -7.2000000000000002e-15 or -1.4400000000000001e-92 < y.im < -4.9999999999999995e-94 or -1.84999999999999997e-95 < y.im < -7.9999999999999993e-96 or -1.6000000000000001e-172 < y.im < -1.5500000000000001e-172 or 1.2e-194 < y.im < 1.2500000000000001e-194 or 2.1000000000000001e-143 < y.im < 2.19999999999999989e-143 or 5.60000000000000019e-86 < y.im < 1.15e-85 or 6.1999999999999998e-52 < y.im < 5.1999999999999999e-34 or 2.1e7 < y.im < 2.6e17 or 2.55e18 < y.im < 1.85e21 or 2.2e22 < y.im < 2.1000000000000001e24 or 1.72e31 < y.im < 3.50000000000000018e61 or 2.4e76 < y.im < 1.25000000000000004e82 or 5.99999999999999987e147 < y.im < 1.2999999999999999e174 or 1.25e175 < y.im < 4.6999999999999999e235 or 1.95e271 < y.im < 5.8000000000000005e297

    1. Initial program 70.5%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around 0 100.0%

      \[\leadsto \color{blue}{-1 \cdot \frac{x.re}{y.im}} \]
    4. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \color{blue}{\frac{-1 \cdot x.re}{y.im}} \]
      2. neg-mul-1100.0%

        \[\leadsto \frac{\color{blue}{-x.re}}{y.im} \]
    5. Simplified100.0%

      \[\leadsto \color{blue}{\frac{-x.re}{y.im}} \]

    if -3.3999999999999998e50 < y.im < -9.79999999999999974e39 or -8.1999999999999997e35 < y.im < -1.30000000000000003e35 or -1.8e5 < y.im < -255 or -7.2000000000000002e-15 < y.im < -1.6500000000000001e-30 or -4.9999999999999995e-94 < y.im < -1.84999999999999997e-95 or -7.9999999999999993e-96 < y.im < -3.6000000000000004e-133 or 1.15e-85 < y.im < 6.1999999999999998e-52 or 1.85e21 < y.im < 2.2e22 or 2.1000000000000001e24 < y.im < 1.72e31 or 1.25000000000000004e82 < y.im < 1.4e82 or 1.8e143 < y.im < 5.99999999999999987e147

    1. Initial program 55.7%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around inf 100.0%

      \[\leadsto \color{blue}{\frac{x.im}{y.re}} \]

    if -1.30000000000000003e35 < y.im < -4.99999999999999957e28

    1. Initial program 52.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub52.0%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative52.0%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt52.0%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac100.0%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg100.0%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow2100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 99.2%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg99.2%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg99.2%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative99.2%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified99.2%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]
    8. Step-by-step derivation
      1. clear-num100.0%

        \[\leadsto \color{blue}{\frac{1}{\frac{y.re}{x.im - \frac{y.im \cdot x.re}{y.re}}}} \]
      2. inv-pow100.0%

        \[\leadsto \color{blue}{{\left(\frac{y.re}{x.im - \frac{y.im \cdot x.re}{y.re}}\right)}^{-1}} \]
      3. associate-/l*100.0%

        \[\leadsto {\left(\frac{y.re}{x.im - \color{blue}{y.im \cdot \frac{x.re}{y.re}}}\right)}^{-1} \]
    9. Applied egg-rr100.0%

      \[\leadsto \color{blue}{{\left(\frac{y.re}{x.im - y.im \cdot \frac{x.re}{y.re}}\right)}^{-1}} \]
    10. Step-by-step derivation
      1. unpow-1100.0%

        \[\leadsto \color{blue}{\frac{1}{\frac{y.re}{x.im - y.im \cdot \frac{x.re}{y.re}}}} \]
      2. associate-*r/100.0%

        \[\leadsto \frac{1}{\frac{y.re}{x.im - \color{blue}{\frac{y.im \cdot x.re}{y.re}}}} \]
      3. *-commutative100.0%

        \[\leadsto \frac{1}{\frac{y.re}{x.im - \frac{\color{blue}{x.re \cdot y.im}}{y.re}}} \]
      4. associate-*r/100.0%

        \[\leadsto \frac{1}{\frac{y.re}{x.im - \color{blue}{x.re \cdot \frac{y.im}{y.re}}}} \]
    11. Simplified100.0%

      \[\leadsto \color{blue}{\frac{1}{\frac{y.re}{x.im - x.re \cdot \frac{y.im}{y.re}}}} \]

    if -6.1999999999999994e-39 < y.im < -6.00000000000000055e-39 or -1.3e-84 < y.im < -1.25e-84

    1. Initial program 99.2%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub99.2%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative99.2%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt99.2%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac99.2%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg99.2%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define99.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define99.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*99.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt99.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow299.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define99.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr99.2%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 99.2%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/99.2%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified99.2%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 99.2%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/99.2%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified99.2%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    11. Step-by-step derivation
      1. associate-/l*100.0%

        \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]
    12. Applied egg-rr100.0%

      \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]

    if -3.6000000000000004e-133 < y.im < -3.50000000000000003e-133

    1. Initial program 100.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub100.0%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative100.0%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt100.0%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac7.8%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg7.8%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define7.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define7.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*7.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt7.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow27.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define7.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr7.8%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 100.0%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 100.0%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified100.0%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]

    if -1.5500000000000001e-172 < y.im < -3.39999999999999991e-228

    1. Initial program 29.2%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub28.3%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative28.3%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt28.3%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac39.0%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg39.0%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define39.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define81.7%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*81.7%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt81.7%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow281.7%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define81.7%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr81.7%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 99.7%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg99.7%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg99.7%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative99.7%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified99.7%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]
    8. Step-by-step derivation
      1. div-sub99.8%

        \[\leadsto \color{blue}{\frac{x.im}{y.re} - \frac{\frac{y.im \cdot x.re}{y.re}}{y.re}} \]
      2. associate-/l*100.0%

        \[\leadsto \frac{x.im}{y.re} - \frac{\color{blue}{y.im \cdot \frac{x.re}{y.re}}}{y.re} \]
    9. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\frac{x.im}{y.re} - \frac{y.im \cdot \frac{x.re}{y.re}}{y.re}} \]

    if 1.00000000000000002e-287 < y.im < 1.2e-194 or 2.19999999999999989e-143 < y.im < 5.60000000000000019e-86 or 2.5500000000000001e103 < y.im < 8e103

    1. Initial program 61.6%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub57.1%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative57.1%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt57.1%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac57.6%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg57.6%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define57.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define87.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*87.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt87.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow287.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define87.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr87.4%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 91.4%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg91.4%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg91.4%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative91.4%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified91.4%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]
    8. Step-by-step derivation
      1. associate-/l*99.9%

        \[\leadsto \frac{x.im - \color{blue}{y.im \cdot \frac{x.re}{y.re}}}{y.re} \]
    9. Applied egg-rr99.9%

      \[\leadsto \frac{x.im - \color{blue}{y.im \cdot \frac{x.re}{y.re}}}{y.re} \]

    if 5.8000000000000005e297 < y.im

    1. Initial program 54.8%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub54.8%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative54.8%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt54.8%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac54.8%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg54.8%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define54.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow2100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 99.2%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/99.2%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified99.2%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 99.2%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/99.2%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified99.2%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    11. Step-by-step derivation
      1. *-commutative99.2%

        \[\leadsto \frac{\color{blue}{\frac{y.re}{y.im} \cdot x.im}}{y.im} \]
      2. *-un-lft-identity99.2%

        \[\leadsto \frac{\frac{y.re}{y.im} \cdot x.im}{\color{blue}{1 \cdot y.im}} \]
      3. times-frac100.0%

        \[\leadsto \color{blue}{\frac{\frac{y.re}{y.im}}{1} \cdot \frac{x.im}{y.im}} \]
    12. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\frac{\frac{y.re}{y.im}}{1} \cdot \frac{x.im}{y.im}} \]
  3. Recombined 12 regimes into one program.
  4. Final simplification98.6%

    \[\leadsto \begin{array}{l} \mathbf{if}\;y.im \leq -4.6 \cdot 10^{+107}:\\ \;\;\;\;\frac{y.re \cdot \frac{x.im}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.im \leq -8.8 \cdot 10^{+82}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -4.1 \cdot 10^{+72}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.im \leq -1.7 \cdot 10^{+59}:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -3.4 \cdot 10^{+50}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -9.8 \cdot 10^{+39}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -8.2 \cdot 10^{+35}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.3 \cdot 10^{+35}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -5 \cdot 10^{+28}:\\ \;\;\;\;\frac{1}{\frac{y.re}{x.im - x.re \cdot \frac{y.im}{y.re}}}\\ \mathbf{elif}\;y.im \leq -180000:\\ \;\;\;\;\frac{y.re \cdot \frac{x.im}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.im \leq -255:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -58:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -0.0126:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -7.2 \cdot 10^{-15}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.65 \cdot 10^{-30}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1 \cdot 10^{-33}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.im \leq -6.2 \cdot 10^{-39}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -6 \cdot 10^{-39}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq -1.3 \cdot 10^{-84}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -1.25 \cdot 10^{-84}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq -1.44 \cdot 10^{-92}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -5 \cdot 10^{-94}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.85 \cdot 10^{-95}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -8 \cdot 10^{-96}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -3.6 \cdot 10^{-133}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -3.5 \cdot 10^{-133}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq -1.6 \cdot 10^{-172}:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-172}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -3.4 \cdot 10^{-228}:\\ \;\;\;\;\frac{x.im}{y.re} - \frac{y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 10^{-287}:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.2 \cdot 10^{-194}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{-194}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.1 \cdot 10^{-143}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 2.2 \cdot 10^{-143}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 5.6 \cdot 10^{-86}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.15 \cdot 10^{-85}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 6.2 \cdot 10^{-52}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 5.2 \cdot 10^{-34}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 21000000:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 2.6 \cdot 10^{+17}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.55 \cdot 10^{+18}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.85 \cdot 10^{+21}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.2 \cdot 10^{+22}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 2.1 \cdot 10^{+24}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.72 \cdot 10^{+31}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 3.5 \cdot 10^{+61}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.4 \cdot 10^{+76}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{+82}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.4 \cdot 10^{+82}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 2.55 \cdot 10^{+103}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.im \leq 8 \cdot 10^{+103}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.8 \cdot 10^{+143}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{+147}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.3 \cdot 10^{+174}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{+175}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 4.7 \cdot 10^{+235}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+241}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.9 \cdot 10^{+271}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.im \leq 1.95 \cdot 10^{+271}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 5.8 \cdot 10^{+297}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{else}:\\ \;\;\;\;\frac{y.re}{y.im} \cdot \frac{x.im}{y.im}\\ \end{array} \]
  5. Add Preprocessing

Alternative 2: 63.1% accurate, 0.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ t_1 := x.im \cdot \frac{y.re}{y.im}\\ t_2 := \frac{t\_1 - x.re}{y.im}\\ t_3 := \frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ t_4 := y.re \cdot y.re + y.im \cdot y.im\\ t_5 := \frac{x.re \cdot \mathsf{fma}\left(y.re, \frac{x.im}{x.re}, -y.im\right)}{t\_4}\\ t_6 := \frac{y.re \cdot x.im - y.im \cdot x.re}{t\_4}\\ t_7 := \frac{x.re}{-y.im}\\ \mathbf{if}\;t\_6 \leq -\infty:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;t\_6 \leq -5 \cdot 10^{+102}:\\ \;\;\;\;\frac{\mathsf{fma}\left(x.im, y.re, y.im \cdot \left(-x.re\right)\right)}{\mathsf{fma}\left(y.im, y.im, y.re \cdot y.re\right)}\\ \mathbf{elif}\;t\_6 \leq -5 \cdot 10^{+99}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;t\_6 \leq -5 \cdot 10^{+91}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;t\_6 \leq -4 \cdot 10^{+87}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;t\_6 \leq -1 \cdot 10^{+80}:\\ \;\;\;\;t\_7\\ \mathbf{elif}\;t\_6 \leq -4 \cdot 10^{+21}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;t\_6 \leq -1 \cdot 10^{+17}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;t\_6 \leq -1 \cdot 10^{-53}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;t\_6 \leq -2 \cdot 10^{-59}:\\ \;\;\;\;t\_7\\ \mathbf{elif}\;t\_6 \leq -2 \cdot 10^{-67}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;t\_6 \leq -4 \cdot 10^{-69}:\\ \;\;\;\;t\_7\\ \mathbf{elif}\;t\_6 \leq -1 \cdot 10^{-79}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;t\_6 \leq -5 \cdot 10^{-87}:\\ \;\;\;\;\frac{t\_1}{y.im}\\ \mathbf{elif}\;t\_6 \leq -1 \cdot 10^{-131}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;t\_6 \leq -2 \cdot 10^{-174}:\\ \;\;\;\;t\_7\\ \mathbf{elif}\;t\_6 \leq -1 \cdot 10^{-279}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;t\_6 \leq -1 \cdot 10^{-300}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;t\_6 \leq -1 \cdot 10^{-321}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;t\_6 \leq 10^{-264}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;t\_6 \leq 4 \cdot 10^{-250}:\\ \;\;\;\;t\_7\\ \mathbf{elif}\;t\_6 \leq 10^{-228}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;t\_6 \leq 5 \cdot 10^{-223}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;t\_6 \leq 2 \cdot 10^{-169}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;t\_6 \leq 5 \cdot 10^{-156}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;t\_6 \leq 2 \cdot 10^{-155}:\\ \;\;\;\;t\_7\\ \mathbf{elif}\;t\_6 \leq 10^{-107}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;t\_6 \leq 5 \cdot 10^{-70}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;t\_6 \leq 5 \cdot 10^{-15}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;t\_6 \leq 5000:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;t\_6 \leq 10000:\\ \;\;\;\;t\_7\\ \mathbf{elif}\;t\_6 \leq 10^{+49}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;t\_6 \leq 2 \cdot 10^{+75}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;t\_6 \leq 10^{+106}:\\ \;\;\;\;t\_7\\ \mathbf{elif}\;t\_6 \leq 10^{+148}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;t\_6 \leq 10^{+293}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;t\_6 \leq \infty:\\ \;\;\;\;t\_2\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
(FPCore (x.re x.im y.re y.im)
 :precision binary64
 (let* ((t_0 (/ (- x.im (* y.im (/ x.re y.re))) y.re))
        (t_1 (* x.im (/ y.re y.im)))
        (t_2 (/ (- t_1 x.re) y.im))
        (t_3 (/ (- x.im (* x.re (/ y.im y.re))) y.re))
        (t_4 (+ (* y.re y.re) (* y.im y.im)))
        (t_5 (/ (* x.re (fma y.re (/ x.im x.re) (- y.im))) t_4))
        (t_6 (/ (- (* y.re x.im) (* y.im x.re)) t_4))
        (t_7 (/ x.re (- y.im))))
   (if (<= t_6 (- INFINITY))
     (/ (- x.im (/ (* y.im x.re) y.re)) y.re)
     (if (<= t_6 -5e+102)
       (/ (fma x.im y.re (* y.im (- x.re))) (fma y.im y.im (* y.re y.re)))
       (if (<= t_6 -5e+99)
         (/ x.im y.re)
         (if (<= t_6 -5e+91)
           (* x.im (/ (/ y.re y.im) y.im))
           (if (<= t_6 -4e+87)
             (/ x.im y.re)
             (if (<= t_6 -1e+80)
               t_7
               (if (<= t_6 -4e+21)
                 t_6
                 (if (<= t_6 -1e+17)
                   t_3
                   (if (<= t_6 -1e-53)
                     t_6
                     (if (<= t_6 -2e-59)
                       t_7
                       (if (<= t_6 -2e-67)
                         (/ x.im y.re)
                         (if (<= t_6 -4e-69)
                           t_7
                           (if (<= t_6 -1e-79)
                             t_3
                             (if (<= t_6 -5e-87)
                               (/ t_1 y.im)
                               (if (<= t_6 -1e-131)
                                 t_3
                                 (if (<= t_6 -2e-174)
                                   t_7
                                   (if (<= t_6 -1e-279)
                                     t_6
                                     (if (<= t_6 -1e-300)
                                       t_2
                                       (if (<= t_6 -1e-321)
                                         t_6
                                         (if (<= t_6 1e-264)
                                           t_3
                                           (if (<= t_6 4e-250)
                                             t_7
                                             (if (<= t_6 1e-228)
                                               t_6
                                               (if (<= t_6 5e-223)
                                                 t_0
                                                 (if (<= t_6 2e-169)
                                                   t_5
                                                   (if (<= t_6 5e-156)
                                                     t_3
                                                     (if (<= t_6 2e-155)
                                                       t_7
                                                       (if (<= t_6 1e-107)
                                                         t_5
                                                         (if (<= t_6 5e-70)
                                                           t_0
                                                           (if (<= t_6 5e-15)
                                                             t_5
                                                             (if (<=
                                                                  t_6
                                                                  5000.0)
                                                               (/ x.im y.re)
                                                               (if (<=
                                                                    t_6
                                                                    10000.0)
                                                                 t_7
                                                                 (if (<=
                                                                      t_6
                                                                      1e+49)
                                                                   t_6
                                                                   (if (<=
                                                                        t_6
                                                                        2e+75)
                                                                     (/
                                                                      x.im
                                                                      y.re)
                                                                     (if (<=
                                                                          t_6
                                                                          1e+106)
                                                                       t_7
                                                                       (if (<=
                                                                            t_6
                                                                            1e+148)
                                                                         (/
                                                                          x.im
                                                                          y.re)
                                                                         (if (<=
                                                                              t_6
                                                                              1e+293)
                                                                           t_6
                                                                           (if (<=
                                                                                t_6
                                                                                INFINITY)
                                                                             t_2
                                                                             t_0)))))))))))))))))))))))))))))))))))))))
double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double t_0 = (x_46_im - (y_46_im * (x_46_re / y_46_re))) / y_46_re;
	double t_1 = x_46_im * (y_46_re / y_46_im);
	double t_2 = (t_1 - x_46_re) / y_46_im;
	double t_3 = (x_46_im - (x_46_re * (y_46_im / y_46_re))) / y_46_re;
	double t_4 = (y_46_re * y_46_re) + (y_46_im * y_46_im);
	double t_5 = (x_46_re * fma(y_46_re, (x_46_im / x_46_re), -y_46_im)) / t_4;
	double t_6 = ((y_46_re * x_46_im) - (y_46_im * x_46_re)) / t_4;
	double t_7 = x_46_re / -y_46_im;
	double tmp;
	if (t_6 <= -((double) INFINITY)) {
		tmp = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re;
	} else if (t_6 <= -5e+102) {
		tmp = fma(x_46_im, y_46_re, (y_46_im * -x_46_re)) / fma(y_46_im, y_46_im, (y_46_re * y_46_re));
	} else if (t_6 <= -5e+99) {
		tmp = x_46_im / y_46_re;
	} else if (t_6 <= -5e+91) {
		tmp = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	} else if (t_6 <= -4e+87) {
		tmp = x_46_im / y_46_re;
	} else if (t_6 <= -1e+80) {
		tmp = t_7;
	} else if (t_6 <= -4e+21) {
		tmp = t_6;
	} else if (t_6 <= -1e+17) {
		tmp = t_3;
	} else if (t_6 <= -1e-53) {
		tmp = t_6;
	} else if (t_6 <= -2e-59) {
		tmp = t_7;
	} else if (t_6 <= -2e-67) {
		tmp = x_46_im / y_46_re;
	} else if (t_6 <= -4e-69) {
		tmp = t_7;
	} else if (t_6 <= -1e-79) {
		tmp = t_3;
	} else if (t_6 <= -5e-87) {
		tmp = t_1 / y_46_im;
	} else if (t_6 <= -1e-131) {
		tmp = t_3;
	} else if (t_6 <= -2e-174) {
		tmp = t_7;
	} else if (t_6 <= -1e-279) {
		tmp = t_6;
	} else if (t_6 <= -1e-300) {
		tmp = t_2;
	} else if (t_6 <= -1e-321) {
		tmp = t_6;
	} else if (t_6 <= 1e-264) {
		tmp = t_3;
	} else if (t_6 <= 4e-250) {
		tmp = t_7;
	} else if (t_6 <= 1e-228) {
		tmp = t_6;
	} else if (t_6 <= 5e-223) {
		tmp = t_0;
	} else if (t_6 <= 2e-169) {
		tmp = t_5;
	} else if (t_6 <= 5e-156) {
		tmp = t_3;
	} else if (t_6 <= 2e-155) {
		tmp = t_7;
	} else if (t_6 <= 1e-107) {
		tmp = t_5;
	} else if (t_6 <= 5e-70) {
		tmp = t_0;
	} else if (t_6 <= 5e-15) {
		tmp = t_5;
	} else if (t_6 <= 5000.0) {
		tmp = x_46_im / y_46_re;
	} else if (t_6 <= 10000.0) {
		tmp = t_7;
	} else if (t_6 <= 1e+49) {
		tmp = t_6;
	} else if (t_6 <= 2e+75) {
		tmp = x_46_im / y_46_re;
	} else if (t_6 <= 1e+106) {
		tmp = t_7;
	} else if (t_6 <= 1e+148) {
		tmp = x_46_im / y_46_re;
	} else if (t_6 <= 1e+293) {
		tmp = t_6;
	} else if (t_6 <= ((double) INFINITY)) {
		tmp = t_2;
	} else {
		tmp = t_0;
	}
	return tmp;
}
function code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = Float64(Float64(x_46_im - Float64(y_46_im * Float64(x_46_re / y_46_re))) / y_46_re)
	t_1 = Float64(x_46_im * Float64(y_46_re / y_46_im))
	t_2 = Float64(Float64(t_1 - x_46_re) / y_46_im)
	t_3 = Float64(Float64(x_46_im - Float64(x_46_re * Float64(y_46_im / y_46_re))) / y_46_re)
	t_4 = Float64(Float64(y_46_re * y_46_re) + Float64(y_46_im * y_46_im))
	t_5 = Float64(Float64(x_46_re * fma(y_46_re, Float64(x_46_im / x_46_re), Float64(-y_46_im))) / t_4)
	t_6 = Float64(Float64(Float64(y_46_re * x_46_im) - Float64(y_46_im * x_46_re)) / t_4)
	t_7 = Float64(x_46_re / Float64(-y_46_im))
	tmp = 0.0
	if (t_6 <= Float64(-Inf))
		tmp = Float64(Float64(x_46_im - Float64(Float64(y_46_im * x_46_re) / y_46_re)) / y_46_re);
	elseif (t_6 <= -5e+102)
		tmp = Float64(fma(x_46_im, y_46_re, Float64(y_46_im * Float64(-x_46_re))) / fma(y_46_im, y_46_im, Float64(y_46_re * y_46_re)));
	elseif (t_6 <= -5e+99)
		tmp = Float64(x_46_im / y_46_re);
	elseif (t_6 <= -5e+91)
		tmp = Float64(x_46_im * Float64(Float64(y_46_re / y_46_im) / y_46_im));
	elseif (t_6 <= -4e+87)
		tmp = Float64(x_46_im / y_46_re);
	elseif (t_6 <= -1e+80)
		tmp = t_7;
	elseif (t_6 <= -4e+21)
		tmp = t_6;
	elseif (t_6 <= -1e+17)
		tmp = t_3;
	elseif (t_6 <= -1e-53)
		tmp = t_6;
	elseif (t_6 <= -2e-59)
		tmp = t_7;
	elseif (t_6 <= -2e-67)
		tmp = Float64(x_46_im / y_46_re);
	elseif (t_6 <= -4e-69)
		tmp = t_7;
	elseif (t_6 <= -1e-79)
		tmp = t_3;
	elseif (t_6 <= -5e-87)
		tmp = Float64(t_1 / y_46_im);
	elseif (t_6 <= -1e-131)
		tmp = t_3;
	elseif (t_6 <= -2e-174)
		tmp = t_7;
	elseif (t_6 <= -1e-279)
		tmp = t_6;
	elseif (t_6 <= -1e-300)
		tmp = t_2;
	elseif (t_6 <= -1e-321)
		tmp = t_6;
	elseif (t_6 <= 1e-264)
		tmp = t_3;
	elseif (t_6 <= 4e-250)
		tmp = t_7;
	elseif (t_6 <= 1e-228)
		tmp = t_6;
	elseif (t_6 <= 5e-223)
		tmp = t_0;
	elseif (t_6 <= 2e-169)
		tmp = t_5;
	elseif (t_6 <= 5e-156)
		tmp = t_3;
	elseif (t_6 <= 2e-155)
		tmp = t_7;
	elseif (t_6 <= 1e-107)
		tmp = t_5;
	elseif (t_6 <= 5e-70)
		tmp = t_0;
	elseif (t_6 <= 5e-15)
		tmp = t_5;
	elseif (t_6 <= 5000.0)
		tmp = Float64(x_46_im / y_46_re);
	elseif (t_6 <= 10000.0)
		tmp = t_7;
	elseif (t_6 <= 1e+49)
		tmp = t_6;
	elseif (t_6 <= 2e+75)
		tmp = Float64(x_46_im / y_46_re);
	elseif (t_6 <= 1e+106)
		tmp = t_7;
	elseif (t_6 <= 1e+148)
		tmp = Float64(x_46_im / y_46_re);
	elseif (t_6 <= 1e+293)
		tmp = t_6;
	elseif (t_6 <= Inf)
		tmp = t_2;
	else
		tmp = t_0;
	end
	return tmp
end
code[x$46$re_, x$46$im_, y$46$re_, y$46$im_] := Block[{t$95$0 = N[(N[(x$46$im - N[(y$46$im * N[(x$46$re / y$46$re), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y$46$re), $MachinePrecision]}, Block[{t$95$1 = N[(x$46$im * N[(y$46$re / y$46$im), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(t$95$1 - x$46$re), $MachinePrecision] / y$46$im), $MachinePrecision]}, Block[{t$95$3 = N[(N[(x$46$im - N[(x$46$re * N[(y$46$im / y$46$re), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y$46$re), $MachinePrecision]}, Block[{t$95$4 = N[(N[(y$46$re * y$46$re), $MachinePrecision] + N[(y$46$im * y$46$im), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$5 = N[(N[(x$46$re * N[(y$46$re * N[(x$46$im / x$46$re), $MachinePrecision] + (-y$46$im)), $MachinePrecision]), $MachinePrecision] / t$95$4), $MachinePrecision]}, Block[{t$95$6 = N[(N[(N[(y$46$re * x$46$im), $MachinePrecision] - N[(y$46$im * x$46$re), $MachinePrecision]), $MachinePrecision] / t$95$4), $MachinePrecision]}, Block[{t$95$7 = N[(x$46$re / (-y$46$im)), $MachinePrecision]}, If[LessEqual[t$95$6, (-Infinity)], N[(N[(x$46$im - N[(N[(y$46$im * x$46$re), $MachinePrecision] / y$46$re), $MachinePrecision]), $MachinePrecision] / y$46$re), $MachinePrecision], If[LessEqual[t$95$6, -5e+102], N[(N[(x$46$im * y$46$re + N[(y$46$im * (-x$46$re)), $MachinePrecision]), $MachinePrecision] / N[(y$46$im * y$46$im + N[(y$46$re * y$46$re), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$6, -5e+99], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[t$95$6, -5e+91], N[(x$46$im * N[(N[(y$46$re / y$46$im), $MachinePrecision] / y$46$im), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$6, -4e+87], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[t$95$6, -1e+80], t$95$7, If[LessEqual[t$95$6, -4e+21], t$95$6, If[LessEqual[t$95$6, -1e+17], t$95$3, If[LessEqual[t$95$6, -1e-53], t$95$6, If[LessEqual[t$95$6, -2e-59], t$95$7, If[LessEqual[t$95$6, -2e-67], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[t$95$6, -4e-69], t$95$7, If[LessEqual[t$95$6, -1e-79], t$95$3, If[LessEqual[t$95$6, -5e-87], N[(t$95$1 / y$46$im), $MachinePrecision], If[LessEqual[t$95$6, -1e-131], t$95$3, If[LessEqual[t$95$6, -2e-174], t$95$7, If[LessEqual[t$95$6, -1e-279], t$95$6, If[LessEqual[t$95$6, -1e-300], t$95$2, If[LessEqual[t$95$6, -1e-321], t$95$6, If[LessEqual[t$95$6, 1e-264], t$95$3, If[LessEqual[t$95$6, 4e-250], t$95$7, If[LessEqual[t$95$6, 1e-228], t$95$6, If[LessEqual[t$95$6, 5e-223], t$95$0, If[LessEqual[t$95$6, 2e-169], t$95$5, If[LessEqual[t$95$6, 5e-156], t$95$3, If[LessEqual[t$95$6, 2e-155], t$95$7, If[LessEqual[t$95$6, 1e-107], t$95$5, If[LessEqual[t$95$6, 5e-70], t$95$0, If[LessEqual[t$95$6, 5e-15], t$95$5, If[LessEqual[t$95$6, 5000.0], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[t$95$6, 10000.0], t$95$7, If[LessEqual[t$95$6, 1e+49], t$95$6, If[LessEqual[t$95$6, 2e+75], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[t$95$6, 1e+106], t$95$7, If[LessEqual[t$95$6, 1e+148], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[t$95$6, 1e+293], t$95$6, If[LessEqual[t$95$6, Infinity], t$95$2, t$95$0]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\
t_1 := x.im \cdot \frac{y.re}{y.im}\\
t_2 := \frac{t\_1 - x.re}{y.im}\\
t_3 := \frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\
t_4 := y.re \cdot y.re + y.im \cdot y.im\\
t_5 := \frac{x.re \cdot \mathsf{fma}\left(y.re, \frac{x.im}{x.re}, -y.im\right)}{t\_4}\\
t_6 := \frac{y.re \cdot x.im - y.im \cdot x.re}{t\_4}\\
t_7 := \frac{x.re}{-y.im}\\
\mathbf{if}\;t\_6 \leq -\infty:\\
\;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\

\mathbf{elif}\;t\_6 \leq -5 \cdot 10^{+102}:\\
\;\;\;\;\frac{\mathsf{fma}\left(x.im, y.re, y.im \cdot \left(-x.re\right)\right)}{\mathsf{fma}\left(y.im, y.im, y.re \cdot y.re\right)}\\

\mathbf{elif}\;t\_6 \leq -5 \cdot 10^{+99}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;t\_6 \leq -5 \cdot 10^{+91}:\\
\;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\

\mathbf{elif}\;t\_6 \leq -4 \cdot 10^{+87}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;t\_6 \leq -1 \cdot 10^{+80}:\\
\;\;\;\;t\_7\\

\mathbf{elif}\;t\_6 \leq -4 \cdot 10^{+21}:\\
\;\;\;\;t\_6\\

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

\mathbf{elif}\;t\_6 \leq -1 \cdot 10^{-53}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;t\_6 \leq -2 \cdot 10^{-59}:\\
\;\;\;\;t\_7\\

\mathbf{elif}\;t\_6 \leq -2 \cdot 10^{-67}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;t\_6 \leq -4 \cdot 10^{-69}:\\
\;\;\;\;t\_7\\

\mathbf{elif}\;t\_6 \leq -1 \cdot 10^{-79}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;t\_6 \leq -5 \cdot 10^{-87}:\\
\;\;\;\;\frac{t\_1}{y.im}\\

\mathbf{elif}\;t\_6 \leq -1 \cdot 10^{-131}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;t\_6 \leq -2 \cdot 10^{-174}:\\
\;\;\;\;t\_7\\

\mathbf{elif}\;t\_6 \leq -1 \cdot 10^{-279}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;t\_6 \leq -1 \cdot 10^{-300}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;t\_6 \leq -1 \cdot 10^{-321}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;t\_6 \leq 10^{-264}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;t\_6 \leq 4 \cdot 10^{-250}:\\
\;\;\;\;t\_7\\

\mathbf{elif}\;t\_6 \leq 10^{-228}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;t\_6 \leq 5 \cdot 10^{-223}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;t\_6 \leq 2 \cdot 10^{-169}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;t\_6 \leq 5 \cdot 10^{-156}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;t\_6 \leq 2 \cdot 10^{-155}:\\
\;\;\;\;t\_7\\

\mathbf{elif}\;t\_6 \leq 10^{-107}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;t\_6 \leq 5 \cdot 10^{-70}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;t\_6 \leq 5 \cdot 10^{-15}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;t\_6 \leq 5000:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;t\_6 \leq 10000:\\
\;\;\;\;t\_7\\

\mathbf{elif}\;t\_6 \leq 10^{+49}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;t\_6 \leq 2 \cdot 10^{+75}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;t\_6 \leq 10^{+106}:\\
\;\;\;\;t\_7\\

\mathbf{elif}\;t\_6 \leq 10^{+148}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;t\_6 \leq 10^{+293}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;t\_6 \leq \infty:\\
\;\;\;\;t\_2\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 11 regimes
  2. if (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -inf.0

    1. Initial program 27.6%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub13.7%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative13.7%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt13.7%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac42.0%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg42.0%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define42.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define43.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*66.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt66.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow266.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define66.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr66.5%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 77.5%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg77.5%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg77.5%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative77.5%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified77.5%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]

    if -inf.0 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -5e102

    1. Initial program 96.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Step-by-step derivation
      1. fma-neg96.1%

        \[\leadsto \frac{\color{blue}{\mathsf{fma}\left(x.im, y.re, -x.re \cdot y.im\right)}}{y.re \cdot y.re + y.im \cdot y.im} \]
      2. distribute-rgt-neg-out96.1%

        \[\leadsto \frac{\mathsf{fma}\left(x.im, y.re, \color{blue}{x.re \cdot \left(-y.im\right)}\right)}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. +-commutative96.1%

        \[\leadsto \frac{\mathsf{fma}\left(x.im, y.re, x.re \cdot \left(-y.im\right)\right)}{\color{blue}{y.im \cdot y.im + y.re \cdot y.re}} \]
      4. fma-define96.1%

        \[\leadsto \frac{\mathsf{fma}\left(x.im, y.re, x.re \cdot \left(-y.im\right)\right)}{\color{blue}{\mathsf{fma}\left(y.im, y.im, y.re \cdot y.re\right)}} \]
    3. Simplified96.1%

      \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(x.im, y.re, x.re \cdot \left(-y.im\right)\right)}{\mathsf{fma}\left(y.im, y.im, y.re \cdot y.re\right)}} \]
    4. Add Preprocessing

    if -5e102 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -5.00000000000000008e99 or -5.0000000000000002e91 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -3.9999999999999998e87 or -2.0000000000000001e-59 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -1.99999999999999989e-67 or 4.99999999999999999e-15 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 5e3 or 9.99999999999999946e48 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 1.99999999999999985e75 or 1.00000000000000009e106 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 1e148

    1. Initial program 99.1%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around inf 100.0%

      \[\leadsto \color{blue}{\frac{x.im}{y.re}} \]

    if -5.00000000000000008e99 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -5.0000000000000002e91

    1. Initial program 100.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub100.0%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative100.0%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt100.0%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac100.0%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg100.0%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow2100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 100.0%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 100.0%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified100.0%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    11. Step-by-step derivation
      1. associate-/l*100.0%

        \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]
    12. Applied egg-rr100.0%

      \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]

    if -3.9999999999999998e87 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -1e80 or -1.00000000000000003e-53 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -2.0000000000000001e-59 or -1.99999999999999989e-67 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -3.9999999999999999e-69 or -9.9999999999999999e-132 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -2e-174 or 1e-264 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 4.0000000000000002e-250 or 5.00000000000000007e-156 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 2.00000000000000003e-155 or 5e3 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 1e4 or 1.99999999999999985e75 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 1.00000000000000009e106

    1. Initial program 98.9%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around 0 100.0%

      \[\leadsto \color{blue}{-1 \cdot \frac{x.re}{y.im}} \]
    4. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \color{blue}{\frac{-1 \cdot x.re}{y.im}} \]
      2. neg-mul-1100.0%

        \[\leadsto \frac{\color{blue}{-x.re}}{y.im} \]
    5. Simplified100.0%

      \[\leadsto \color{blue}{\frac{-x.re}{y.im}} \]

    if -1e80 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -4e21 or -1e17 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -1.00000000000000003e-53 or -2e-174 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -1.00000000000000006e-279 or -1.00000000000000003e-300 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -9.98013e-322 or 4.0000000000000002e-250 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 1.00000000000000003e-228 or 1e4 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 9.99999999999999946e48 or 1e148 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 9.9999999999999992e292

    1. Initial program 100.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing

    if -4e21 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -1e17 or -3.9999999999999999e-69 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -1e-79 or -5.00000000000000042e-87 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -9.9999999999999999e-132 or -9.98013e-322 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 1e-264 or 2.00000000000000004e-169 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 5.00000000000000007e-156

    1. Initial program 62.6%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around inf 66.1%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    4. Step-by-step derivation
      1. remove-double-neg66.1%

        \[\leadsto \frac{\color{blue}{\left(-\left(-x.im\right)\right)} + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      2. mul-1-neg66.1%

        \[\leadsto \frac{\left(-\color{blue}{-1 \cdot x.im}\right) + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      3. neg-mul-166.1%

        \[\leadsto \frac{\color{blue}{-1 \cdot \left(-1 \cdot x.im\right)} + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      4. distribute-lft-in66.1%

        \[\leadsto \frac{\color{blue}{-1 \cdot \left(-1 \cdot x.im + \frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      5. mul-1-neg66.1%

        \[\leadsto \frac{\color{blue}{-\left(-1 \cdot x.im + \frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      6. distribute-neg-in66.1%

        \[\leadsto \frac{\color{blue}{\left(--1 \cdot x.im\right) + \left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      7. mul-1-neg66.1%

        \[\leadsto \frac{\left(-\color{blue}{\left(-x.im\right)}\right) + \left(-\frac{x.re \cdot y.im}{y.re}\right)}{y.re} \]
      8. remove-double-neg66.1%

        \[\leadsto \frac{\color{blue}{x.im} + \left(-\frac{x.re \cdot y.im}{y.re}\right)}{y.re} \]
      9. unsub-neg66.1%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      10. associate-/l*67.2%

        \[\leadsto \frac{x.im - \color{blue}{x.re \cdot \frac{y.im}{y.re}}}{y.re} \]
    5. Simplified67.2%

      \[\leadsto \color{blue}{\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}} \]

    if -1e-79 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -5.00000000000000042e-87

    1. Initial program 98.4%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub98.4%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative98.4%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt98.4%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac100.0%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg100.0%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow2100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 98.4%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 98.4%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified100.0%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]

    if -1.00000000000000006e-279 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -1.00000000000000003e-300 or 9.9999999999999992e292 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < +inf.0

    1. Initial program 42.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub30.2%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative30.2%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt30.2%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac46.2%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg46.2%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define46.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define57.7%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*78.9%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt78.9%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow278.9%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define78.9%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr78.9%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 68.6%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/73.9%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified73.9%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]

    if 1.00000000000000003e-228 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 5.00000000000000024e-223 or 1e-107 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 4.9999999999999998e-70 or +inf.0 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)))

    1. Initial program 6.2%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub6.2%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative6.2%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt6.2%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac8.1%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg8.1%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define8.1%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define58.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*60.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt60.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow260.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define60.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr60.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 53.6%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg53.6%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg53.6%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative53.6%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified53.6%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]
    8. Step-by-step derivation
      1. associate-/l*61.9%

        \[\leadsto \frac{x.im - \color{blue}{y.im \cdot \frac{x.re}{y.re}}}{y.re} \]
    9. Applied egg-rr61.9%

      \[\leadsto \frac{x.im - \color{blue}{y.im \cdot \frac{x.re}{y.re}}}{y.re} \]

    if 5.00000000000000024e-223 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 2.00000000000000004e-169 or 2.00000000000000003e-155 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 1e-107 or 4.9999999999999998e-70 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 4.99999999999999999e-15

    1. Initial program 99.5%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in x.re around inf 99.5%

      \[\leadsto \frac{\color{blue}{x.re \cdot \left(\frac{x.im \cdot y.re}{x.re} - y.im\right)}}{y.re \cdot y.re + y.im \cdot y.im} \]
    4. Step-by-step derivation
      1. *-commutative99.5%

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

        \[\leadsto \frac{x.re \cdot \left(\color{blue}{y.re \cdot \frac{x.im}{x.re}} - y.im\right)}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. fma-neg100.0%

        \[\leadsto \frac{x.re \cdot \color{blue}{\mathsf{fma}\left(y.re, \frac{x.im}{x.re}, -y.im\right)}}{y.re \cdot y.re + y.im \cdot y.im} \]
    5. Simplified100.0%

      \[\leadsto \frac{\color{blue}{x.re \cdot \mathsf{fma}\left(y.re, \frac{x.im}{x.re}, -y.im\right)}}{y.re \cdot y.re + y.im \cdot y.im} \]
  3. Recombined 11 regimes into one program.
  4. Final simplification77.8%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -\infty:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -5 \cdot 10^{+102}:\\ \;\;\;\;\frac{\mathsf{fma}\left(x.im, y.re, y.im \cdot \left(-x.re\right)\right)}{\mathsf{fma}\left(y.im, y.im, y.re \cdot y.re\right)}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -5 \cdot 10^{+99}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -5 \cdot 10^{+91}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -4 \cdot 10^{+87}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -1 \cdot 10^{+80}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -4 \cdot 10^{+21}:\\ \;\;\;\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -1 \cdot 10^{+17}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -1 \cdot 10^{-53}:\\ \;\;\;\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -2 \cdot 10^{-59}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -2 \cdot 10^{-67}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -4 \cdot 10^{-69}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -1 \cdot 10^{-79}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -5 \cdot 10^{-87}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -1 \cdot 10^{-131}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -2 \cdot 10^{-174}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -1 \cdot 10^{-279}:\\ \;\;\;\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -1 \cdot 10^{-300}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -1 \cdot 10^{-321}:\\ \;\;\;\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 10^{-264}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 4 \cdot 10^{-250}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 10^{-228}:\\ \;\;\;\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 5 \cdot 10^{-223}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 2 \cdot 10^{-169}:\\ \;\;\;\;\frac{x.re \cdot \mathsf{fma}\left(y.re, \frac{x.im}{x.re}, -y.im\right)}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 5 \cdot 10^{-156}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 2 \cdot 10^{-155}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 10^{-107}:\\ \;\;\;\;\frac{x.re \cdot \mathsf{fma}\left(y.re, \frac{x.im}{x.re}, -y.im\right)}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 5 \cdot 10^{-70}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 5 \cdot 10^{-15}:\\ \;\;\;\;\frac{x.re \cdot \mathsf{fma}\left(y.re, \frac{x.im}{x.re}, -y.im\right)}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 5000:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 10000:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 10^{+49}:\\ \;\;\;\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 2 \cdot 10^{+75}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 10^{+106}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 10^{+148}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 10^{+293}:\\ \;\;\;\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq \infty:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{else}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \end{array} \]
  5. Add Preprocessing

Alternative 3: 63.1% accurate, 0.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ t_1 := x.im \cdot \frac{y.re}{y.im}\\ t_2 := \frac{t\_1 - x.re}{y.im}\\ t_3 := \frac{x.re}{-y.im}\\ t_4 := y.re \cdot y.re + y.im \cdot y.im\\ t_5 := \frac{x.re \cdot \mathsf{fma}\left(y.re, \frac{x.im}{x.re}, -y.im\right)}{t\_4}\\ t_6 := \frac{y.re \cdot x.im - y.im \cdot x.re}{t\_4}\\ t_7 := \frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{if}\;t\_6 \leq -\infty:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;t\_6 \leq -5 \cdot 10^{+102}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;t\_6 \leq -5 \cdot 10^{+99}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;t\_6 \leq -5 \cdot 10^{+91}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;t\_6 \leq -4 \cdot 10^{+87}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;t\_6 \leq -1 \cdot 10^{+80}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;t\_6 \leq -4 \cdot 10^{+21}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;t\_6 \leq -1 \cdot 10^{+17}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;t\_6 \leq -1 \cdot 10^{-53}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;t\_6 \leq -2 \cdot 10^{-59}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;t\_6 \leq -2 \cdot 10^{-67}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;t\_6 \leq -4 \cdot 10^{-69}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;t\_6 \leq -1 \cdot 10^{-79}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;t\_6 \leq -5 \cdot 10^{-87}:\\ \;\;\;\;\frac{t\_1}{y.im}\\ \mathbf{elif}\;t\_6 \leq -1 \cdot 10^{-131}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;t\_6 \leq -2 \cdot 10^{-174}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;t\_6 \leq -1 \cdot 10^{-279}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;t\_6 \leq -1 \cdot 10^{-300}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;t\_6 \leq -1 \cdot 10^{-321}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;t\_6 \leq 10^{-264}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;t\_6 \leq 4 \cdot 10^{-250}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;t\_6 \leq 10^{-228}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;t\_6 \leq 5 \cdot 10^{-223}:\\ \;\;\;\;t\_7\\ \mathbf{elif}\;t\_6 \leq 2 \cdot 10^{-169}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;t\_6 \leq 5 \cdot 10^{-156}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;t\_6 \leq 2 \cdot 10^{-155}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;t\_6 \leq 10^{-107}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;t\_6 \leq 5 \cdot 10^{-70}:\\ \;\;\;\;t\_7\\ \mathbf{elif}\;t\_6 \leq 5 \cdot 10^{-15}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;t\_6 \leq 5000:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;t\_6 \leq 10000:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;t\_6 \leq 10^{+49}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;t\_6 \leq 2 \cdot 10^{+75}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;t\_6 \leq 10^{+106}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;t\_6 \leq 10^{+148}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;t\_6 \leq 10^{+293}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;t\_6 \leq \infty:\\ \;\;\;\;t\_2\\ \mathbf{else}:\\ \;\;\;\;t\_7\\ \end{array} \end{array} \]
(FPCore (x.re x.im y.re y.im)
 :precision binary64
 (let* ((t_0 (/ (- x.im (* x.re (/ y.im y.re))) y.re))
        (t_1 (* x.im (/ y.re y.im)))
        (t_2 (/ (- t_1 x.re) y.im))
        (t_3 (/ x.re (- y.im)))
        (t_4 (+ (* y.re y.re) (* y.im y.im)))
        (t_5 (/ (* x.re (fma y.re (/ x.im x.re) (- y.im))) t_4))
        (t_6 (/ (- (* y.re x.im) (* y.im x.re)) t_4))
        (t_7 (/ (- x.im (* y.im (/ x.re y.re))) y.re)))
   (if (<= t_6 (- INFINITY))
     (/ (- x.im (/ (* y.im x.re) y.re)) y.re)
     (if (<= t_6 -5e+102)
       t_6
       (if (<= t_6 -5e+99)
         (/ x.im y.re)
         (if (<= t_6 -5e+91)
           (* x.im (/ (/ y.re y.im) y.im))
           (if (<= t_6 -4e+87)
             (/ x.im y.re)
             (if (<= t_6 -1e+80)
               t_3
               (if (<= t_6 -4e+21)
                 t_6
                 (if (<= t_6 -1e+17)
                   t_0
                   (if (<= t_6 -1e-53)
                     t_6
                     (if (<= t_6 -2e-59)
                       t_3
                       (if (<= t_6 -2e-67)
                         (/ x.im y.re)
                         (if (<= t_6 -4e-69)
                           t_3
                           (if (<= t_6 -1e-79)
                             t_0
                             (if (<= t_6 -5e-87)
                               (/ t_1 y.im)
                               (if (<= t_6 -1e-131)
                                 t_0
                                 (if (<= t_6 -2e-174)
                                   t_3
                                   (if (<= t_6 -1e-279)
                                     t_6
                                     (if (<= t_6 -1e-300)
                                       t_2
                                       (if (<= t_6 -1e-321)
                                         t_6
                                         (if (<= t_6 1e-264)
                                           t_0
                                           (if (<= t_6 4e-250)
                                             t_3
                                             (if (<= t_6 1e-228)
                                               t_6
                                               (if (<= t_6 5e-223)
                                                 t_7
                                                 (if (<= t_6 2e-169)
                                                   t_5
                                                   (if (<= t_6 5e-156)
                                                     t_0
                                                     (if (<= t_6 2e-155)
                                                       t_3
                                                       (if (<= t_6 1e-107)
                                                         t_5
                                                         (if (<= t_6 5e-70)
                                                           t_7
                                                           (if (<= t_6 5e-15)
                                                             t_5
                                                             (if (<=
                                                                  t_6
                                                                  5000.0)
                                                               (/ x.im y.re)
                                                               (if (<=
                                                                    t_6
                                                                    10000.0)
                                                                 t_3
                                                                 (if (<=
                                                                      t_6
                                                                      1e+49)
                                                                   t_6
                                                                   (if (<=
                                                                        t_6
                                                                        2e+75)
                                                                     (/
                                                                      x.im
                                                                      y.re)
                                                                     (if (<=
                                                                          t_6
                                                                          1e+106)
                                                                       t_3
                                                                       (if (<=
                                                                            t_6
                                                                            1e+148)
                                                                         (/
                                                                          x.im
                                                                          y.re)
                                                                         (if (<=
                                                                              t_6
                                                                              1e+293)
                                                                           t_6
                                                                           (if (<=
                                                                                t_6
                                                                                INFINITY)
                                                                             t_2
                                                                             t_7)))))))))))))))))))))))))))))))))))))))
double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double t_0 = (x_46_im - (x_46_re * (y_46_im / y_46_re))) / y_46_re;
	double t_1 = x_46_im * (y_46_re / y_46_im);
	double t_2 = (t_1 - x_46_re) / y_46_im;
	double t_3 = x_46_re / -y_46_im;
	double t_4 = (y_46_re * y_46_re) + (y_46_im * y_46_im);
	double t_5 = (x_46_re * fma(y_46_re, (x_46_im / x_46_re), -y_46_im)) / t_4;
	double t_6 = ((y_46_re * x_46_im) - (y_46_im * x_46_re)) / t_4;
	double t_7 = (x_46_im - (y_46_im * (x_46_re / y_46_re))) / y_46_re;
	double tmp;
	if (t_6 <= -((double) INFINITY)) {
		tmp = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re;
	} else if (t_6 <= -5e+102) {
		tmp = t_6;
	} else if (t_6 <= -5e+99) {
		tmp = x_46_im / y_46_re;
	} else if (t_6 <= -5e+91) {
		tmp = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	} else if (t_6 <= -4e+87) {
		tmp = x_46_im / y_46_re;
	} else if (t_6 <= -1e+80) {
		tmp = t_3;
	} else if (t_6 <= -4e+21) {
		tmp = t_6;
	} else if (t_6 <= -1e+17) {
		tmp = t_0;
	} else if (t_6 <= -1e-53) {
		tmp = t_6;
	} else if (t_6 <= -2e-59) {
		tmp = t_3;
	} else if (t_6 <= -2e-67) {
		tmp = x_46_im / y_46_re;
	} else if (t_6 <= -4e-69) {
		tmp = t_3;
	} else if (t_6 <= -1e-79) {
		tmp = t_0;
	} else if (t_6 <= -5e-87) {
		tmp = t_1 / y_46_im;
	} else if (t_6 <= -1e-131) {
		tmp = t_0;
	} else if (t_6 <= -2e-174) {
		tmp = t_3;
	} else if (t_6 <= -1e-279) {
		tmp = t_6;
	} else if (t_6 <= -1e-300) {
		tmp = t_2;
	} else if (t_6 <= -1e-321) {
		tmp = t_6;
	} else if (t_6 <= 1e-264) {
		tmp = t_0;
	} else if (t_6 <= 4e-250) {
		tmp = t_3;
	} else if (t_6 <= 1e-228) {
		tmp = t_6;
	} else if (t_6 <= 5e-223) {
		tmp = t_7;
	} else if (t_6 <= 2e-169) {
		tmp = t_5;
	} else if (t_6 <= 5e-156) {
		tmp = t_0;
	} else if (t_6 <= 2e-155) {
		tmp = t_3;
	} else if (t_6 <= 1e-107) {
		tmp = t_5;
	} else if (t_6 <= 5e-70) {
		tmp = t_7;
	} else if (t_6 <= 5e-15) {
		tmp = t_5;
	} else if (t_6 <= 5000.0) {
		tmp = x_46_im / y_46_re;
	} else if (t_6 <= 10000.0) {
		tmp = t_3;
	} else if (t_6 <= 1e+49) {
		tmp = t_6;
	} else if (t_6 <= 2e+75) {
		tmp = x_46_im / y_46_re;
	} else if (t_6 <= 1e+106) {
		tmp = t_3;
	} else if (t_6 <= 1e+148) {
		tmp = x_46_im / y_46_re;
	} else if (t_6 <= 1e+293) {
		tmp = t_6;
	} else if (t_6 <= ((double) INFINITY)) {
		tmp = t_2;
	} else {
		tmp = t_7;
	}
	return tmp;
}
function code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = Float64(Float64(x_46_im - Float64(x_46_re * Float64(y_46_im / y_46_re))) / y_46_re)
	t_1 = Float64(x_46_im * Float64(y_46_re / y_46_im))
	t_2 = Float64(Float64(t_1 - x_46_re) / y_46_im)
	t_3 = Float64(x_46_re / Float64(-y_46_im))
	t_4 = Float64(Float64(y_46_re * y_46_re) + Float64(y_46_im * y_46_im))
	t_5 = Float64(Float64(x_46_re * fma(y_46_re, Float64(x_46_im / x_46_re), Float64(-y_46_im))) / t_4)
	t_6 = Float64(Float64(Float64(y_46_re * x_46_im) - Float64(y_46_im * x_46_re)) / t_4)
	t_7 = Float64(Float64(x_46_im - Float64(y_46_im * Float64(x_46_re / y_46_re))) / y_46_re)
	tmp = 0.0
	if (t_6 <= Float64(-Inf))
		tmp = Float64(Float64(x_46_im - Float64(Float64(y_46_im * x_46_re) / y_46_re)) / y_46_re);
	elseif (t_6 <= -5e+102)
		tmp = t_6;
	elseif (t_6 <= -5e+99)
		tmp = Float64(x_46_im / y_46_re);
	elseif (t_6 <= -5e+91)
		tmp = Float64(x_46_im * Float64(Float64(y_46_re / y_46_im) / y_46_im));
	elseif (t_6 <= -4e+87)
		tmp = Float64(x_46_im / y_46_re);
	elseif (t_6 <= -1e+80)
		tmp = t_3;
	elseif (t_6 <= -4e+21)
		tmp = t_6;
	elseif (t_6 <= -1e+17)
		tmp = t_0;
	elseif (t_6 <= -1e-53)
		tmp = t_6;
	elseif (t_6 <= -2e-59)
		tmp = t_3;
	elseif (t_6 <= -2e-67)
		tmp = Float64(x_46_im / y_46_re);
	elseif (t_6 <= -4e-69)
		tmp = t_3;
	elseif (t_6 <= -1e-79)
		tmp = t_0;
	elseif (t_6 <= -5e-87)
		tmp = Float64(t_1 / y_46_im);
	elseif (t_6 <= -1e-131)
		tmp = t_0;
	elseif (t_6 <= -2e-174)
		tmp = t_3;
	elseif (t_6 <= -1e-279)
		tmp = t_6;
	elseif (t_6 <= -1e-300)
		tmp = t_2;
	elseif (t_6 <= -1e-321)
		tmp = t_6;
	elseif (t_6 <= 1e-264)
		tmp = t_0;
	elseif (t_6 <= 4e-250)
		tmp = t_3;
	elseif (t_6 <= 1e-228)
		tmp = t_6;
	elseif (t_6 <= 5e-223)
		tmp = t_7;
	elseif (t_6 <= 2e-169)
		tmp = t_5;
	elseif (t_6 <= 5e-156)
		tmp = t_0;
	elseif (t_6 <= 2e-155)
		tmp = t_3;
	elseif (t_6 <= 1e-107)
		tmp = t_5;
	elseif (t_6 <= 5e-70)
		tmp = t_7;
	elseif (t_6 <= 5e-15)
		tmp = t_5;
	elseif (t_6 <= 5000.0)
		tmp = Float64(x_46_im / y_46_re);
	elseif (t_6 <= 10000.0)
		tmp = t_3;
	elseif (t_6 <= 1e+49)
		tmp = t_6;
	elseif (t_6 <= 2e+75)
		tmp = Float64(x_46_im / y_46_re);
	elseif (t_6 <= 1e+106)
		tmp = t_3;
	elseif (t_6 <= 1e+148)
		tmp = Float64(x_46_im / y_46_re);
	elseif (t_6 <= 1e+293)
		tmp = t_6;
	elseif (t_6 <= Inf)
		tmp = t_2;
	else
		tmp = t_7;
	end
	return tmp
end
code[x$46$re_, x$46$im_, y$46$re_, y$46$im_] := Block[{t$95$0 = N[(N[(x$46$im - N[(x$46$re * N[(y$46$im / y$46$re), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y$46$re), $MachinePrecision]}, Block[{t$95$1 = N[(x$46$im * N[(y$46$re / y$46$im), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(t$95$1 - x$46$re), $MachinePrecision] / y$46$im), $MachinePrecision]}, Block[{t$95$3 = N[(x$46$re / (-y$46$im)), $MachinePrecision]}, Block[{t$95$4 = N[(N[(y$46$re * y$46$re), $MachinePrecision] + N[(y$46$im * y$46$im), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$5 = N[(N[(x$46$re * N[(y$46$re * N[(x$46$im / x$46$re), $MachinePrecision] + (-y$46$im)), $MachinePrecision]), $MachinePrecision] / t$95$4), $MachinePrecision]}, Block[{t$95$6 = N[(N[(N[(y$46$re * x$46$im), $MachinePrecision] - N[(y$46$im * x$46$re), $MachinePrecision]), $MachinePrecision] / t$95$4), $MachinePrecision]}, Block[{t$95$7 = N[(N[(x$46$im - N[(y$46$im * N[(x$46$re / y$46$re), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y$46$re), $MachinePrecision]}, If[LessEqual[t$95$6, (-Infinity)], N[(N[(x$46$im - N[(N[(y$46$im * x$46$re), $MachinePrecision] / y$46$re), $MachinePrecision]), $MachinePrecision] / y$46$re), $MachinePrecision], If[LessEqual[t$95$6, -5e+102], t$95$6, If[LessEqual[t$95$6, -5e+99], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[t$95$6, -5e+91], N[(x$46$im * N[(N[(y$46$re / y$46$im), $MachinePrecision] / y$46$im), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$6, -4e+87], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[t$95$6, -1e+80], t$95$3, If[LessEqual[t$95$6, -4e+21], t$95$6, If[LessEqual[t$95$6, -1e+17], t$95$0, If[LessEqual[t$95$6, -1e-53], t$95$6, If[LessEqual[t$95$6, -2e-59], t$95$3, If[LessEqual[t$95$6, -2e-67], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[t$95$6, -4e-69], t$95$3, If[LessEqual[t$95$6, -1e-79], t$95$0, If[LessEqual[t$95$6, -5e-87], N[(t$95$1 / y$46$im), $MachinePrecision], If[LessEqual[t$95$6, -1e-131], t$95$0, If[LessEqual[t$95$6, -2e-174], t$95$3, If[LessEqual[t$95$6, -1e-279], t$95$6, If[LessEqual[t$95$6, -1e-300], t$95$2, If[LessEqual[t$95$6, -1e-321], t$95$6, If[LessEqual[t$95$6, 1e-264], t$95$0, If[LessEqual[t$95$6, 4e-250], t$95$3, If[LessEqual[t$95$6, 1e-228], t$95$6, If[LessEqual[t$95$6, 5e-223], t$95$7, If[LessEqual[t$95$6, 2e-169], t$95$5, If[LessEqual[t$95$6, 5e-156], t$95$0, If[LessEqual[t$95$6, 2e-155], t$95$3, If[LessEqual[t$95$6, 1e-107], t$95$5, If[LessEqual[t$95$6, 5e-70], t$95$7, If[LessEqual[t$95$6, 5e-15], t$95$5, If[LessEqual[t$95$6, 5000.0], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[t$95$6, 10000.0], t$95$3, If[LessEqual[t$95$6, 1e+49], t$95$6, If[LessEqual[t$95$6, 2e+75], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[t$95$6, 1e+106], t$95$3, If[LessEqual[t$95$6, 1e+148], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[t$95$6, 1e+293], t$95$6, If[LessEqual[t$95$6, Infinity], t$95$2, t$95$7]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\
t_1 := x.im \cdot \frac{y.re}{y.im}\\
t_2 := \frac{t\_1 - x.re}{y.im}\\
t_3 := \frac{x.re}{-y.im}\\
t_4 := y.re \cdot y.re + y.im \cdot y.im\\
t_5 := \frac{x.re \cdot \mathsf{fma}\left(y.re, \frac{x.im}{x.re}, -y.im\right)}{t\_4}\\
t_6 := \frac{y.re \cdot x.im - y.im \cdot x.re}{t\_4}\\
t_7 := \frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\
\mathbf{if}\;t\_6 \leq -\infty:\\
\;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\

\mathbf{elif}\;t\_6 \leq -5 \cdot 10^{+102}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;t\_6 \leq -5 \cdot 10^{+99}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;t\_6 \leq -5 \cdot 10^{+91}:\\
\;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\

\mathbf{elif}\;t\_6 \leq -4 \cdot 10^{+87}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;t\_6 \leq -1 \cdot 10^{+80}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;t\_6 \leq -4 \cdot 10^{+21}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;t\_6 \leq -1 \cdot 10^{+17}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;t\_6 \leq -1 \cdot 10^{-53}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;t\_6 \leq -2 \cdot 10^{-59}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;t\_6 \leq -2 \cdot 10^{-67}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;t\_6 \leq -4 \cdot 10^{-69}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;t\_6 \leq -1 \cdot 10^{-79}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;t\_6 \leq -5 \cdot 10^{-87}:\\
\;\;\;\;\frac{t\_1}{y.im}\\

\mathbf{elif}\;t\_6 \leq -1 \cdot 10^{-131}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;t\_6 \leq -2 \cdot 10^{-174}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;t\_6 \leq -1 \cdot 10^{-279}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;t\_6 \leq -1 \cdot 10^{-300}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;t\_6 \leq -1 \cdot 10^{-321}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;t\_6 \leq 10^{-264}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;t\_6 \leq 4 \cdot 10^{-250}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;t\_6 \leq 10^{-228}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;t\_6 \leq 5 \cdot 10^{-223}:\\
\;\;\;\;t\_7\\

\mathbf{elif}\;t\_6 \leq 2 \cdot 10^{-169}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;t\_6 \leq 5 \cdot 10^{-156}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;t\_6 \leq 2 \cdot 10^{-155}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;t\_6 \leq 10^{-107}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;t\_6 \leq 5 \cdot 10^{-70}:\\
\;\;\;\;t\_7\\

\mathbf{elif}\;t\_6 \leq 5 \cdot 10^{-15}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;t\_6 \leq 5000:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;t\_6 \leq 10000:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;t\_6 \leq 10^{+49}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;t\_6 \leq 2 \cdot 10^{+75}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;t\_6 \leq 10^{+106}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;t\_6 \leq 10^{+148}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;t\_6 \leq 10^{+293}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;t\_6 \leq \infty:\\
\;\;\;\;t\_2\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 10 regimes
  2. if (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -inf.0

    1. Initial program 27.6%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub13.7%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative13.7%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt13.7%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac42.0%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg42.0%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define42.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define43.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*66.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt66.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow266.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define66.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr66.5%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 77.5%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg77.5%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg77.5%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative77.5%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified77.5%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]

    if -inf.0 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -5e102 or -1e80 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -4e21 or -1e17 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -1.00000000000000003e-53 or -2e-174 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -1.00000000000000006e-279 or -1.00000000000000003e-300 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -9.98013e-322 or 4.0000000000000002e-250 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 1.00000000000000003e-228 or 1e4 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 9.99999999999999946e48 or 1e148 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 9.9999999999999992e292

    1. Initial program 98.4%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing

    if -5e102 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -5.00000000000000008e99 or -5.0000000000000002e91 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -3.9999999999999998e87 or -2.0000000000000001e-59 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -1.99999999999999989e-67 or 4.99999999999999999e-15 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 5e3 or 9.99999999999999946e48 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 1.99999999999999985e75 or 1.00000000000000009e106 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 1e148

    1. Initial program 99.1%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around inf 100.0%

      \[\leadsto \color{blue}{\frac{x.im}{y.re}} \]

    if -5.00000000000000008e99 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -5.0000000000000002e91

    1. Initial program 100.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub100.0%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative100.0%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt100.0%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac100.0%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg100.0%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow2100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 100.0%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 100.0%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified100.0%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    11. Step-by-step derivation
      1. associate-/l*100.0%

        \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]
    12. Applied egg-rr100.0%

      \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]

    if -3.9999999999999998e87 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -1e80 or -1.00000000000000003e-53 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -2.0000000000000001e-59 or -1.99999999999999989e-67 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -3.9999999999999999e-69 or -9.9999999999999999e-132 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -2e-174 or 1e-264 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 4.0000000000000002e-250 or 5.00000000000000007e-156 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 2.00000000000000003e-155 or 5e3 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 1e4 or 1.99999999999999985e75 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 1.00000000000000009e106

    1. Initial program 98.9%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around 0 100.0%

      \[\leadsto \color{blue}{-1 \cdot \frac{x.re}{y.im}} \]
    4. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \color{blue}{\frac{-1 \cdot x.re}{y.im}} \]
      2. neg-mul-1100.0%

        \[\leadsto \frac{\color{blue}{-x.re}}{y.im} \]
    5. Simplified100.0%

      \[\leadsto \color{blue}{\frac{-x.re}{y.im}} \]

    if -4e21 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -1e17 or -3.9999999999999999e-69 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -1e-79 or -5.00000000000000042e-87 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -9.9999999999999999e-132 or -9.98013e-322 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 1e-264 or 2.00000000000000004e-169 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 5.00000000000000007e-156

    1. Initial program 62.6%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around inf 66.1%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    4. Step-by-step derivation
      1. remove-double-neg66.1%

        \[\leadsto \frac{\color{blue}{\left(-\left(-x.im\right)\right)} + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      2. mul-1-neg66.1%

        \[\leadsto \frac{\left(-\color{blue}{-1 \cdot x.im}\right) + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      3. neg-mul-166.1%

        \[\leadsto \frac{\color{blue}{-1 \cdot \left(-1 \cdot x.im\right)} + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      4. distribute-lft-in66.1%

        \[\leadsto \frac{\color{blue}{-1 \cdot \left(-1 \cdot x.im + \frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      5. mul-1-neg66.1%

        \[\leadsto \frac{\color{blue}{-\left(-1 \cdot x.im + \frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      6. distribute-neg-in66.1%

        \[\leadsto \frac{\color{blue}{\left(--1 \cdot x.im\right) + \left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      7. mul-1-neg66.1%

        \[\leadsto \frac{\left(-\color{blue}{\left(-x.im\right)}\right) + \left(-\frac{x.re \cdot y.im}{y.re}\right)}{y.re} \]
      8. remove-double-neg66.1%

        \[\leadsto \frac{\color{blue}{x.im} + \left(-\frac{x.re \cdot y.im}{y.re}\right)}{y.re} \]
      9. unsub-neg66.1%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      10. associate-/l*67.2%

        \[\leadsto \frac{x.im - \color{blue}{x.re \cdot \frac{y.im}{y.re}}}{y.re} \]
    5. Simplified67.2%

      \[\leadsto \color{blue}{\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}} \]

    if -1e-79 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -5.00000000000000042e-87

    1. Initial program 98.4%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub98.4%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative98.4%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt98.4%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac100.0%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg100.0%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow2100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 98.4%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 98.4%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified100.0%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]

    if -1.00000000000000006e-279 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -1.00000000000000003e-300 or 9.9999999999999992e292 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < +inf.0

    1. Initial program 42.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub30.2%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative30.2%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt30.2%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac46.2%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg46.2%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define46.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define57.7%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*78.9%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt78.9%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow278.9%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define78.9%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr78.9%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 68.6%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/73.9%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified73.9%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]

    if 1.00000000000000003e-228 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 5.00000000000000024e-223 or 1e-107 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 4.9999999999999998e-70 or +inf.0 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)))

    1. Initial program 6.2%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub6.2%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative6.2%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt6.2%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac8.1%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg8.1%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define8.1%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define58.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*60.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt60.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow260.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define60.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr60.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 53.6%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg53.6%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg53.6%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative53.6%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified53.6%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]
    8. Step-by-step derivation
      1. associate-/l*61.9%

        \[\leadsto \frac{x.im - \color{blue}{y.im \cdot \frac{x.re}{y.re}}}{y.re} \]
    9. Applied egg-rr61.9%

      \[\leadsto \frac{x.im - \color{blue}{y.im \cdot \frac{x.re}{y.re}}}{y.re} \]

    if 5.00000000000000024e-223 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 2.00000000000000004e-169 or 2.00000000000000003e-155 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 1e-107 or 4.9999999999999998e-70 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 4.99999999999999999e-15

    1. Initial program 99.5%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in x.re around inf 99.5%

      \[\leadsto \frac{\color{blue}{x.re \cdot \left(\frac{x.im \cdot y.re}{x.re} - y.im\right)}}{y.re \cdot y.re + y.im \cdot y.im} \]
    4. Step-by-step derivation
      1. *-commutative99.5%

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

        \[\leadsto \frac{x.re \cdot \left(\color{blue}{y.re \cdot \frac{x.im}{x.re}} - y.im\right)}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. fma-neg100.0%

        \[\leadsto \frac{x.re \cdot \color{blue}{\mathsf{fma}\left(y.re, \frac{x.im}{x.re}, -y.im\right)}}{y.re \cdot y.re + y.im \cdot y.im} \]
    5. Simplified100.0%

      \[\leadsto \frac{\color{blue}{x.re \cdot \mathsf{fma}\left(y.re, \frac{x.im}{x.re}, -y.im\right)}}{y.re \cdot y.re + y.im \cdot y.im} \]
  3. Recombined 10 regimes into one program.
  4. Final simplification77.8%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -\infty:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -5 \cdot 10^{+102}:\\ \;\;\;\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -5 \cdot 10^{+99}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -5 \cdot 10^{+91}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -4 \cdot 10^{+87}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -1 \cdot 10^{+80}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -4 \cdot 10^{+21}:\\ \;\;\;\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -1 \cdot 10^{+17}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -1 \cdot 10^{-53}:\\ \;\;\;\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -2 \cdot 10^{-59}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -2 \cdot 10^{-67}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -4 \cdot 10^{-69}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -1 \cdot 10^{-79}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -5 \cdot 10^{-87}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -1 \cdot 10^{-131}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -2 \cdot 10^{-174}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -1 \cdot 10^{-279}:\\ \;\;\;\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -1 \cdot 10^{-300}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -1 \cdot 10^{-321}:\\ \;\;\;\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 10^{-264}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 4 \cdot 10^{-250}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 10^{-228}:\\ \;\;\;\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 5 \cdot 10^{-223}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 2 \cdot 10^{-169}:\\ \;\;\;\;\frac{x.re \cdot \mathsf{fma}\left(y.re, \frac{x.im}{x.re}, -y.im\right)}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 5 \cdot 10^{-156}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 2 \cdot 10^{-155}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 10^{-107}:\\ \;\;\;\;\frac{x.re \cdot \mathsf{fma}\left(y.re, \frac{x.im}{x.re}, -y.im\right)}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 5 \cdot 10^{-70}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 5 \cdot 10^{-15}:\\ \;\;\;\;\frac{x.re \cdot \mathsf{fma}\left(y.re, \frac{x.im}{x.re}, -y.im\right)}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 5000:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 10000:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 10^{+49}:\\ \;\;\;\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 2 \cdot 10^{+75}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 10^{+106}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 10^{+148}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 10^{+293}:\\ \;\;\;\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq \infty:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{else}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \end{array} \]
  5. Add Preprocessing

Alternative 4: 61.0% accurate, 0.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := x.im - x.re \cdot \frac{y.im}{y.re}\\ t_1 := \frac{t\_0}{y.re}\\ t_2 := x.im \cdot \frac{y.re}{y.im}\\ t_3 := \frac{t\_2 - x.re}{y.im}\\ t_4 := \frac{x.re}{-y.im}\\ t_5 := \frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im}\\ t_6 := \frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{if}\;t\_5 \leq -\infty:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;t\_5 \leq -5 \cdot 10^{+102}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;t\_5 \leq -5 \cdot 10^{+99}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;t\_5 \leq -5 \cdot 10^{+91}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;t\_5 \leq -4 \cdot 10^{+87}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;t\_5 \leq -1 \cdot 10^{+80}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;t\_5 \leq -4 \cdot 10^{+21}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;t\_5 \leq -1 \cdot 10^{+17}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;t\_5 \leq -1 \cdot 10^{-53}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;t\_5 \leq -2 \cdot 10^{-59}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;t\_5 \leq -2 \cdot 10^{-67}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;t\_5 \leq -4 \cdot 10^{-69}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;t\_5 \leq -1 \cdot 10^{-79}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;t\_5 \leq -5 \cdot 10^{-87}:\\ \;\;\;\;\frac{t\_2}{y.im}\\ \mathbf{elif}\;t\_5 \leq -1 \cdot 10^{-131}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;t\_5 \leq -2 \cdot 10^{-174}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;t\_5 \leq -1 \cdot 10^{-279}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;t\_5 \leq -1 \cdot 10^{-300}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;t\_5 \leq -1 \cdot 10^{-321}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;t\_5 \leq 10^{-264}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;t\_5 \leq 4 \cdot 10^{-250}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;t\_5 \leq 10^{-228}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;t\_5 \leq 5 \cdot 10^{-201}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;t\_5 \leq 2 \cdot 10^{-169}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;t\_5 \leq 5 \cdot 10^{-156}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;t\_5 \leq 2 \cdot 10^{-129}:\\ \;\;\;\;\frac{x.re \cdot \left(x.im \cdot \frac{y.re}{y.im \cdot x.re} + -1\right)}{y.im}\\ \mathbf{elif}\;t\_5 \leq 10^{-107}:\\ \;\;\;\;\frac{1}{\frac{y.re}{t\_0}}\\ \mathbf{elif}\;t\_5 \leq 10^{-53}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;t\_5 \leq 5 \cdot 10^{-15}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;t\_5 \leq 5000:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;t\_5 \leq 10000:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;t\_5 \leq 10^{+49}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;t\_5 \leq 2 \cdot 10^{+75}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;t\_5 \leq 10^{+106}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;t\_5 \leq 10^{+148}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;t\_5 \leq 10^{+293}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;t\_5 \leq \infty:\\ \;\;\;\;t\_3\\ \mathbf{else}:\\ \;\;\;\;t\_6\\ \end{array} \end{array} \]
(FPCore (x.re x.im y.re y.im)
 :precision binary64
 (let* ((t_0 (- x.im (* x.re (/ y.im y.re))))
        (t_1 (/ t_0 y.re))
        (t_2 (* x.im (/ y.re y.im)))
        (t_3 (/ (- t_2 x.re) y.im))
        (t_4 (/ x.re (- y.im)))
        (t_5
         (/ (- (* y.re x.im) (* y.im x.re)) (+ (* y.re y.re) (* y.im y.im))))
        (t_6 (/ (- x.im (* y.im (/ x.re y.re))) y.re)))
   (if (<= t_5 (- INFINITY))
     (/ (- x.im (/ (* y.im x.re) y.re)) y.re)
     (if (<= t_5 -5e+102)
       t_5
       (if (<= t_5 -5e+99)
         (/ x.im y.re)
         (if (<= t_5 -5e+91)
           (* x.im (/ (/ y.re y.im) y.im))
           (if (<= t_5 -4e+87)
             (/ x.im y.re)
             (if (<= t_5 -1e+80)
               t_4
               (if (<= t_5 -4e+21)
                 t_5
                 (if (<= t_5 -1e+17)
                   t_1
                   (if (<= t_5 -1e-53)
                     t_5
                     (if (<= t_5 -2e-59)
                       t_4
                       (if (<= t_5 -2e-67)
                         (/ x.im y.re)
                         (if (<= t_5 -4e-69)
                           t_4
                           (if (<= t_5 -1e-79)
                             t_1
                             (if (<= t_5 -5e-87)
                               (/ t_2 y.im)
                               (if (<= t_5 -1e-131)
                                 t_1
                                 (if (<= t_5 -2e-174)
                                   t_4
                                   (if (<= t_5 -1e-279)
                                     t_5
                                     (if (<= t_5 -1e-300)
                                       t_3
                                       (if (<= t_5 -1e-321)
                                         t_5
                                         (if (<= t_5 1e-264)
                                           t_1
                                           (if (<= t_5 4e-250)
                                             t_4
                                             (if (<= t_5 1e-228)
                                               t_5
                                               (if (<= t_5 5e-201)
                                                 t_6
                                                 (if (<= t_5 2e-169)
                                                   t_4
                                                   (if (<= t_5 5e-156)
                                                     t_1
                                                     (if (<= t_5 2e-129)
                                                       (/
                                                        (*
                                                         x.re
                                                         (+
                                                          (*
                                                           x.im
                                                           (/
                                                            y.re
                                                            (* y.im x.re)))
                                                          -1.0))
                                                        y.im)
                                                       (if (<= t_5 1e-107)
                                                         (/ 1.0 (/ y.re t_0))
                                                         (if (<= t_5 1e-53)
                                                           t_6
                                                           (if (<= t_5 5e-15)
                                                             t_3
                                                             (if (<=
                                                                  t_5
                                                                  5000.0)
                                                               (/ x.im y.re)
                                                               (if (<=
                                                                    t_5
                                                                    10000.0)
                                                                 t_4
                                                                 (if (<=
                                                                      t_5
                                                                      1e+49)
                                                                   t_5
                                                                   (if (<=
                                                                        t_5
                                                                        2e+75)
                                                                     (/
                                                                      x.im
                                                                      y.re)
                                                                     (if (<=
                                                                          t_5
                                                                          1e+106)
                                                                       t_4
                                                                       (if (<=
                                                                            t_5
                                                                            1e+148)
                                                                         (/
                                                                          x.im
                                                                          y.re)
                                                                         (if (<=
                                                                              t_5
                                                                              1e+293)
                                                                           t_5
                                                                           (if (<=
                                                                                t_5
                                                                                INFINITY)
                                                                             t_3
                                                                             t_6)))))))))))))))))))))))))))))))))))))))
double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double t_0 = x_46_im - (x_46_re * (y_46_im / y_46_re));
	double t_1 = t_0 / y_46_re;
	double t_2 = x_46_im * (y_46_re / y_46_im);
	double t_3 = (t_2 - x_46_re) / y_46_im;
	double t_4 = x_46_re / -y_46_im;
	double t_5 = ((y_46_re * x_46_im) - (y_46_im * x_46_re)) / ((y_46_re * y_46_re) + (y_46_im * y_46_im));
	double t_6 = (x_46_im - (y_46_im * (x_46_re / y_46_re))) / y_46_re;
	double tmp;
	if (t_5 <= -((double) INFINITY)) {
		tmp = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re;
	} else if (t_5 <= -5e+102) {
		tmp = t_5;
	} else if (t_5 <= -5e+99) {
		tmp = x_46_im / y_46_re;
	} else if (t_5 <= -5e+91) {
		tmp = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	} else if (t_5 <= -4e+87) {
		tmp = x_46_im / y_46_re;
	} else if (t_5 <= -1e+80) {
		tmp = t_4;
	} else if (t_5 <= -4e+21) {
		tmp = t_5;
	} else if (t_5 <= -1e+17) {
		tmp = t_1;
	} else if (t_5 <= -1e-53) {
		tmp = t_5;
	} else if (t_5 <= -2e-59) {
		tmp = t_4;
	} else if (t_5 <= -2e-67) {
		tmp = x_46_im / y_46_re;
	} else if (t_5 <= -4e-69) {
		tmp = t_4;
	} else if (t_5 <= -1e-79) {
		tmp = t_1;
	} else if (t_5 <= -5e-87) {
		tmp = t_2 / y_46_im;
	} else if (t_5 <= -1e-131) {
		tmp = t_1;
	} else if (t_5 <= -2e-174) {
		tmp = t_4;
	} else if (t_5 <= -1e-279) {
		tmp = t_5;
	} else if (t_5 <= -1e-300) {
		tmp = t_3;
	} else if (t_5 <= -1e-321) {
		tmp = t_5;
	} else if (t_5 <= 1e-264) {
		tmp = t_1;
	} else if (t_5 <= 4e-250) {
		tmp = t_4;
	} else if (t_5 <= 1e-228) {
		tmp = t_5;
	} else if (t_5 <= 5e-201) {
		tmp = t_6;
	} else if (t_5 <= 2e-169) {
		tmp = t_4;
	} else if (t_5 <= 5e-156) {
		tmp = t_1;
	} else if (t_5 <= 2e-129) {
		tmp = (x_46_re * ((x_46_im * (y_46_re / (y_46_im * x_46_re))) + -1.0)) / y_46_im;
	} else if (t_5 <= 1e-107) {
		tmp = 1.0 / (y_46_re / t_0);
	} else if (t_5 <= 1e-53) {
		tmp = t_6;
	} else if (t_5 <= 5e-15) {
		tmp = t_3;
	} else if (t_5 <= 5000.0) {
		tmp = x_46_im / y_46_re;
	} else if (t_5 <= 10000.0) {
		tmp = t_4;
	} else if (t_5 <= 1e+49) {
		tmp = t_5;
	} else if (t_5 <= 2e+75) {
		tmp = x_46_im / y_46_re;
	} else if (t_5 <= 1e+106) {
		tmp = t_4;
	} else if (t_5 <= 1e+148) {
		tmp = x_46_im / y_46_re;
	} else if (t_5 <= 1e+293) {
		tmp = t_5;
	} else if (t_5 <= ((double) INFINITY)) {
		tmp = t_3;
	} else {
		tmp = t_6;
	}
	return tmp;
}
public static double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double t_0 = x_46_im - (x_46_re * (y_46_im / y_46_re));
	double t_1 = t_0 / y_46_re;
	double t_2 = x_46_im * (y_46_re / y_46_im);
	double t_3 = (t_2 - x_46_re) / y_46_im;
	double t_4 = x_46_re / -y_46_im;
	double t_5 = ((y_46_re * x_46_im) - (y_46_im * x_46_re)) / ((y_46_re * y_46_re) + (y_46_im * y_46_im));
	double t_6 = (x_46_im - (y_46_im * (x_46_re / y_46_re))) / y_46_re;
	double tmp;
	if (t_5 <= -Double.POSITIVE_INFINITY) {
		tmp = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re;
	} else if (t_5 <= -5e+102) {
		tmp = t_5;
	} else if (t_5 <= -5e+99) {
		tmp = x_46_im / y_46_re;
	} else if (t_5 <= -5e+91) {
		tmp = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	} else if (t_5 <= -4e+87) {
		tmp = x_46_im / y_46_re;
	} else if (t_5 <= -1e+80) {
		tmp = t_4;
	} else if (t_5 <= -4e+21) {
		tmp = t_5;
	} else if (t_5 <= -1e+17) {
		tmp = t_1;
	} else if (t_5 <= -1e-53) {
		tmp = t_5;
	} else if (t_5 <= -2e-59) {
		tmp = t_4;
	} else if (t_5 <= -2e-67) {
		tmp = x_46_im / y_46_re;
	} else if (t_5 <= -4e-69) {
		tmp = t_4;
	} else if (t_5 <= -1e-79) {
		tmp = t_1;
	} else if (t_5 <= -5e-87) {
		tmp = t_2 / y_46_im;
	} else if (t_5 <= -1e-131) {
		tmp = t_1;
	} else if (t_5 <= -2e-174) {
		tmp = t_4;
	} else if (t_5 <= -1e-279) {
		tmp = t_5;
	} else if (t_5 <= -1e-300) {
		tmp = t_3;
	} else if (t_5 <= -1e-321) {
		tmp = t_5;
	} else if (t_5 <= 1e-264) {
		tmp = t_1;
	} else if (t_5 <= 4e-250) {
		tmp = t_4;
	} else if (t_5 <= 1e-228) {
		tmp = t_5;
	} else if (t_5 <= 5e-201) {
		tmp = t_6;
	} else if (t_5 <= 2e-169) {
		tmp = t_4;
	} else if (t_5 <= 5e-156) {
		tmp = t_1;
	} else if (t_5 <= 2e-129) {
		tmp = (x_46_re * ((x_46_im * (y_46_re / (y_46_im * x_46_re))) + -1.0)) / y_46_im;
	} else if (t_5 <= 1e-107) {
		tmp = 1.0 / (y_46_re / t_0);
	} else if (t_5 <= 1e-53) {
		tmp = t_6;
	} else if (t_5 <= 5e-15) {
		tmp = t_3;
	} else if (t_5 <= 5000.0) {
		tmp = x_46_im / y_46_re;
	} else if (t_5 <= 10000.0) {
		tmp = t_4;
	} else if (t_5 <= 1e+49) {
		tmp = t_5;
	} else if (t_5 <= 2e+75) {
		tmp = x_46_im / y_46_re;
	} else if (t_5 <= 1e+106) {
		tmp = t_4;
	} else if (t_5 <= 1e+148) {
		tmp = x_46_im / y_46_re;
	} else if (t_5 <= 1e+293) {
		tmp = t_5;
	} else if (t_5 <= Double.POSITIVE_INFINITY) {
		tmp = t_3;
	} else {
		tmp = t_6;
	}
	return tmp;
}
def code(x_46_re, x_46_im, y_46_re, y_46_im):
	t_0 = x_46_im - (x_46_re * (y_46_im / y_46_re))
	t_1 = t_0 / y_46_re
	t_2 = x_46_im * (y_46_re / y_46_im)
	t_3 = (t_2 - x_46_re) / y_46_im
	t_4 = x_46_re / -y_46_im
	t_5 = ((y_46_re * x_46_im) - (y_46_im * x_46_re)) / ((y_46_re * y_46_re) + (y_46_im * y_46_im))
	t_6 = (x_46_im - (y_46_im * (x_46_re / y_46_re))) / y_46_re
	tmp = 0
	if t_5 <= -math.inf:
		tmp = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re
	elif t_5 <= -5e+102:
		tmp = t_5
	elif t_5 <= -5e+99:
		tmp = x_46_im / y_46_re
	elif t_5 <= -5e+91:
		tmp = x_46_im * ((y_46_re / y_46_im) / y_46_im)
	elif t_5 <= -4e+87:
		tmp = x_46_im / y_46_re
	elif t_5 <= -1e+80:
		tmp = t_4
	elif t_5 <= -4e+21:
		tmp = t_5
	elif t_5 <= -1e+17:
		tmp = t_1
	elif t_5 <= -1e-53:
		tmp = t_5
	elif t_5 <= -2e-59:
		tmp = t_4
	elif t_5 <= -2e-67:
		tmp = x_46_im / y_46_re
	elif t_5 <= -4e-69:
		tmp = t_4
	elif t_5 <= -1e-79:
		tmp = t_1
	elif t_5 <= -5e-87:
		tmp = t_2 / y_46_im
	elif t_5 <= -1e-131:
		tmp = t_1
	elif t_5 <= -2e-174:
		tmp = t_4
	elif t_5 <= -1e-279:
		tmp = t_5
	elif t_5 <= -1e-300:
		tmp = t_3
	elif t_5 <= -1e-321:
		tmp = t_5
	elif t_5 <= 1e-264:
		tmp = t_1
	elif t_5 <= 4e-250:
		tmp = t_4
	elif t_5 <= 1e-228:
		tmp = t_5
	elif t_5 <= 5e-201:
		tmp = t_6
	elif t_5 <= 2e-169:
		tmp = t_4
	elif t_5 <= 5e-156:
		tmp = t_1
	elif t_5 <= 2e-129:
		tmp = (x_46_re * ((x_46_im * (y_46_re / (y_46_im * x_46_re))) + -1.0)) / y_46_im
	elif t_5 <= 1e-107:
		tmp = 1.0 / (y_46_re / t_0)
	elif t_5 <= 1e-53:
		tmp = t_6
	elif t_5 <= 5e-15:
		tmp = t_3
	elif t_5 <= 5000.0:
		tmp = x_46_im / y_46_re
	elif t_5 <= 10000.0:
		tmp = t_4
	elif t_5 <= 1e+49:
		tmp = t_5
	elif t_5 <= 2e+75:
		tmp = x_46_im / y_46_re
	elif t_5 <= 1e+106:
		tmp = t_4
	elif t_5 <= 1e+148:
		tmp = x_46_im / y_46_re
	elif t_5 <= 1e+293:
		tmp = t_5
	elif t_5 <= math.inf:
		tmp = t_3
	else:
		tmp = t_6
	return tmp
function code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = Float64(x_46_im - Float64(x_46_re * Float64(y_46_im / y_46_re)))
	t_1 = Float64(t_0 / y_46_re)
	t_2 = Float64(x_46_im * Float64(y_46_re / y_46_im))
	t_3 = Float64(Float64(t_2 - x_46_re) / y_46_im)
	t_4 = Float64(x_46_re / Float64(-y_46_im))
	t_5 = Float64(Float64(Float64(y_46_re * x_46_im) - Float64(y_46_im * x_46_re)) / Float64(Float64(y_46_re * y_46_re) + Float64(y_46_im * y_46_im)))
	t_6 = Float64(Float64(x_46_im - Float64(y_46_im * Float64(x_46_re / y_46_re))) / y_46_re)
	tmp = 0.0
	if (t_5 <= Float64(-Inf))
		tmp = Float64(Float64(x_46_im - Float64(Float64(y_46_im * x_46_re) / y_46_re)) / y_46_re);
	elseif (t_5 <= -5e+102)
		tmp = t_5;
	elseif (t_5 <= -5e+99)
		tmp = Float64(x_46_im / y_46_re);
	elseif (t_5 <= -5e+91)
		tmp = Float64(x_46_im * Float64(Float64(y_46_re / y_46_im) / y_46_im));
	elseif (t_5 <= -4e+87)
		tmp = Float64(x_46_im / y_46_re);
	elseif (t_5 <= -1e+80)
		tmp = t_4;
	elseif (t_5 <= -4e+21)
		tmp = t_5;
	elseif (t_5 <= -1e+17)
		tmp = t_1;
	elseif (t_5 <= -1e-53)
		tmp = t_5;
	elseif (t_5 <= -2e-59)
		tmp = t_4;
	elseif (t_5 <= -2e-67)
		tmp = Float64(x_46_im / y_46_re);
	elseif (t_5 <= -4e-69)
		tmp = t_4;
	elseif (t_5 <= -1e-79)
		tmp = t_1;
	elseif (t_5 <= -5e-87)
		tmp = Float64(t_2 / y_46_im);
	elseif (t_5 <= -1e-131)
		tmp = t_1;
	elseif (t_5 <= -2e-174)
		tmp = t_4;
	elseif (t_5 <= -1e-279)
		tmp = t_5;
	elseif (t_5 <= -1e-300)
		tmp = t_3;
	elseif (t_5 <= -1e-321)
		tmp = t_5;
	elseif (t_5 <= 1e-264)
		tmp = t_1;
	elseif (t_5 <= 4e-250)
		tmp = t_4;
	elseif (t_5 <= 1e-228)
		tmp = t_5;
	elseif (t_5 <= 5e-201)
		tmp = t_6;
	elseif (t_5 <= 2e-169)
		tmp = t_4;
	elseif (t_5 <= 5e-156)
		tmp = t_1;
	elseif (t_5 <= 2e-129)
		tmp = Float64(Float64(x_46_re * Float64(Float64(x_46_im * Float64(y_46_re / Float64(y_46_im * x_46_re))) + -1.0)) / y_46_im);
	elseif (t_5 <= 1e-107)
		tmp = Float64(1.0 / Float64(y_46_re / t_0));
	elseif (t_5 <= 1e-53)
		tmp = t_6;
	elseif (t_5 <= 5e-15)
		tmp = t_3;
	elseif (t_5 <= 5000.0)
		tmp = Float64(x_46_im / y_46_re);
	elseif (t_5 <= 10000.0)
		tmp = t_4;
	elseif (t_5 <= 1e+49)
		tmp = t_5;
	elseif (t_5 <= 2e+75)
		tmp = Float64(x_46_im / y_46_re);
	elseif (t_5 <= 1e+106)
		tmp = t_4;
	elseif (t_5 <= 1e+148)
		tmp = Float64(x_46_im / y_46_re);
	elseif (t_5 <= 1e+293)
		tmp = t_5;
	elseif (t_5 <= Inf)
		tmp = t_3;
	else
		tmp = t_6;
	end
	return tmp
end
function tmp_2 = code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = x_46_im - (x_46_re * (y_46_im / y_46_re));
	t_1 = t_0 / y_46_re;
	t_2 = x_46_im * (y_46_re / y_46_im);
	t_3 = (t_2 - x_46_re) / y_46_im;
	t_4 = x_46_re / -y_46_im;
	t_5 = ((y_46_re * x_46_im) - (y_46_im * x_46_re)) / ((y_46_re * y_46_re) + (y_46_im * y_46_im));
	t_6 = (x_46_im - (y_46_im * (x_46_re / y_46_re))) / y_46_re;
	tmp = 0.0;
	if (t_5 <= -Inf)
		tmp = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re;
	elseif (t_5 <= -5e+102)
		tmp = t_5;
	elseif (t_5 <= -5e+99)
		tmp = x_46_im / y_46_re;
	elseif (t_5 <= -5e+91)
		tmp = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	elseif (t_5 <= -4e+87)
		tmp = x_46_im / y_46_re;
	elseif (t_5 <= -1e+80)
		tmp = t_4;
	elseif (t_5 <= -4e+21)
		tmp = t_5;
	elseif (t_5 <= -1e+17)
		tmp = t_1;
	elseif (t_5 <= -1e-53)
		tmp = t_5;
	elseif (t_5 <= -2e-59)
		tmp = t_4;
	elseif (t_5 <= -2e-67)
		tmp = x_46_im / y_46_re;
	elseif (t_5 <= -4e-69)
		tmp = t_4;
	elseif (t_5 <= -1e-79)
		tmp = t_1;
	elseif (t_5 <= -5e-87)
		tmp = t_2 / y_46_im;
	elseif (t_5 <= -1e-131)
		tmp = t_1;
	elseif (t_5 <= -2e-174)
		tmp = t_4;
	elseif (t_5 <= -1e-279)
		tmp = t_5;
	elseif (t_5 <= -1e-300)
		tmp = t_3;
	elseif (t_5 <= -1e-321)
		tmp = t_5;
	elseif (t_5 <= 1e-264)
		tmp = t_1;
	elseif (t_5 <= 4e-250)
		tmp = t_4;
	elseif (t_5 <= 1e-228)
		tmp = t_5;
	elseif (t_5 <= 5e-201)
		tmp = t_6;
	elseif (t_5 <= 2e-169)
		tmp = t_4;
	elseif (t_5 <= 5e-156)
		tmp = t_1;
	elseif (t_5 <= 2e-129)
		tmp = (x_46_re * ((x_46_im * (y_46_re / (y_46_im * x_46_re))) + -1.0)) / y_46_im;
	elseif (t_5 <= 1e-107)
		tmp = 1.0 / (y_46_re / t_0);
	elseif (t_5 <= 1e-53)
		tmp = t_6;
	elseif (t_5 <= 5e-15)
		tmp = t_3;
	elseif (t_5 <= 5000.0)
		tmp = x_46_im / y_46_re;
	elseif (t_5 <= 10000.0)
		tmp = t_4;
	elseif (t_5 <= 1e+49)
		tmp = t_5;
	elseif (t_5 <= 2e+75)
		tmp = x_46_im / y_46_re;
	elseif (t_5 <= 1e+106)
		tmp = t_4;
	elseif (t_5 <= 1e+148)
		tmp = x_46_im / y_46_re;
	elseif (t_5 <= 1e+293)
		tmp = t_5;
	elseif (t_5 <= Inf)
		tmp = t_3;
	else
		tmp = t_6;
	end
	tmp_2 = tmp;
end
code[x$46$re_, x$46$im_, y$46$re_, y$46$im_] := Block[{t$95$0 = N[(x$46$im - N[(x$46$re * N[(y$46$im / y$46$re), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(t$95$0 / y$46$re), $MachinePrecision]}, Block[{t$95$2 = N[(x$46$im * N[(y$46$re / y$46$im), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(t$95$2 - x$46$re), $MachinePrecision] / y$46$im), $MachinePrecision]}, Block[{t$95$4 = N[(x$46$re / (-y$46$im)), $MachinePrecision]}, Block[{t$95$5 = N[(N[(N[(y$46$re * x$46$im), $MachinePrecision] - N[(y$46$im * x$46$re), $MachinePrecision]), $MachinePrecision] / N[(N[(y$46$re * y$46$re), $MachinePrecision] + N[(y$46$im * y$46$im), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$6 = N[(N[(x$46$im - N[(y$46$im * N[(x$46$re / y$46$re), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y$46$re), $MachinePrecision]}, If[LessEqual[t$95$5, (-Infinity)], N[(N[(x$46$im - N[(N[(y$46$im * x$46$re), $MachinePrecision] / y$46$re), $MachinePrecision]), $MachinePrecision] / y$46$re), $MachinePrecision], If[LessEqual[t$95$5, -5e+102], t$95$5, If[LessEqual[t$95$5, -5e+99], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[t$95$5, -5e+91], N[(x$46$im * N[(N[(y$46$re / y$46$im), $MachinePrecision] / y$46$im), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$5, -4e+87], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[t$95$5, -1e+80], t$95$4, If[LessEqual[t$95$5, -4e+21], t$95$5, If[LessEqual[t$95$5, -1e+17], t$95$1, If[LessEqual[t$95$5, -1e-53], t$95$5, If[LessEqual[t$95$5, -2e-59], t$95$4, If[LessEqual[t$95$5, -2e-67], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[t$95$5, -4e-69], t$95$4, If[LessEqual[t$95$5, -1e-79], t$95$1, If[LessEqual[t$95$5, -5e-87], N[(t$95$2 / y$46$im), $MachinePrecision], If[LessEqual[t$95$5, -1e-131], t$95$1, If[LessEqual[t$95$5, -2e-174], t$95$4, If[LessEqual[t$95$5, -1e-279], t$95$5, If[LessEqual[t$95$5, -1e-300], t$95$3, If[LessEqual[t$95$5, -1e-321], t$95$5, If[LessEqual[t$95$5, 1e-264], t$95$1, If[LessEqual[t$95$5, 4e-250], t$95$4, If[LessEqual[t$95$5, 1e-228], t$95$5, If[LessEqual[t$95$5, 5e-201], t$95$6, If[LessEqual[t$95$5, 2e-169], t$95$4, If[LessEqual[t$95$5, 5e-156], t$95$1, If[LessEqual[t$95$5, 2e-129], N[(N[(x$46$re * N[(N[(x$46$im * N[(y$46$re / N[(y$46$im * x$46$re), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + -1.0), $MachinePrecision]), $MachinePrecision] / y$46$im), $MachinePrecision], If[LessEqual[t$95$5, 1e-107], N[(1.0 / N[(y$46$re / t$95$0), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$5, 1e-53], t$95$6, If[LessEqual[t$95$5, 5e-15], t$95$3, If[LessEqual[t$95$5, 5000.0], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[t$95$5, 10000.0], t$95$4, If[LessEqual[t$95$5, 1e+49], t$95$5, If[LessEqual[t$95$5, 2e+75], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[t$95$5, 1e+106], t$95$4, If[LessEqual[t$95$5, 1e+148], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[t$95$5, 1e+293], t$95$5, If[LessEqual[t$95$5, Infinity], t$95$3, t$95$6]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := x.im - x.re \cdot \frac{y.im}{y.re}\\
t_1 := \frac{t\_0}{y.re}\\
t_2 := x.im \cdot \frac{y.re}{y.im}\\
t_3 := \frac{t\_2 - x.re}{y.im}\\
t_4 := \frac{x.re}{-y.im}\\
t_5 := \frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im}\\
t_6 := \frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\
\mathbf{if}\;t\_5 \leq -\infty:\\
\;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\

\mathbf{elif}\;t\_5 \leq -5 \cdot 10^{+102}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;t\_5 \leq -5 \cdot 10^{+99}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;t\_5 \leq -5 \cdot 10^{+91}:\\
\;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\

\mathbf{elif}\;t\_5 \leq -4 \cdot 10^{+87}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;t\_5 \leq -1 \cdot 10^{+80}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;t\_5 \leq -4 \cdot 10^{+21}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;t\_5 \leq -1 \cdot 10^{+17}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;t\_5 \leq -1 \cdot 10^{-53}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;t\_5 \leq -2 \cdot 10^{-59}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;t\_5 \leq -2 \cdot 10^{-67}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;t\_5 \leq -4 \cdot 10^{-69}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;t\_5 \leq -1 \cdot 10^{-79}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;t\_5 \leq -5 \cdot 10^{-87}:\\
\;\;\;\;\frac{t\_2}{y.im}\\

\mathbf{elif}\;t\_5 \leq -1 \cdot 10^{-131}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;t\_5 \leq -2 \cdot 10^{-174}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;t\_5 \leq -1 \cdot 10^{-279}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;t\_5 \leq -1 \cdot 10^{-300}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;t\_5 \leq -1 \cdot 10^{-321}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;t\_5 \leq 10^{-264}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;t\_5 \leq 4 \cdot 10^{-250}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;t\_5 \leq 10^{-228}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;t\_5 \leq 5 \cdot 10^{-201}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;t\_5 \leq 2 \cdot 10^{-169}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;t\_5 \leq 5 \cdot 10^{-156}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;t\_5 \leq 2 \cdot 10^{-129}:\\
\;\;\;\;\frac{x.re \cdot \left(x.im \cdot \frac{y.re}{y.im \cdot x.re} + -1\right)}{y.im}\\

\mathbf{elif}\;t\_5 \leq 10^{-107}:\\
\;\;\;\;\frac{1}{\frac{y.re}{t\_0}}\\

\mathbf{elif}\;t\_5 \leq 10^{-53}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;t\_5 \leq 5 \cdot 10^{-15}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;t\_5 \leq 5000:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;t\_5 \leq 10000:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;t\_5 \leq 10^{+49}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;t\_5 \leq 2 \cdot 10^{+75}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;t\_5 \leq 10^{+106}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;t\_5 \leq 10^{+148}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;t\_5 \leq 10^{+293}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;t\_5 \leq \infty:\\
\;\;\;\;t\_3\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 11 regimes
  2. if (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -inf.0

    1. Initial program 27.6%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub13.7%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative13.7%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt13.7%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac42.0%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg42.0%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define42.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define43.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*66.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt66.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow266.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define66.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr66.5%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 77.5%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg77.5%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg77.5%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative77.5%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified77.5%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]

    if -inf.0 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -5e102 or -1e80 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -4e21 or -1e17 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -1.00000000000000003e-53 or -2e-174 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -1.00000000000000006e-279 or -1.00000000000000003e-300 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -9.98013e-322 or 4.0000000000000002e-250 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 1.00000000000000003e-228 or 1e4 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 9.99999999999999946e48 or 1e148 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 9.9999999999999992e292

    1. Initial program 98.4%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing

    if -5e102 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -5.00000000000000008e99 or -5.0000000000000002e91 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -3.9999999999999998e87 or -2.0000000000000001e-59 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -1.99999999999999989e-67 or 4.99999999999999999e-15 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 5e3 or 9.99999999999999946e48 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 1.99999999999999985e75 or 1.00000000000000009e106 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 1e148

    1. Initial program 99.1%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around inf 100.0%

      \[\leadsto \color{blue}{\frac{x.im}{y.re}} \]

    if -5.00000000000000008e99 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -5.0000000000000002e91

    1. Initial program 100.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub100.0%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative100.0%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt100.0%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac100.0%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg100.0%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow2100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 100.0%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 100.0%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified100.0%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    11. Step-by-step derivation
      1. associate-/l*100.0%

        \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]
    12. Applied egg-rr100.0%

      \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]

    if -3.9999999999999998e87 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -1e80 or -1.00000000000000003e-53 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -2.0000000000000001e-59 or -1.99999999999999989e-67 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -3.9999999999999999e-69 or -9.9999999999999999e-132 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -2e-174 or 1e-264 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 4.0000000000000002e-250 or 4.9999999999999999e-201 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 2.00000000000000004e-169 or 5e3 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 1e4 or 1.99999999999999985e75 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 1.00000000000000009e106

    1. Initial program 99.2%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around 0 100.0%

      \[\leadsto \color{blue}{-1 \cdot \frac{x.re}{y.im}} \]
    4. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \color{blue}{\frac{-1 \cdot x.re}{y.im}} \]
      2. neg-mul-1100.0%

        \[\leadsto \frac{\color{blue}{-x.re}}{y.im} \]
    5. Simplified100.0%

      \[\leadsto \color{blue}{\frac{-x.re}{y.im}} \]

    if -4e21 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -1e17 or -3.9999999999999999e-69 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -1e-79 or -5.00000000000000042e-87 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -9.9999999999999999e-132 or -9.98013e-322 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 1e-264 or 2.00000000000000004e-169 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 5.00000000000000007e-156

    1. Initial program 62.6%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around inf 66.1%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    4. Step-by-step derivation
      1. remove-double-neg66.1%

        \[\leadsto \frac{\color{blue}{\left(-\left(-x.im\right)\right)} + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      2. mul-1-neg66.1%

        \[\leadsto \frac{\left(-\color{blue}{-1 \cdot x.im}\right) + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      3. neg-mul-166.1%

        \[\leadsto \frac{\color{blue}{-1 \cdot \left(-1 \cdot x.im\right)} + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      4. distribute-lft-in66.1%

        \[\leadsto \frac{\color{blue}{-1 \cdot \left(-1 \cdot x.im + \frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      5. mul-1-neg66.1%

        \[\leadsto \frac{\color{blue}{-\left(-1 \cdot x.im + \frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      6. distribute-neg-in66.1%

        \[\leadsto \frac{\color{blue}{\left(--1 \cdot x.im\right) + \left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      7. mul-1-neg66.1%

        \[\leadsto \frac{\left(-\color{blue}{\left(-x.im\right)}\right) + \left(-\frac{x.re \cdot y.im}{y.re}\right)}{y.re} \]
      8. remove-double-neg66.1%

        \[\leadsto \frac{\color{blue}{x.im} + \left(-\frac{x.re \cdot y.im}{y.re}\right)}{y.re} \]
      9. unsub-neg66.1%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      10. associate-/l*67.2%

        \[\leadsto \frac{x.im - \color{blue}{x.re \cdot \frac{y.im}{y.re}}}{y.re} \]
    5. Simplified67.2%

      \[\leadsto \color{blue}{\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}} \]

    if -1e-79 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -5.00000000000000042e-87

    1. Initial program 98.4%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub98.4%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative98.4%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt98.4%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac100.0%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg100.0%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow2100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 98.4%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 98.4%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified100.0%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]

    if -1.00000000000000006e-279 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < -1.00000000000000003e-300 or 1.00000000000000003e-53 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 4.99999999999999999e-15 or 9.9999999999999992e292 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < +inf.0

    1. Initial program 50.2%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub40.1%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative40.1%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt40.1%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac53.9%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg53.9%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define53.9%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define63.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*81.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt81.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow281.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define81.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr81.8%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 73.1%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/77.7%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified77.7%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]

    if 1.00000000000000003e-228 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 4.9999999999999999e-201 or 1e-107 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 1.00000000000000003e-53 or +inf.0 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)))

    1. Initial program 11.6%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub11.6%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative11.6%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt11.6%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac13.5%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg13.5%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define13.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define60.7%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*62.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt62.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow262.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define62.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr62.3%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 56.3%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg56.3%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg56.3%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative56.3%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified56.3%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]
    8. Step-by-step derivation
      1. associate-/l*64.2%

        \[\leadsto \frac{x.im - \color{blue}{y.im \cdot \frac{x.re}{y.re}}}{y.re} \]
    9. Applied egg-rr64.2%

      \[\leadsto \frac{x.im - \color{blue}{y.im \cdot \frac{x.re}{y.re}}}{y.re} \]

    if 5.00000000000000007e-156 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 1.9999999999999999e-129

    1. Initial program 99.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around 0 99.5%

      \[\leadsto \color{blue}{-1 \cdot \frac{x.re}{y.im} + \frac{x.im \cdot y.re}{{y.im}^{2}}} \]
    4. Step-by-step derivation
      1. +-commutative99.5%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{{y.im}^{2}} + -1 \cdot \frac{x.re}{y.im}} \]
      2. mul-1-neg99.5%

        \[\leadsto \frac{x.im \cdot y.re}{{y.im}^{2}} + \color{blue}{\left(-\frac{x.re}{y.im}\right)} \]
      3. unsub-neg99.5%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{{y.im}^{2}} - \frac{x.re}{y.im}} \]
      4. unpow299.5%

        \[\leadsto \frac{x.im \cdot y.re}{\color{blue}{y.im \cdot y.im}} - \frac{x.re}{y.im} \]
      5. associate-/r*99.5%

        \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im}}{y.im}} - \frac{x.re}{y.im} \]
      6. div-sub99.5%

        \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
      7. *-commutative99.5%

        \[\leadsto \frac{\frac{\color{blue}{y.re \cdot x.im}}{y.im} - x.re}{y.im} \]
      8. associate-/l*99.5%

        \[\leadsto \frac{\color{blue}{y.re \cdot \frac{x.im}{y.im}} - x.re}{y.im} \]
    5. Simplified99.5%

      \[\leadsto \color{blue}{\frac{y.re \cdot \frac{x.im}{y.im} - x.re}{y.im}} \]
    6. Taylor expanded in x.re around inf 99.2%

      \[\leadsto \frac{\color{blue}{x.re \cdot \left(\frac{x.im \cdot y.re}{x.re \cdot y.im} - 1\right)}}{y.im} \]
    7. Step-by-step derivation
      1. sub-neg99.2%

        \[\leadsto \frac{x.re \cdot \color{blue}{\left(\frac{x.im \cdot y.re}{x.re \cdot y.im} + \left(-1\right)\right)}}{y.im} \]
      2. associate-/l*100.0%

        \[\leadsto \frac{x.re \cdot \left(\color{blue}{x.im \cdot \frac{y.re}{x.re \cdot y.im}} + \left(-1\right)\right)}{y.im} \]
      3. *-commutative100.0%

        \[\leadsto \frac{x.re \cdot \left(x.im \cdot \frac{y.re}{\color{blue}{y.im \cdot x.re}} + \left(-1\right)\right)}{y.im} \]
      4. metadata-eval100.0%

        \[\leadsto \frac{x.re \cdot \left(x.im \cdot \frac{y.re}{y.im \cdot x.re} + \color{blue}{-1}\right)}{y.im} \]
    8. Simplified100.0%

      \[\leadsto \frac{\color{blue}{x.re \cdot \left(x.im \cdot \frac{y.re}{y.im \cdot x.re} + -1\right)}}{y.im} \]

    if 1.9999999999999999e-129 < (/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))) < 1e-107

    1. Initial program 100.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub100.0%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative100.0%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt100.0%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac100.0%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg100.0%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow2100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 98.4%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg98.4%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg98.4%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative98.4%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified98.4%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]
    8. Step-by-step derivation
      1. clear-num100.0%

        \[\leadsto \color{blue}{\frac{1}{\frac{y.re}{x.im - \frac{y.im \cdot x.re}{y.re}}}} \]
      2. inv-pow100.0%

        \[\leadsto \color{blue}{{\left(\frac{y.re}{x.im - \frac{y.im \cdot x.re}{y.re}}\right)}^{-1}} \]
      3. associate-/l*100.0%

        \[\leadsto {\left(\frac{y.re}{x.im - \color{blue}{y.im \cdot \frac{x.re}{y.re}}}\right)}^{-1} \]
    9. Applied egg-rr100.0%

      \[\leadsto \color{blue}{{\left(\frac{y.re}{x.im - y.im \cdot \frac{x.re}{y.re}}\right)}^{-1}} \]
    10. Step-by-step derivation
      1. unpow-1100.0%

        \[\leadsto \color{blue}{\frac{1}{\frac{y.re}{x.im - y.im \cdot \frac{x.re}{y.re}}}} \]
      2. associate-*r/100.0%

        \[\leadsto \frac{1}{\frac{y.re}{x.im - \color{blue}{\frac{y.im \cdot x.re}{y.re}}}} \]
      3. *-commutative100.0%

        \[\leadsto \frac{1}{\frac{y.re}{x.im - \frac{\color{blue}{x.re \cdot y.im}}{y.re}}} \]
      4. associate-*r/100.0%

        \[\leadsto \frac{1}{\frac{y.re}{x.im - \color{blue}{x.re \cdot \frac{y.im}{y.re}}}} \]
    11. Simplified100.0%

      \[\leadsto \color{blue}{\frac{1}{\frac{y.re}{x.im - x.re \cdot \frac{y.im}{y.re}}}} \]
  3. Recombined 11 regimes into one program.
  4. Final simplification77.8%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -\infty:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -5 \cdot 10^{+102}:\\ \;\;\;\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -5 \cdot 10^{+99}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -5 \cdot 10^{+91}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -4 \cdot 10^{+87}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -1 \cdot 10^{+80}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -4 \cdot 10^{+21}:\\ \;\;\;\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -1 \cdot 10^{+17}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -1 \cdot 10^{-53}:\\ \;\;\;\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -2 \cdot 10^{-59}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -2 \cdot 10^{-67}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -4 \cdot 10^{-69}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -1 \cdot 10^{-79}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -5 \cdot 10^{-87}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -1 \cdot 10^{-131}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -2 \cdot 10^{-174}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -1 \cdot 10^{-279}:\\ \;\;\;\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -1 \cdot 10^{-300}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq -1 \cdot 10^{-321}:\\ \;\;\;\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 10^{-264}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 4 \cdot 10^{-250}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 10^{-228}:\\ \;\;\;\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 5 \cdot 10^{-201}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 2 \cdot 10^{-169}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 5 \cdot 10^{-156}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 2 \cdot 10^{-129}:\\ \;\;\;\;\frac{x.re \cdot \left(x.im \cdot \frac{y.re}{y.im \cdot x.re} + -1\right)}{y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 10^{-107}:\\ \;\;\;\;\frac{1}{\frac{y.re}{x.im - x.re \cdot \frac{y.im}{y.re}}}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 10^{-53}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 5 \cdot 10^{-15}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 5000:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 10000:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 10^{+49}:\\ \;\;\;\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 2 \cdot 10^{+75}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 10^{+106}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 10^{+148}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq 10^{+293}:\\ \;\;\;\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im} \leq \infty:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{else}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \end{array} \]
  5. Add Preprocessing

Alternative 5: 95.6% accurate, 0.0× speedup?

\[\begin{array}{l} \\ \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, x.re \cdot \frac{\frac{y.im}{\mathsf{hypot}\left(y.im, y.re\right)}}{-\mathsf{hypot}\left(y.im, y.re\right)}\right) \end{array} \]
(FPCore (x.re x.im y.re y.im)
 :precision binary64
 (fma
  (/ y.re (hypot y.re y.im))
  (/ x.im (hypot y.re y.im))
  (* x.re (/ (/ y.im (hypot y.im y.re)) (- (hypot y.im y.re))))))
double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	return fma((y_46_re / hypot(y_46_re, y_46_im)), (x_46_im / hypot(y_46_re, y_46_im)), (x_46_re * ((y_46_im / hypot(y_46_im, y_46_re)) / -hypot(y_46_im, y_46_re))));
}
function code(x_46_re, x_46_im, y_46_re, y_46_im)
	return fma(Float64(y_46_re / hypot(y_46_re, y_46_im)), Float64(x_46_im / hypot(y_46_re, y_46_im)), Float64(x_46_re * Float64(Float64(y_46_im / hypot(y_46_im, y_46_re)) / Float64(-hypot(y_46_im, y_46_re)))))
end
code[x$46$re_, x$46$im_, y$46$re_, y$46$im_] := N[(N[(y$46$re / N[Sqrt[y$46$re ^ 2 + y$46$im ^ 2], $MachinePrecision]), $MachinePrecision] * N[(x$46$im / N[Sqrt[y$46$re ^ 2 + y$46$im ^ 2], $MachinePrecision]), $MachinePrecision] + N[(x$46$re * N[(N[(y$46$im / N[Sqrt[y$46$im ^ 2 + y$46$re ^ 2], $MachinePrecision]), $MachinePrecision] / (-N[Sqrt[y$46$im ^ 2 + y$46$re ^ 2], $MachinePrecision])), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, x.re \cdot \frac{\frac{y.im}{\mathsf{hypot}\left(y.im, y.re\right)}}{-\mathsf{hypot}\left(y.im, y.re\right)}\right)
\end{array}
Derivation
  1. Initial program 60.1%

    \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
  2. Add Preprocessing
  3. Step-by-step derivation
    1. div-sub58.4%

      \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
    2. *-commutative58.4%

      \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    3. add-sqr-sqrt58.4%

      \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    4. times-frac61.5%

      \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    5. fma-neg61.5%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
    6. hypot-define61.5%

      \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
    7. hypot-define78.2%

      \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
    8. associate-/l*81.9%

      \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
    9. add-sqr-sqrt81.9%

      \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
    10. pow281.9%

      \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
    11. hypot-define81.9%

      \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
  4. Applied egg-rr81.9%

    \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
  5. Step-by-step derivation
    1. *-un-lft-identity81.9%

      \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{\color{blue}{1 \cdot y.im}}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right) \]
    2. unpow281.9%

      \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{1 \cdot y.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right) \cdot \mathsf{hypot}\left(y.re, y.im\right)}}\right) \]
    3. times-frac96.7%

      \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \color{blue}{\left(\frac{1}{\mathsf{hypot}\left(y.re, y.im\right)} \cdot \frac{y.im}{\mathsf{hypot}\left(y.re, y.im\right)}\right)}\right) \]
    4. hypot-undefine81.9%

      \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \left(\frac{1}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} \cdot \frac{y.im}{\mathsf{hypot}\left(y.re, y.im\right)}\right)\right) \]
    5. +-commutative81.9%

      \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \left(\frac{1}{\sqrt{\color{blue}{y.im \cdot y.im + y.re \cdot y.re}}} \cdot \frac{y.im}{\mathsf{hypot}\left(y.re, y.im\right)}\right)\right) \]
    6. hypot-define96.7%

      \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \left(\frac{1}{\color{blue}{\mathsf{hypot}\left(y.im, y.re\right)}} \cdot \frac{y.im}{\mathsf{hypot}\left(y.re, y.im\right)}\right)\right) \]
    7. hypot-undefine81.9%

      \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \left(\frac{1}{\mathsf{hypot}\left(y.im, y.re\right)} \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right)\right) \]
    8. +-commutative81.9%

      \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \left(\frac{1}{\mathsf{hypot}\left(y.im, y.re\right)} \cdot \frac{y.im}{\sqrt{\color{blue}{y.im \cdot y.im + y.re \cdot y.re}}}\right)\right) \]
    9. hypot-define96.7%

      \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \left(\frac{1}{\mathsf{hypot}\left(y.im, y.re\right)} \cdot \frac{y.im}{\color{blue}{\mathsf{hypot}\left(y.im, y.re\right)}}\right)\right) \]
  6. Applied egg-rr96.7%

    \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \color{blue}{\left(\frac{1}{\mathsf{hypot}\left(y.im, y.re\right)} \cdot \frac{y.im}{\mathsf{hypot}\left(y.im, y.re\right)}\right)}\right) \]
  7. Step-by-step derivation
    1. associate-*l/96.7%

      \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \color{blue}{\frac{1 \cdot \frac{y.im}{\mathsf{hypot}\left(y.im, y.re\right)}}{\mathsf{hypot}\left(y.im, y.re\right)}}\right) \]
    2. *-lft-identity96.7%

      \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{\color{blue}{\frac{y.im}{\mathsf{hypot}\left(y.im, y.re\right)}}}{\mathsf{hypot}\left(y.im, y.re\right)}\right) \]
  8. Simplified96.7%

    \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \color{blue}{\frac{\frac{y.im}{\mathsf{hypot}\left(y.im, y.re\right)}}{\mathsf{hypot}\left(y.im, y.re\right)}}\right) \]
  9. Final simplification96.7%

    \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, x.re \cdot \frac{\frac{y.im}{\mathsf{hypot}\left(y.im, y.re\right)}}{-\mathsf{hypot}\left(y.im, y.re\right)}\right) \]
  10. Add Preprocessing

Alternative 6: 79.3% accurate, 0.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ t_1 := \frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ t_2 := \frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im}\\ t_3 := \frac{y.im \cdot x.re}{y.re \cdot \left(-y.re\right) - y.im \cdot y.im}\\ t_4 := x.im \cdot \frac{y.re}{y.im}\\ t_5 := \frac{x.re}{-y.im}\\ t_6 := \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, t\_5\right)\\ t_7 := y.im \cdot \frac{x.re}{y.re}\\ t_8 := \frac{x.im - t\_7}{y.re}\\ \mathbf{if}\;y.im \leq -6.6 \cdot 10^{+96}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.im \leq -0.00036:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq -1.85 \cdot 10^{-35}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.im \leq -6.2 \cdot 10^{-39}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq -6 \cdot 10^{-39}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq -3.8 \cdot 10^{-81}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq -7.2 \cdot 10^{-95}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq -1.5 \cdot 10^{-95}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.45 \cdot 10^{-95}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.im \leq -3.6 \cdot 10^{-133}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -3.5 \cdot 10^{-133}:\\ \;\;\;\;\frac{t\_4}{y.im}\\ \mathbf{elif}\;y.im \leq -1.6 \cdot 10^{-172}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-172}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.im \leq -4 \cdot 10^{-228}:\\ \;\;\;\;\frac{x.im}{y.re} - \frac{t\_7}{y.re}\\ \mathbf{elif}\;y.im \leq 2.55 \cdot 10^{-276}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 2.6 \cdot 10^{-276}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 1.2 \cdot 10^{-194}:\\ \;\;\;\;t\_8\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{-194}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.im \leq 4.2 \cdot 10^{-148}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq 2.2 \cdot 10^{-143}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 1.1 \cdot 10^{-85}:\\ \;\;\;\;t\_8\\ \mathbf{elif}\;y.im \leq 2.4 \cdot 10^{-85}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.im \leq 4.3 \cdot 10^{-52}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 5.2 \cdot 10^{-34}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.im \leq 190000000000:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 2.3 \cdot 10^{+17}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.im \leq 2.55 \cdot 10^{+18}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq 1.65 \cdot 10^{+21}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.im \leq 4.4 \cdot 10^{+21}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.15 \cdot 10^{+53}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.im \leq 6.2 \cdot 10^{+75}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq 2.8 \cdot 10^{+103}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{+104}:\\ \;\;\;\;t\_8\\ \mathbf{elif}\;y.im \leq 1.8 \cdot 10^{+143}:\\ \;\;\;\;\frac{t\_4 - x.re}{y.im}\\ \mathbf{elif}\;y.im \leq 1.85 \cdot 10^{+143}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.3 \cdot 10^{+174}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{+175}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq 4.7 \cdot 10^{+235}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.im \leq 4.8 \cdot 10^{+235} \lor \neg \left(y.im \leq 1.9 \cdot 10^{+271}\right) \land y.im \leq 1.95 \cdot 10^{+271}:\\ \;\;\;\;t\_0\\ \mathbf{else}:\\ \;\;\;\;t\_6\\ \end{array} \end{array} \]
(FPCore (x.re x.im y.re y.im)
 :precision binary64
 (let* ((t_0 (/ (- x.im (* x.re (/ y.im y.re))) y.re))
        (t_1 (/ (- x.im (/ (* y.im x.re) y.re)) y.re))
        (t_2
         (/ (- (* y.re x.im) (* y.im x.re)) (+ (* y.re y.re) (* y.im y.im))))
        (t_3 (/ (* y.im x.re) (- (* y.re (- y.re)) (* y.im y.im))))
        (t_4 (* x.im (/ y.re y.im)))
        (t_5 (/ x.re (- y.im)))
        (t_6 (fma (/ y.re (hypot y.re y.im)) (/ x.im (hypot y.re y.im)) t_5))
        (t_7 (* y.im (/ x.re y.re)))
        (t_8 (/ (- x.im t_7) y.re)))
   (if (<= y.im -6.6e+96)
     t_6
     (if (<= y.im -0.00036)
       t_2
       (if (<= y.im -1.85e-35)
         t_6
         (if (<= y.im -6.2e-39)
           t_0
           (if (<= y.im -6e-39)
             (* x.im (/ (/ y.re y.im) y.im))
             (if (<= y.im -3.8e-81)
               t_0
               (if (<= y.im -7.2e-95)
                 t_2
                 (if (<= y.im -1.5e-95)
                   (/ x.im y.re)
                   (if (<= y.im -1.45e-95)
                     t_5
                     (if (<= y.im -3.6e-133)
                       (/ x.im y.re)
                       (if (<= y.im -3.5e-133)
                         (/ t_4 y.im)
                         (if (<= y.im -1.6e-172)
                           t_1
                           (if (<= y.im -1.55e-172)
                             t_5
                             (if (<= y.im -4e-228)
                               (- (/ x.im y.re) (/ t_7 y.re))
                               (if (<= y.im 2.55e-276)
                                 t_1
                                 (if (<= y.im 2.6e-276)
                                   t_3
                                   (if (<= y.im 1.2e-194)
                                     t_8
                                     (if (<= y.im 1.25e-194)
                                       t_5
                                       (if (<= y.im 4.2e-148)
                                         t_0
                                         (if (<= y.im 2.2e-143)
                                           t_3
                                           (if (<= y.im 1.1e-85)
                                             t_8
                                             (if (<= y.im 2.4e-85)
                                               t_5
                                               (if (<= y.im 4.3e-52)
                                                 (/ x.im y.re)
                                                 (if (<= y.im 5.2e-34)
                                                   t_5
                                                   (if (<= y.im 190000000000.0)
                                                     t_1
                                                     (if (<= y.im 2.3e+17)
                                                       t_5
                                                       (if (<= y.im 2.55e+18)
                                                         t_0
                                                         (if (<= y.im 1.65e+21)
                                                           t_5
                                                           (if (<=
                                                                y.im
                                                                4.4e+21)
                                                             (/ x.im y.re)
                                                             (if (<=
                                                                  y.im
                                                                  1.15e+53)
                                                               t_6
                                                               (if (<=
                                                                    y.im
                                                                    6.2e+75)
                                                                 t_2
                                                                 (if (<=
                                                                      y.im
                                                                      2.8e+103)
                                                                   t_6
                                                                   (if (<=
                                                                        y.im
                                                                        1.25e+104)
                                                                     t_8
                                                                     (if (<=
                                                                          y.im
                                                                          1.8e+143)
                                                                       (/
                                                                        (-
                                                                         t_4
                                                                         x.re)
                                                                        y.im)
                                                                       (if (<=
                                                                            y.im
                                                                            1.85e+143)
                                                                         (/
                                                                          x.im
                                                                          y.re)
                                                                         (if (<=
                                                                              y.im
                                                                              1.3e+174)
                                                                           t_6
                                                                           (if (<=
                                                                                y.im
                                                                                1.25e+175)
                                                                             t_0
                                                                             (if (<=
                                                                                  y.im
                                                                                  4.7e+235)
                                                                               t_5
                                                                               (if (or (<=
                                                                                        y.im
                                                                                        4.8e+235)
                                                                                       (and (not
                                                                                             (<=
                                                                                              y.im
                                                                                              1.9e+271))
                                                                                            (<=
                                                                                             y.im
                                                                                             1.95e+271)))
                                                                                 t_0
                                                                                 t_6)))))))))))))))))))))))))))))))))))))))))
double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double t_0 = (x_46_im - (x_46_re * (y_46_im / y_46_re))) / y_46_re;
	double t_1 = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re;
	double t_2 = ((y_46_re * x_46_im) - (y_46_im * x_46_re)) / ((y_46_re * y_46_re) + (y_46_im * y_46_im));
	double t_3 = (y_46_im * x_46_re) / ((y_46_re * -y_46_re) - (y_46_im * y_46_im));
	double t_4 = x_46_im * (y_46_re / y_46_im);
	double t_5 = x_46_re / -y_46_im;
	double t_6 = fma((y_46_re / hypot(y_46_re, y_46_im)), (x_46_im / hypot(y_46_re, y_46_im)), t_5);
	double t_7 = y_46_im * (x_46_re / y_46_re);
	double t_8 = (x_46_im - t_7) / y_46_re;
	double tmp;
	if (y_46_im <= -6.6e+96) {
		tmp = t_6;
	} else if (y_46_im <= -0.00036) {
		tmp = t_2;
	} else if (y_46_im <= -1.85e-35) {
		tmp = t_6;
	} else if (y_46_im <= -6.2e-39) {
		tmp = t_0;
	} else if (y_46_im <= -6e-39) {
		tmp = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	} else if (y_46_im <= -3.8e-81) {
		tmp = t_0;
	} else if (y_46_im <= -7.2e-95) {
		tmp = t_2;
	} else if (y_46_im <= -1.5e-95) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.45e-95) {
		tmp = t_5;
	} else if (y_46_im <= -3.6e-133) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -3.5e-133) {
		tmp = t_4 / y_46_im;
	} else if (y_46_im <= -1.6e-172) {
		tmp = t_1;
	} else if (y_46_im <= -1.55e-172) {
		tmp = t_5;
	} else if (y_46_im <= -4e-228) {
		tmp = (x_46_im / y_46_re) - (t_7 / y_46_re);
	} else if (y_46_im <= 2.55e-276) {
		tmp = t_1;
	} else if (y_46_im <= 2.6e-276) {
		tmp = t_3;
	} else if (y_46_im <= 1.2e-194) {
		tmp = t_8;
	} else if (y_46_im <= 1.25e-194) {
		tmp = t_5;
	} else if (y_46_im <= 4.2e-148) {
		tmp = t_0;
	} else if (y_46_im <= 2.2e-143) {
		tmp = t_3;
	} else if (y_46_im <= 1.1e-85) {
		tmp = t_8;
	} else if (y_46_im <= 2.4e-85) {
		tmp = t_5;
	} else if (y_46_im <= 4.3e-52) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 5.2e-34) {
		tmp = t_5;
	} else if (y_46_im <= 190000000000.0) {
		tmp = t_1;
	} else if (y_46_im <= 2.3e+17) {
		tmp = t_5;
	} else if (y_46_im <= 2.55e+18) {
		tmp = t_0;
	} else if (y_46_im <= 1.65e+21) {
		tmp = t_5;
	} else if (y_46_im <= 4.4e+21) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.15e+53) {
		tmp = t_6;
	} else if (y_46_im <= 6.2e+75) {
		tmp = t_2;
	} else if (y_46_im <= 2.8e+103) {
		tmp = t_6;
	} else if (y_46_im <= 1.25e+104) {
		tmp = t_8;
	} else if (y_46_im <= 1.8e+143) {
		tmp = (t_4 - x_46_re) / y_46_im;
	} else if (y_46_im <= 1.85e+143) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.3e+174) {
		tmp = t_6;
	} else if (y_46_im <= 1.25e+175) {
		tmp = t_0;
	} else if (y_46_im <= 4.7e+235) {
		tmp = t_5;
	} else if ((y_46_im <= 4.8e+235) || (!(y_46_im <= 1.9e+271) && (y_46_im <= 1.95e+271))) {
		tmp = t_0;
	} else {
		tmp = t_6;
	}
	return tmp;
}
function code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = Float64(Float64(x_46_im - Float64(x_46_re * Float64(y_46_im / y_46_re))) / y_46_re)
	t_1 = Float64(Float64(x_46_im - Float64(Float64(y_46_im * x_46_re) / y_46_re)) / y_46_re)
	t_2 = Float64(Float64(Float64(y_46_re * x_46_im) - Float64(y_46_im * x_46_re)) / Float64(Float64(y_46_re * y_46_re) + Float64(y_46_im * y_46_im)))
	t_3 = Float64(Float64(y_46_im * x_46_re) / Float64(Float64(y_46_re * Float64(-y_46_re)) - Float64(y_46_im * y_46_im)))
	t_4 = Float64(x_46_im * Float64(y_46_re / y_46_im))
	t_5 = Float64(x_46_re / Float64(-y_46_im))
	t_6 = fma(Float64(y_46_re / hypot(y_46_re, y_46_im)), Float64(x_46_im / hypot(y_46_re, y_46_im)), t_5)
	t_7 = Float64(y_46_im * Float64(x_46_re / y_46_re))
	t_8 = Float64(Float64(x_46_im - t_7) / y_46_re)
	tmp = 0.0
	if (y_46_im <= -6.6e+96)
		tmp = t_6;
	elseif (y_46_im <= -0.00036)
		tmp = t_2;
	elseif (y_46_im <= -1.85e-35)
		tmp = t_6;
	elseif (y_46_im <= -6.2e-39)
		tmp = t_0;
	elseif (y_46_im <= -6e-39)
		tmp = Float64(x_46_im * Float64(Float64(y_46_re / y_46_im) / y_46_im));
	elseif (y_46_im <= -3.8e-81)
		tmp = t_0;
	elseif (y_46_im <= -7.2e-95)
		tmp = t_2;
	elseif (y_46_im <= -1.5e-95)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1.45e-95)
		tmp = t_5;
	elseif (y_46_im <= -3.6e-133)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -3.5e-133)
		tmp = Float64(t_4 / y_46_im);
	elseif (y_46_im <= -1.6e-172)
		tmp = t_1;
	elseif (y_46_im <= -1.55e-172)
		tmp = t_5;
	elseif (y_46_im <= -4e-228)
		tmp = Float64(Float64(x_46_im / y_46_re) - Float64(t_7 / y_46_re));
	elseif (y_46_im <= 2.55e-276)
		tmp = t_1;
	elseif (y_46_im <= 2.6e-276)
		tmp = t_3;
	elseif (y_46_im <= 1.2e-194)
		tmp = t_8;
	elseif (y_46_im <= 1.25e-194)
		tmp = t_5;
	elseif (y_46_im <= 4.2e-148)
		tmp = t_0;
	elseif (y_46_im <= 2.2e-143)
		tmp = t_3;
	elseif (y_46_im <= 1.1e-85)
		tmp = t_8;
	elseif (y_46_im <= 2.4e-85)
		tmp = t_5;
	elseif (y_46_im <= 4.3e-52)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 5.2e-34)
		tmp = t_5;
	elseif (y_46_im <= 190000000000.0)
		tmp = t_1;
	elseif (y_46_im <= 2.3e+17)
		tmp = t_5;
	elseif (y_46_im <= 2.55e+18)
		tmp = t_0;
	elseif (y_46_im <= 1.65e+21)
		tmp = t_5;
	elseif (y_46_im <= 4.4e+21)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 1.15e+53)
		tmp = t_6;
	elseif (y_46_im <= 6.2e+75)
		tmp = t_2;
	elseif (y_46_im <= 2.8e+103)
		tmp = t_6;
	elseif (y_46_im <= 1.25e+104)
		tmp = t_8;
	elseif (y_46_im <= 1.8e+143)
		tmp = Float64(Float64(t_4 - x_46_re) / y_46_im);
	elseif (y_46_im <= 1.85e+143)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 1.3e+174)
		tmp = t_6;
	elseif (y_46_im <= 1.25e+175)
		tmp = t_0;
	elseif (y_46_im <= 4.7e+235)
		tmp = t_5;
	elseif ((y_46_im <= 4.8e+235) || (!(y_46_im <= 1.9e+271) && (y_46_im <= 1.95e+271)))
		tmp = t_0;
	else
		tmp = t_6;
	end
	return tmp
end
code[x$46$re_, x$46$im_, y$46$re_, y$46$im_] := Block[{t$95$0 = N[(N[(x$46$im - N[(x$46$re * N[(y$46$im / y$46$re), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y$46$re), $MachinePrecision]}, Block[{t$95$1 = N[(N[(x$46$im - N[(N[(y$46$im * x$46$re), $MachinePrecision] / y$46$re), $MachinePrecision]), $MachinePrecision] / y$46$re), $MachinePrecision]}, Block[{t$95$2 = N[(N[(N[(y$46$re * x$46$im), $MachinePrecision] - N[(y$46$im * x$46$re), $MachinePrecision]), $MachinePrecision] / N[(N[(y$46$re * y$46$re), $MachinePrecision] + N[(y$46$im * y$46$im), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(y$46$im * x$46$re), $MachinePrecision] / N[(N[(y$46$re * (-y$46$re)), $MachinePrecision] - N[(y$46$im * y$46$im), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[(x$46$im * N[(y$46$re / y$46$im), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$5 = N[(x$46$re / (-y$46$im)), $MachinePrecision]}, Block[{t$95$6 = N[(N[(y$46$re / N[Sqrt[y$46$re ^ 2 + y$46$im ^ 2], $MachinePrecision]), $MachinePrecision] * N[(x$46$im / N[Sqrt[y$46$re ^ 2 + y$46$im ^ 2], $MachinePrecision]), $MachinePrecision] + t$95$5), $MachinePrecision]}, Block[{t$95$7 = N[(y$46$im * N[(x$46$re / y$46$re), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$8 = N[(N[(x$46$im - t$95$7), $MachinePrecision] / y$46$re), $MachinePrecision]}, If[LessEqual[y$46$im, -6.6e+96], t$95$6, If[LessEqual[y$46$im, -0.00036], t$95$2, If[LessEqual[y$46$im, -1.85e-35], t$95$6, If[LessEqual[y$46$im, -6.2e-39], t$95$0, If[LessEqual[y$46$im, -6e-39], N[(x$46$im * N[(N[(y$46$re / y$46$im), $MachinePrecision] / y$46$im), $MachinePrecision]), $MachinePrecision], If[LessEqual[y$46$im, -3.8e-81], t$95$0, If[LessEqual[y$46$im, -7.2e-95], t$95$2, If[LessEqual[y$46$im, -1.5e-95], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1.45e-95], t$95$5, If[LessEqual[y$46$im, -3.6e-133], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -3.5e-133], N[(t$95$4 / y$46$im), $MachinePrecision], If[LessEqual[y$46$im, -1.6e-172], t$95$1, If[LessEqual[y$46$im, -1.55e-172], t$95$5, If[LessEqual[y$46$im, -4e-228], N[(N[(x$46$im / y$46$re), $MachinePrecision] - N[(t$95$7 / y$46$re), $MachinePrecision]), $MachinePrecision], If[LessEqual[y$46$im, 2.55e-276], t$95$1, If[LessEqual[y$46$im, 2.6e-276], t$95$3, If[LessEqual[y$46$im, 1.2e-194], t$95$8, If[LessEqual[y$46$im, 1.25e-194], t$95$5, If[LessEqual[y$46$im, 4.2e-148], t$95$0, If[LessEqual[y$46$im, 2.2e-143], t$95$3, If[LessEqual[y$46$im, 1.1e-85], t$95$8, If[LessEqual[y$46$im, 2.4e-85], t$95$5, If[LessEqual[y$46$im, 4.3e-52], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 5.2e-34], t$95$5, If[LessEqual[y$46$im, 190000000000.0], t$95$1, If[LessEqual[y$46$im, 2.3e+17], t$95$5, If[LessEqual[y$46$im, 2.55e+18], t$95$0, If[LessEqual[y$46$im, 1.65e+21], t$95$5, If[LessEqual[y$46$im, 4.4e+21], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 1.15e+53], t$95$6, If[LessEqual[y$46$im, 6.2e+75], t$95$2, If[LessEqual[y$46$im, 2.8e+103], t$95$6, If[LessEqual[y$46$im, 1.25e+104], t$95$8, If[LessEqual[y$46$im, 1.8e+143], N[(N[(t$95$4 - x$46$re), $MachinePrecision] / y$46$im), $MachinePrecision], If[LessEqual[y$46$im, 1.85e+143], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 1.3e+174], t$95$6, If[LessEqual[y$46$im, 1.25e+175], t$95$0, If[LessEqual[y$46$im, 4.7e+235], t$95$5, If[Or[LessEqual[y$46$im, 4.8e+235], And[N[Not[LessEqual[y$46$im, 1.9e+271]], $MachinePrecision], LessEqual[y$46$im, 1.95e+271]]], t$95$0, t$95$6]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\
t_1 := \frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\
t_2 := \frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im}\\
t_3 := \frac{y.im \cdot x.re}{y.re \cdot \left(-y.re\right) - y.im \cdot y.im}\\
t_4 := x.im \cdot \frac{y.re}{y.im}\\
t_5 := \frac{x.re}{-y.im}\\
t_6 := \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, t\_5\right)\\
t_7 := y.im \cdot \frac{x.re}{y.re}\\
t_8 := \frac{x.im - t\_7}{y.re}\\
\mathbf{if}\;y.im \leq -6.6 \cdot 10^{+96}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.im \leq -0.00036:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq -1.85 \cdot 10^{-35}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.im \leq -6.2 \cdot 10^{-39}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq -6 \cdot 10^{-39}:\\
\;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\

\mathbf{elif}\;y.im \leq -3.8 \cdot 10^{-81}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq -7.2 \cdot 10^{-95}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq -1.5 \cdot 10^{-95}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1.45 \cdot 10^{-95}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.im \leq -3.6 \cdot 10^{-133}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -3.5 \cdot 10^{-133}:\\
\;\;\;\;\frac{t\_4}{y.im}\\

\mathbf{elif}\;y.im \leq -1.6 \cdot 10^{-172}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-172}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.im \leq -4 \cdot 10^{-228}:\\
\;\;\;\;\frac{x.im}{y.re} - \frac{t\_7}{y.re}\\

\mathbf{elif}\;y.im \leq 2.55 \cdot 10^{-276}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 2.6 \cdot 10^{-276}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 1.2 \cdot 10^{-194}:\\
\;\;\;\;t\_8\\

\mathbf{elif}\;y.im \leq 1.25 \cdot 10^{-194}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.im \leq 4.2 \cdot 10^{-148}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq 2.2 \cdot 10^{-143}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 1.1 \cdot 10^{-85}:\\
\;\;\;\;t\_8\\

\mathbf{elif}\;y.im \leq 2.4 \cdot 10^{-85}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.im \leq 4.3 \cdot 10^{-52}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 5.2 \cdot 10^{-34}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.im \leq 190000000000:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 2.3 \cdot 10^{+17}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.im \leq 2.55 \cdot 10^{+18}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq 1.65 \cdot 10^{+21}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.im \leq 4.4 \cdot 10^{+21}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 1.15 \cdot 10^{+53}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.im \leq 6.2 \cdot 10^{+75}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq 2.8 \cdot 10^{+103}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.im \leq 1.25 \cdot 10^{+104}:\\
\;\;\;\;t\_8\\

\mathbf{elif}\;y.im \leq 1.8 \cdot 10^{+143}:\\
\;\;\;\;\frac{t\_4 - x.re}{y.im}\\

\mathbf{elif}\;y.im \leq 1.85 \cdot 10^{+143}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 1.3 \cdot 10^{+174}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.im \leq 1.25 \cdot 10^{+175}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq 4.7 \cdot 10^{+235}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.im \leq 4.8 \cdot 10^{+235} \lor \neg \left(y.im \leq 1.9 \cdot 10^{+271}\right) \land y.im \leq 1.95 \cdot 10^{+271}:\\
\;\;\;\;t\_0\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 12 regimes
  2. if y.im < -6.59999999999999969e96 or -3.60000000000000023e-4 < y.im < -1.8499999999999999e-35 or 4.4e21 < y.im < 1.1500000000000001e53 or 6.2000000000000002e75 < y.im < 2.80000000000000008e103 or 1.8500000000000001e143 < y.im < 1.2999999999999999e174 or 4.7999999999999998e235 < y.im < 1.8999999999999999e271 or 1.95e271 < y.im

    1. Initial program 46.6%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub46.6%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative46.6%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt46.6%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac47.0%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg47.0%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define47.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define65.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*72.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt72.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow272.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define72.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr72.5%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 99.9%

      \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{\frac{x.re}{y.im}}\right) \]

    if -6.59999999999999969e96 < y.im < -3.60000000000000023e-4 or -3.7999999999999999e-81 < y.im < -7.2e-95 or 1.1500000000000001e53 < y.im < 6.2000000000000002e75

    1. Initial program 84.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing

    if -1.8499999999999999e-35 < y.im < -6.1999999999999994e-39 or -6.00000000000000055e-39 < y.im < -3.7999999999999999e-81 or 1.2500000000000001e-194 < y.im < 4.2e-148 or 2.3e17 < y.im < 2.55e18 or 1.2999999999999999e174 < y.im < 1.25e175 or 4.6999999999999999e235 < y.im < 4.7999999999999998e235 or 1.8999999999999999e271 < y.im < 1.95e271

    1. Initial program 56.6%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around inf 89.2%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    4. Step-by-step derivation
      1. remove-double-neg89.2%

        \[\leadsto \frac{\color{blue}{\left(-\left(-x.im\right)\right)} + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      2. mul-1-neg89.2%

        \[\leadsto \frac{\left(-\color{blue}{-1 \cdot x.im}\right) + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      3. neg-mul-189.2%

        \[\leadsto \frac{\color{blue}{-1 \cdot \left(-1 \cdot x.im\right)} + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      4. distribute-lft-in89.2%

        \[\leadsto \frac{\color{blue}{-1 \cdot \left(-1 \cdot x.im + \frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      5. mul-1-neg89.2%

        \[\leadsto \frac{\color{blue}{-\left(-1 \cdot x.im + \frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      6. distribute-neg-in89.2%

        \[\leadsto \frac{\color{blue}{\left(--1 \cdot x.im\right) + \left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      7. mul-1-neg89.2%

        \[\leadsto \frac{\left(-\color{blue}{\left(-x.im\right)}\right) + \left(-\frac{x.re \cdot y.im}{y.re}\right)}{y.re} \]
      8. remove-double-neg89.2%

        \[\leadsto \frac{\color{blue}{x.im} + \left(-\frac{x.re \cdot y.im}{y.re}\right)}{y.re} \]
      9. unsub-neg89.2%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      10. associate-/l*100.0%

        \[\leadsto \frac{x.im - \color{blue}{x.re \cdot \frac{y.im}{y.re}}}{y.re} \]
    5. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}} \]

    if -6.1999999999999994e-39 < y.im < -6.00000000000000055e-39

    1. Initial program 98.4%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub98.4%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative98.4%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt98.4%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac100.0%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg100.0%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow2100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 100.0%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 100.0%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified100.0%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    11. Step-by-step derivation
      1. associate-/l*100.0%

        \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]
    12. Applied egg-rr100.0%

      \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]

    if -7.2e-95 < y.im < -1.5e-95 or -1.45000000000000001e-95 < y.im < -3.6000000000000004e-133 or 2.4000000000000001e-85 < y.im < 4.3000000000000003e-52 or 1.65e21 < y.im < 4.4e21 or 1.8e143 < y.im < 1.8500000000000001e143

    1. Initial program 48.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around inf 100.0%

      \[\leadsto \color{blue}{\frac{x.im}{y.re}} \]

    if -1.5e-95 < y.im < -1.45000000000000001e-95 or -1.6000000000000001e-172 < y.im < -1.5500000000000001e-172 or 1.2e-194 < y.im < 1.2500000000000001e-194 or 1.1e-85 < y.im < 2.4000000000000001e-85 or 4.3000000000000003e-52 < y.im < 5.1999999999999999e-34 or 1.9e11 < y.im < 2.3e17 or 2.55e18 < y.im < 1.65e21 or 1.25e175 < y.im < 4.6999999999999999e235

    1. Initial program 59.5%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around 0 100.0%

      \[\leadsto \color{blue}{-1 \cdot \frac{x.re}{y.im}} \]
    4. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \color{blue}{\frac{-1 \cdot x.re}{y.im}} \]
      2. neg-mul-1100.0%

        \[\leadsto \frac{\color{blue}{-x.re}}{y.im} \]
    5. Simplified100.0%

      \[\leadsto \color{blue}{\frac{-x.re}{y.im}} \]

    if -3.6000000000000004e-133 < y.im < -3.50000000000000003e-133

    1. Initial program 100.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub100.0%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative100.0%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt100.0%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac7.8%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg7.8%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define7.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define7.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*7.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt7.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow27.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define7.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr7.8%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 100.0%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 100.0%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified100.0%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]

    if -3.50000000000000003e-133 < y.im < -1.6000000000000001e-172 or -4.00000000000000013e-228 < y.im < 2.54999999999999984e-276 or 5.1999999999999999e-34 < y.im < 1.9e11

    1. Initial program 73.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub68.5%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative68.5%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt68.5%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac72.8%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg72.8%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define72.9%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define88.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*88.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt88.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow288.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define88.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr88.2%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 100.0%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg100.0%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg100.0%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative100.0%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]

    if -1.5500000000000001e-172 < y.im < -4.00000000000000013e-228

    1. Initial program 29.2%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub28.3%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative28.3%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt28.3%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac39.0%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg39.0%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define39.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define81.7%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*81.7%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt81.7%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow281.7%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define81.7%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr81.7%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 99.7%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg99.7%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg99.7%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative99.7%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified99.7%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]
    8. Step-by-step derivation
      1. div-sub99.8%

        \[\leadsto \color{blue}{\frac{x.im}{y.re} - \frac{\frac{y.im \cdot x.re}{y.re}}{y.re}} \]
      2. associate-/l*100.0%

        \[\leadsto \frac{x.im}{y.re} - \frac{\color{blue}{y.im \cdot \frac{x.re}{y.re}}}{y.re} \]
    9. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\frac{x.im}{y.re} - \frac{y.im \cdot \frac{x.re}{y.re}}{y.re}} \]

    if 2.54999999999999984e-276 < y.im < 2.59999999999999984e-276 or 4.2e-148 < y.im < 2.19999999999999989e-143

    1. Initial program 100.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in x.im around 0 100.0%

      \[\leadsto \frac{\color{blue}{-1 \cdot \left(x.re \cdot y.im\right)}}{y.re \cdot y.re + y.im \cdot y.im} \]
    4. Step-by-step derivation
      1. associate-*r*100.0%

        \[\leadsto \frac{\color{blue}{\left(-1 \cdot x.re\right) \cdot y.im}}{y.re \cdot y.re + y.im \cdot y.im} \]
      2. neg-mul-1100.0%

        \[\leadsto \frac{\color{blue}{\left(-x.re\right)} \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    5. Simplified100.0%

      \[\leadsto \frac{\color{blue}{\left(-x.re\right) \cdot y.im}}{y.re \cdot y.re + y.im \cdot y.im} \]

    if 2.59999999999999984e-276 < y.im < 1.2e-194 or 2.19999999999999989e-143 < y.im < 1.1e-85 or 2.80000000000000008e103 < y.im < 1.2499999999999999e104

    1. Initial program 59.8%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub55.1%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative55.1%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt55.1%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac55.7%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg55.7%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define55.7%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define86.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*86.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt86.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow286.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define86.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr86.8%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 91.0%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg91.0%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg91.0%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative91.0%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified91.0%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]
    8. Step-by-step derivation
      1. associate-/l*100.0%

        \[\leadsto \frac{x.im - \color{blue}{y.im \cdot \frac{x.re}{y.re}}}{y.re} \]
    9. Applied egg-rr100.0%

      \[\leadsto \frac{x.im - \color{blue}{y.im \cdot \frac{x.re}{y.re}}}{y.re} \]

    if 1.2499999999999999e104 < y.im < 1.8e143

    1. Initial program 57.2%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub57.2%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative57.2%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt57.2%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac67.8%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg67.8%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define67.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define67.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*99.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt99.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow299.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define99.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr99.5%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 89.4%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
  3. Recombined 12 regimes into one program.
  4. Final simplification98.0%

    \[\leadsto \begin{array}{l} \mathbf{if}\;y.im \leq -6.6 \cdot 10^{+96}:\\ \;\;\;\;\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.re}{-y.im}\right)\\ \mathbf{elif}\;y.im \leq -0.00036:\\ \;\;\;\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;y.im \leq -1.85 \cdot 10^{-35}:\\ \;\;\;\;\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.re}{-y.im}\right)\\ \mathbf{elif}\;y.im \leq -6.2 \cdot 10^{-39}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -6 \cdot 10^{-39}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq -3.8 \cdot 10^{-81}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -7.2 \cdot 10^{-95}:\\ \;\;\;\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;y.im \leq -1.5 \cdot 10^{-95}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.45 \cdot 10^{-95}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -3.6 \cdot 10^{-133}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -3.5 \cdot 10^{-133}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq -1.6 \cdot 10^{-172}:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-172}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -4 \cdot 10^{-228}:\\ \;\;\;\;\frac{x.im}{y.re} - \frac{y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 2.55 \cdot 10^{-276}:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 2.6 \cdot 10^{-276}:\\ \;\;\;\;\frac{y.im \cdot x.re}{y.re \cdot \left(-y.re\right) - y.im \cdot y.im}\\ \mathbf{elif}\;y.im \leq 1.2 \cdot 10^{-194}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{-194}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 4.2 \cdot 10^{-148}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 2.2 \cdot 10^{-143}:\\ \;\;\;\;\frac{y.im \cdot x.re}{y.re \cdot \left(-y.re\right) - y.im \cdot y.im}\\ \mathbf{elif}\;y.im \leq 1.1 \cdot 10^{-85}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 2.4 \cdot 10^{-85}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 4.3 \cdot 10^{-52}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 5.2 \cdot 10^{-34}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 190000000000:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 2.3 \cdot 10^{+17}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.55 \cdot 10^{+18}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.65 \cdot 10^{+21}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 4.4 \cdot 10^{+21}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.15 \cdot 10^{+53}:\\ \;\;\;\;\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.re}{-y.im}\right)\\ \mathbf{elif}\;y.im \leq 6.2 \cdot 10^{+75}:\\ \;\;\;\;\frac{y.re \cdot x.im - y.im \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;y.im \leq 2.8 \cdot 10^{+103}:\\ \;\;\;\;\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.re}{-y.im}\right)\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{+104}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.8 \cdot 10^{+143}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.im \leq 1.85 \cdot 10^{+143}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.3 \cdot 10^{+174}:\\ \;\;\;\;\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.re}{-y.im}\right)\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{+175}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 4.7 \cdot 10^{+235}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 4.8 \cdot 10^{+235} \lor \neg \left(y.im \leq 1.9 \cdot 10^{+271}\right) \land y.im \leq 1.95 \cdot 10^{+271}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.re}{-y.im}\right)\\ \end{array} \]
  5. Add Preprocessing

Alternative 7: 78.7% accurate, 0.0× speedup?

\[\begin{array}{l} \\ \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, x.re \cdot \frac{y.im}{-{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right) \end{array} \]
(FPCore (x.re x.im y.re y.im)
 :precision binary64
 (fma
  (/ y.re (hypot y.re y.im))
  (/ x.im (hypot y.re y.im))
  (* x.re (/ y.im (- (pow (hypot y.re y.im) 2.0))))))
double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	return fma((y_46_re / hypot(y_46_re, y_46_im)), (x_46_im / hypot(y_46_re, y_46_im)), (x_46_re * (y_46_im / -pow(hypot(y_46_re, y_46_im), 2.0))));
}
function code(x_46_re, x_46_im, y_46_re, y_46_im)
	return fma(Float64(y_46_re / hypot(y_46_re, y_46_im)), Float64(x_46_im / hypot(y_46_re, y_46_im)), Float64(x_46_re * Float64(y_46_im / Float64(-(hypot(y_46_re, y_46_im) ^ 2.0)))))
end
code[x$46$re_, x$46$im_, y$46$re_, y$46$im_] := N[(N[(y$46$re / N[Sqrt[y$46$re ^ 2 + y$46$im ^ 2], $MachinePrecision]), $MachinePrecision] * N[(x$46$im / N[Sqrt[y$46$re ^ 2 + y$46$im ^ 2], $MachinePrecision]), $MachinePrecision] + N[(x$46$re * N[(y$46$im / (-N[Power[N[Sqrt[y$46$re ^ 2 + y$46$im ^ 2], $MachinePrecision], 2.0], $MachinePrecision])), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, x.re \cdot \frac{y.im}{-{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)
\end{array}
Derivation
  1. Initial program 60.1%

    \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
  2. Add Preprocessing
  3. Step-by-step derivation
    1. div-sub58.4%

      \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
    2. *-commutative58.4%

      \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    3. add-sqr-sqrt58.4%

      \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    4. times-frac61.5%

      \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    5. fma-neg61.5%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
    6. hypot-define61.5%

      \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
    7. hypot-define78.2%

      \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
    8. associate-/l*81.9%

      \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
    9. add-sqr-sqrt81.9%

      \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
    10. pow281.9%

      \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
    11. hypot-define81.9%

      \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
  4. Applied egg-rr81.9%

    \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
  5. Final simplification81.9%

    \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, x.re \cdot \frac{y.im}{-{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right) \]
  6. Add Preprocessing

Alternative 8: 60.6% accurate, 0.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ t_1 := \frac{x.re}{-y.im}\\ t_2 := \frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\ \mathbf{if}\;y.im \leq -7 \cdot 10^{-34}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -1.3 \cdot 10^{-84}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.02 \cdot 10^{-84}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq -2.9 \cdot 10^{-86}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -1.44 \cdot 10^{-92}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.4 \cdot 10^{-92}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -1.85 \cdot 10^{-95}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.45 \cdot 10^{-95}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -3.6 \cdot 10^{-133}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.3 \cdot 10^{-134}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq -2.2 \cdot 10^{-135}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -2.5 \cdot 10^{-140}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -2.4 \cdot 10^{-140}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -4.4 \cdot 10^{-167}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -4.3 \cdot 10^{-167}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -1.6 \cdot 10^{-172}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.4 \cdot 10^{-172}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -2.35 \cdot 10^{-209}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -2.3 \cdot 10^{-209}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -1.05 \cdot 10^{-247}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1 \cdot 10^{-247}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -1.85 \cdot 10^{-255}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.8 \cdot 10^{-255}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -3.75 \cdot 10^{-289}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -3.7 \cdot 10^{-289}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{-304}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.3 \cdot 10^{-304}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 2.45 \cdot 10^{-294}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 8.2 \cdot 10^{-288}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{-263}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 6.2 \cdot 10^{-263}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.95 \cdot 10^{-250}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 8.8 \cdot 10^{-244}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.35 \cdot 10^{-243}:\\ \;\;\;\;\frac{\frac{y.re \cdot x.im}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq 1.2 \cdot 10^{-194}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 8 \cdot 10^{-185}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 2.1 \cdot 10^{-143}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 2.2 \cdot 10^{-143}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 2.9 \cdot 10^{-86}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 2.3 \cdot 10^{-85}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 3.8 \cdot 10^{-53}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{-34}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 10^{-20}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 5.7 \cdot 10^{-19}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.3 \cdot 10^{-13}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 3.7 \cdot 10^{-10}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 0.00086:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 0.0108:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 55000000000:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.35 \cdot 10^{+20}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 3.6 \cdot 10^{+22}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 3.7 \cdot 10^{+25}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 3.1 \cdot 10^{+29}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 2.8 \cdot 10^{+64}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 4.6 \cdot 10^{+72}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.32 \cdot 10^{+82}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 3 \cdot 10^{+84}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+91}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 2.9 \cdot 10^{+103}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq 1.9 \cdot 10^{+110}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 7 \cdot 10^{+125}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq 1.8 \cdot 10^{+143}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{+147}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+241}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+241}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+250}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 9.5 \cdot 10^{+250}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq 5.8 \cdot 10^{+297}:\\ \;\;\;\;t\_1\\ \mathbf{else}:\\ \;\;\;\;\frac{y.re}{y.im} \cdot \frac{x.im}{y.im}\\ \end{array} \end{array} \]
(FPCore (x.re x.im y.re y.im)
 :precision binary64
 (let* ((t_0 (* x.im (/ (/ y.re y.im) y.im)))
        (t_1 (/ x.re (- y.im)))
        (t_2 (/ (* x.im (/ y.re y.im)) y.im)))
   (if (<= y.im -7e-34)
     t_1
     (if (<= y.im -1.3e-84)
       (/ x.im y.re)
       (if (<= y.im -1.02e-84)
         t_0
         (if (<= y.im -2.9e-86)
           t_1
           (if (<= y.im -1.44e-92)
             (/ x.im y.re)
             (if (<= y.im -1.4e-92)
               t_1
               (if (<= y.im -1.85e-95)
                 (/ x.im y.re)
                 (if (<= y.im -1.45e-95)
                   t_1
                   (if (<= y.im -3.6e-133)
                     (/ x.im y.re)
                     (if (<= y.im -1.3e-134)
                       t_2
                       (if (<= y.im -2.2e-135)
                         t_1
                         (if (<= y.im -2.5e-140)
                           (/ x.im y.re)
                           (if (<= y.im -2.4e-140)
                             t_1
                             (if (<= y.im -4.4e-167)
                               (/ x.im y.re)
                               (if (<= y.im -4.3e-167)
                                 t_1
                                 (if (<= y.im -1.6e-172)
                                   (/ x.im y.re)
                                   (if (<= y.im -1.4e-172)
                                     t_1
                                     (if (<= y.im -2.35e-209)
                                       (/ x.im y.re)
                                       (if (<= y.im -2.3e-209)
                                         t_1
                                         (if (<= y.im -1.05e-247)
                                           (/ x.im y.re)
                                           (if (<= y.im -1e-247)
                                             t_1
                                             (if (<= y.im -1.85e-255)
                                               (/ x.im y.re)
                                               (if (<= y.im -1.8e-255)
                                                 t_1
                                                 (if (<= y.im -3.75e-289)
                                                   (/ x.im y.re)
                                                   (if (<= y.im -3.7e-289)
                                                     t_1
                                                     (if (<= y.im 1.25e-304)
                                                       (/ x.im y.re)
                                                       (if (<= y.im 1.3e-304)
                                                         t_1
                                                         (if (<=
                                                              y.im
                                                              2.45e-294)
                                                           (/ x.im y.re)
                                                           (if (<=
                                                                y.im
                                                                8.2e-288)
                                                             t_1
                                                             (if (<=
                                                                  y.im
                                                                  6e-263)
                                                               (/ x.im y.re)
                                                               (if (<=
                                                                    y.im
                                                                    6.2e-263)
                                                                 t_1
                                                                 (if (<=
                                                                      y.im
                                                                      1.95e-250)
                                                                   (/
                                                                    x.im
                                                                    y.re)
                                                                   (if (<=
                                                                        y.im
                                                                        8.8e-244)
                                                                     t_1
                                                                     (if (<=
                                                                          y.im
                                                                          1.35e-243)
                                                                       (/
                                                                        (/
                                                                         (*
                                                                          y.re
                                                                          x.im)
                                                                         y.im)
                                                                        y.im)
                                                                       (if (<=
                                                                            y.im
                                                                            1.2e-194)
                                                                         (/
                                                                          x.im
                                                                          y.re)
                                                                         (if (<=
                                                                              y.im
                                                                              8e-185)
                                                                           t_1
                                                                           (if (<=
                                                                                y.im
                                                                                2.1e-143)
                                                                             (/
                                                                              x.im
                                                                              y.re)
                                                                             (if (<=
                                                                                  y.im
                                                                                  2.2e-143)
                                                                               t_1
                                                                               (if (<=
                                                                                    y.im
                                                                                    2.9e-86)
                                                                                 (/
                                                                                  x.im
                                                                                  y.re)
                                                                                 (if (<=
                                                                                      y.im
                                                                                      2.3e-85)
                                                                                   t_1
                                                                                   (if (<=
                                                                                        y.im
                                                                                        3.8e-53)
                                                                                     (/
                                                                                      x.im
                                                                                      y.re)
                                                                                     (if (<=
                                                                                          y.im
                                                                                          6e-34)
                                                                                       t_1
                                                                                       (if (<=
                                                                                            y.im
                                                                                            1e-20)
                                                                                         (/
                                                                                          x.im
                                                                                          y.re)
                                                                                         (if (<=
                                                                                              y.im
                                                                                              5.7e-19)
                                                                                           t_1
                                                                                           (if (<=
                                                                                                y.im
                                                                                                1.3e-13)
                                                                                             (/
                                                                                              x.im
                                                                                              y.re)
                                                                                             (if (<=
                                                                                                  y.im
                                                                                                  3.7e-10)
                                                                                               t_1
                                                                                               (if (<=
                                                                                                    y.im
                                                                                                    0.00086)
                                                                                                 (/
                                                                                                  x.im
                                                                                                  y.re)
                                                                                                 (if (<=
                                                                                                      y.im
                                                                                                      0.0108)
                                                                                                   t_1
                                                                                                   (if (<=
                                                                                                        y.im
                                                                                                        55000000000.0)
                                                                                                     (/
                                                                                                      x.im
                                                                                                      y.re)
                                                                                                     (if (<=
                                                                                                          y.im
                                                                                                          1.35e+20)
                                                                                                       t_1
                                                                                                       (if (<=
                                                                                                            y.im
                                                                                                            3.6e+22)
                                                                                                         (/
                                                                                                          x.im
                                                                                                          y.re)
                                                                                                         (if (<=
                                                                                                              y.im
                                                                                                              3.7e+25)
                                                                                                           t_1
                                                                                                           (if (<=
                                                                                                                y.im
                                                                                                                3.1e+29)
                                                                                                             (/
                                                                                                              x.im
                                                                                                              y.re)
                                                                                                             (if (<=
                                                                                                                  y.im
                                                                                                                  2.8e+64)
                                                                                                               t_1
                                                                                                               (if (<=
                                                                                                                    y.im
                                                                                                                    4.6e+72)
                                                                                                                 (/
                                                                                                                  x.im
                                                                                                                  y.re)
                                                                                                                 (if (<=
                                                                                                                      y.im
                                                                                                                      1.32e+82)
                                                                                                                   t_1
                                                                                                                   (if (<=
                                                                                                                        y.im
                                                                                                                        3e+84)
                                                                                                                     (/
                                                                                                                      x.im
                                                                                                                      y.re)
                                                                                                                     (if (<=
                                                                                                                          y.im
                                                                                                                          7.5e+91)
                                                                                                                       t_1
                                                                                                                       (if (<=
                                                                                                                            y.im
                                                                                                                            2.9e+103)
                                                                                                                         t_2
                                                                                                                         (if (<=
                                                                                                                              y.im
                                                                                                                              1.9e+110)
                                                                                                                           t_1
                                                                                                                           (if (<=
                                                                                                                                y.im
                                                                                                                                7e+125)
                                                                                                                             t_0
                                                                                                                             (if (<=
                                                                                                                                  y.im
                                                                                                                                  1.8e+143)
                                                                                                                               t_1
                                                                                                                               (if (<=
                                                                                                                                    y.im
                                                                                                                                    6e+147)
                                                                                                                                 (/
                                                                                                                                  x.im
                                                                                                                                  y.re)
                                                                                                                                 (if (<=
                                                                                                                                      y.im
                                                                                                                                      7.5e+241)
                                                                                                                                   t_1
                                                                                                                                   (if (<=
                                                                                                                                        y.im
                                                                                                                                        7.8e+241)
                                                                                                                                     (/
                                                                                                                                      x.im
                                                                                                                                      y.re)
                                                                                                                                     (if (<=
                                                                                                                                          y.im
                                                                                                                                          7.5e+250)
                                                                                                                                       t_1
                                                                                                                                       (if (<=
                                                                                                                                            y.im
                                                                                                                                            9.5e+250)
                                                                                                                                         t_0
                                                                                                                                         (if (<=
                                                                                                                                              y.im
                                                                                                                                              5.8e+297)
                                                                                                                                           t_1
                                                                                                                                           (*
                                                                                                                                            (/
                                                                                                                                             y.re
                                                                                                                                             y.im)
                                                                                                                                            (/
                                                                                                                                             x.im
                                                                                                                                             y.im))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double t_0 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	double t_1 = x_46_re / -y_46_im;
	double t_2 = (x_46_im * (y_46_re / y_46_im)) / y_46_im;
	double tmp;
	if (y_46_im <= -7e-34) {
		tmp = t_1;
	} else if (y_46_im <= -1.3e-84) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.02e-84) {
		tmp = t_0;
	} else if (y_46_im <= -2.9e-86) {
		tmp = t_1;
	} else if (y_46_im <= -1.44e-92) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.4e-92) {
		tmp = t_1;
	} else if (y_46_im <= -1.85e-95) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.45e-95) {
		tmp = t_1;
	} else if (y_46_im <= -3.6e-133) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.3e-134) {
		tmp = t_2;
	} else if (y_46_im <= -2.2e-135) {
		tmp = t_1;
	} else if (y_46_im <= -2.5e-140) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -2.4e-140) {
		tmp = t_1;
	} else if (y_46_im <= -4.4e-167) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -4.3e-167) {
		tmp = t_1;
	} else if (y_46_im <= -1.6e-172) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.4e-172) {
		tmp = t_1;
	} else if (y_46_im <= -2.35e-209) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -2.3e-209) {
		tmp = t_1;
	} else if (y_46_im <= -1.05e-247) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1e-247) {
		tmp = t_1;
	} else if (y_46_im <= -1.85e-255) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.8e-255) {
		tmp = t_1;
	} else if (y_46_im <= -3.75e-289) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -3.7e-289) {
		tmp = t_1;
	} else if (y_46_im <= 1.25e-304) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.3e-304) {
		tmp = t_1;
	} else if (y_46_im <= 2.45e-294) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 8.2e-288) {
		tmp = t_1;
	} else if (y_46_im <= 6e-263) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 6.2e-263) {
		tmp = t_1;
	} else if (y_46_im <= 1.95e-250) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 8.8e-244) {
		tmp = t_1;
	} else if (y_46_im <= 1.35e-243) {
		tmp = ((y_46_re * x_46_im) / y_46_im) / y_46_im;
	} else if (y_46_im <= 1.2e-194) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 8e-185) {
		tmp = t_1;
	} else if (y_46_im <= 2.1e-143) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 2.2e-143) {
		tmp = t_1;
	} else if (y_46_im <= 2.9e-86) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 2.3e-85) {
		tmp = t_1;
	} else if (y_46_im <= 3.8e-53) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 6e-34) {
		tmp = t_1;
	} else if (y_46_im <= 1e-20) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 5.7e-19) {
		tmp = t_1;
	} else if (y_46_im <= 1.3e-13) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 3.7e-10) {
		tmp = t_1;
	} else if (y_46_im <= 0.00086) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 0.0108) {
		tmp = t_1;
	} else if (y_46_im <= 55000000000.0) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.35e+20) {
		tmp = t_1;
	} else if (y_46_im <= 3.6e+22) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 3.7e+25) {
		tmp = t_1;
	} else if (y_46_im <= 3.1e+29) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 2.8e+64) {
		tmp = t_1;
	} else if (y_46_im <= 4.6e+72) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.32e+82) {
		tmp = t_1;
	} else if (y_46_im <= 3e+84) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 7.5e+91) {
		tmp = t_1;
	} else if (y_46_im <= 2.9e+103) {
		tmp = t_2;
	} else if (y_46_im <= 1.9e+110) {
		tmp = t_1;
	} else if (y_46_im <= 7e+125) {
		tmp = t_0;
	} else if (y_46_im <= 1.8e+143) {
		tmp = t_1;
	} else if (y_46_im <= 6e+147) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 7.5e+241) {
		tmp = t_1;
	} else if (y_46_im <= 7.8e+241) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 7.5e+250) {
		tmp = t_1;
	} else if (y_46_im <= 9.5e+250) {
		tmp = t_0;
	} else if (y_46_im <= 5.8e+297) {
		tmp = t_1;
	} else {
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im);
	}
	return tmp;
}
real(8) function code(x_46re, x_46im, y_46re, y_46im)
    real(8), intent (in) :: x_46re
    real(8), intent (in) :: x_46im
    real(8), intent (in) :: y_46re
    real(8), intent (in) :: y_46im
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: t_2
    real(8) :: tmp
    t_0 = x_46im * ((y_46re / y_46im) / y_46im)
    t_1 = x_46re / -y_46im
    t_2 = (x_46im * (y_46re / y_46im)) / y_46im
    if (y_46im <= (-7d-34)) then
        tmp = t_1
    else if (y_46im <= (-1.3d-84)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1.02d-84)) then
        tmp = t_0
    else if (y_46im <= (-2.9d-86)) then
        tmp = t_1
    else if (y_46im <= (-1.44d-92)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1.4d-92)) then
        tmp = t_1
    else if (y_46im <= (-1.85d-95)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1.45d-95)) then
        tmp = t_1
    else if (y_46im <= (-3.6d-133)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1.3d-134)) then
        tmp = t_2
    else if (y_46im <= (-2.2d-135)) then
        tmp = t_1
    else if (y_46im <= (-2.5d-140)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-2.4d-140)) then
        tmp = t_1
    else if (y_46im <= (-4.4d-167)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-4.3d-167)) then
        tmp = t_1
    else if (y_46im <= (-1.6d-172)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1.4d-172)) then
        tmp = t_1
    else if (y_46im <= (-2.35d-209)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-2.3d-209)) then
        tmp = t_1
    else if (y_46im <= (-1.05d-247)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1d-247)) then
        tmp = t_1
    else if (y_46im <= (-1.85d-255)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1.8d-255)) then
        tmp = t_1
    else if (y_46im <= (-3.75d-289)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-3.7d-289)) then
        tmp = t_1
    else if (y_46im <= 1.25d-304) then
        tmp = x_46im / y_46re
    else if (y_46im <= 1.3d-304) then
        tmp = t_1
    else if (y_46im <= 2.45d-294) then
        tmp = x_46im / y_46re
    else if (y_46im <= 8.2d-288) then
        tmp = t_1
    else if (y_46im <= 6d-263) then
        tmp = x_46im / y_46re
    else if (y_46im <= 6.2d-263) then
        tmp = t_1
    else if (y_46im <= 1.95d-250) then
        tmp = x_46im / y_46re
    else if (y_46im <= 8.8d-244) then
        tmp = t_1
    else if (y_46im <= 1.35d-243) then
        tmp = ((y_46re * x_46im) / y_46im) / y_46im
    else if (y_46im <= 1.2d-194) then
        tmp = x_46im / y_46re
    else if (y_46im <= 8d-185) then
        tmp = t_1
    else if (y_46im <= 2.1d-143) then
        tmp = x_46im / y_46re
    else if (y_46im <= 2.2d-143) then
        tmp = t_1
    else if (y_46im <= 2.9d-86) then
        tmp = x_46im / y_46re
    else if (y_46im <= 2.3d-85) then
        tmp = t_1
    else if (y_46im <= 3.8d-53) then
        tmp = x_46im / y_46re
    else if (y_46im <= 6d-34) then
        tmp = t_1
    else if (y_46im <= 1d-20) then
        tmp = x_46im / y_46re
    else if (y_46im <= 5.7d-19) then
        tmp = t_1
    else if (y_46im <= 1.3d-13) then
        tmp = x_46im / y_46re
    else if (y_46im <= 3.7d-10) then
        tmp = t_1
    else if (y_46im <= 0.00086d0) then
        tmp = x_46im / y_46re
    else if (y_46im <= 0.0108d0) then
        tmp = t_1
    else if (y_46im <= 55000000000.0d0) then
        tmp = x_46im / y_46re
    else if (y_46im <= 1.35d+20) then
        tmp = t_1
    else if (y_46im <= 3.6d+22) then
        tmp = x_46im / y_46re
    else if (y_46im <= 3.7d+25) then
        tmp = t_1
    else if (y_46im <= 3.1d+29) then
        tmp = x_46im / y_46re
    else if (y_46im <= 2.8d+64) then
        tmp = t_1
    else if (y_46im <= 4.6d+72) then
        tmp = x_46im / y_46re
    else if (y_46im <= 1.32d+82) then
        tmp = t_1
    else if (y_46im <= 3d+84) then
        tmp = x_46im / y_46re
    else if (y_46im <= 7.5d+91) then
        tmp = t_1
    else if (y_46im <= 2.9d+103) then
        tmp = t_2
    else if (y_46im <= 1.9d+110) then
        tmp = t_1
    else if (y_46im <= 7d+125) then
        tmp = t_0
    else if (y_46im <= 1.8d+143) then
        tmp = t_1
    else if (y_46im <= 6d+147) then
        tmp = x_46im / y_46re
    else if (y_46im <= 7.5d+241) then
        tmp = t_1
    else if (y_46im <= 7.8d+241) then
        tmp = x_46im / y_46re
    else if (y_46im <= 7.5d+250) then
        tmp = t_1
    else if (y_46im <= 9.5d+250) then
        tmp = t_0
    else if (y_46im <= 5.8d+297) then
        tmp = t_1
    else
        tmp = (y_46re / y_46im) * (x_46im / y_46im)
    end if
    code = tmp
end function
public static double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double t_0 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	double t_1 = x_46_re / -y_46_im;
	double t_2 = (x_46_im * (y_46_re / y_46_im)) / y_46_im;
	double tmp;
	if (y_46_im <= -7e-34) {
		tmp = t_1;
	} else if (y_46_im <= -1.3e-84) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.02e-84) {
		tmp = t_0;
	} else if (y_46_im <= -2.9e-86) {
		tmp = t_1;
	} else if (y_46_im <= -1.44e-92) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.4e-92) {
		tmp = t_1;
	} else if (y_46_im <= -1.85e-95) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.45e-95) {
		tmp = t_1;
	} else if (y_46_im <= -3.6e-133) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.3e-134) {
		tmp = t_2;
	} else if (y_46_im <= -2.2e-135) {
		tmp = t_1;
	} else if (y_46_im <= -2.5e-140) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -2.4e-140) {
		tmp = t_1;
	} else if (y_46_im <= -4.4e-167) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -4.3e-167) {
		tmp = t_1;
	} else if (y_46_im <= -1.6e-172) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.4e-172) {
		tmp = t_1;
	} else if (y_46_im <= -2.35e-209) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -2.3e-209) {
		tmp = t_1;
	} else if (y_46_im <= -1.05e-247) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1e-247) {
		tmp = t_1;
	} else if (y_46_im <= -1.85e-255) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.8e-255) {
		tmp = t_1;
	} else if (y_46_im <= -3.75e-289) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -3.7e-289) {
		tmp = t_1;
	} else if (y_46_im <= 1.25e-304) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.3e-304) {
		tmp = t_1;
	} else if (y_46_im <= 2.45e-294) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 8.2e-288) {
		tmp = t_1;
	} else if (y_46_im <= 6e-263) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 6.2e-263) {
		tmp = t_1;
	} else if (y_46_im <= 1.95e-250) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 8.8e-244) {
		tmp = t_1;
	} else if (y_46_im <= 1.35e-243) {
		tmp = ((y_46_re * x_46_im) / y_46_im) / y_46_im;
	} else if (y_46_im <= 1.2e-194) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 8e-185) {
		tmp = t_1;
	} else if (y_46_im <= 2.1e-143) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 2.2e-143) {
		tmp = t_1;
	} else if (y_46_im <= 2.9e-86) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 2.3e-85) {
		tmp = t_1;
	} else if (y_46_im <= 3.8e-53) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 6e-34) {
		tmp = t_1;
	} else if (y_46_im <= 1e-20) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 5.7e-19) {
		tmp = t_1;
	} else if (y_46_im <= 1.3e-13) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 3.7e-10) {
		tmp = t_1;
	} else if (y_46_im <= 0.00086) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 0.0108) {
		tmp = t_1;
	} else if (y_46_im <= 55000000000.0) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.35e+20) {
		tmp = t_1;
	} else if (y_46_im <= 3.6e+22) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 3.7e+25) {
		tmp = t_1;
	} else if (y_46_im <= 3.1e+29) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 2.8e+64) {
		tmp = t_1;
	} else if (y_46_im <= 4.6e+72) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.32e+82) {
		tmp = t_1;
	} else if (y_46_im <= 3e+84) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 7.5e+91) {
		tmp = t_1;
	} else if (y_46_im <= 2.9e+103) {
		tmp = t_2;
	} else if (y_46_im <= 1.9e+110) {
		tmp = t_1;
	} else if (y_46_im <= 7e+125) {
		tmp = t_0;
	} else if (y_46_im <= 1.8e+143) {
		tmp = t_1;
	} else if (y_46_im <= 6e+147) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 7.5e+241) {
		tmp = t_1;
	} else if (y_46_im <= 7.8e+241) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 7.5e+250) {
		tmp = t_1;
	} else if (y_46_im <= 9.5e+250) {
		tmp = t_0;
	} else if (y_46_im <= 5.8e+297) {
		tmp = t_1;
	} else {
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im);
	}
	return tmp;
}
def code(x_46_re, x_46_im, y_46_re, y_46_im):
	t_0 = x_46_im * ((y_46_re / y_46_im) / y_46_im)
	t_1 = x_46_re / -y_46_im
	t_2 = (x_46_im * (y_46_re / y_46_im)) / y_46_im
	tmp = 0
	if y_46_im <= -7e-34:
		tmp = t_1
	elif y_46_im <= -1.3e-84:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1.02e-84:
		tmp = t_0
	elif y_46_im <= -2.9e-86:
		tmp = t_1
	elif y_46_im <= -1.44e-92:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1.4e-92:
		tmp = t_1
	elif y_46_im <= -1.85e-95:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1.45e-95:
		tmp = t_1
	elif y_46_im <= -3.6e-133:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1.3e-134:
		tmp = t_2
	elif y_46_im <= -2.2e-135:
		tmp = t_1
	elif y_46_im <= -2.5e-140:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -2.4e-140:
		tmp = t_1
	elif y_46_im <= -4.4e-167:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -4.3e-167:
		tmp = t_1
	elif y_46_im <= -1.6e-172:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1.4e-172:
		tmp = t_1
	elif y_46_im <= -2.35e-209:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -2.3e-209:
		tmp = t_1
	elif y_46_im <= -1.05e-247:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1e-247:
		tmp = t_1
	elif y_46_im <= -1.85e-255:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1.8e-255:
		tmp = t_1
	elif y_46_im <= -3.75e-289:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -3.7e-289:
		tmp = t_1
	elif y_46_im <= 1.25e-304:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 1.3e-304:
		tmp = t_1
	elif y_46_im <= 2.45e-294:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 8.2e-288:
		tmp = t_1
	elif y_46_im <= 6e-263:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 6.2e-263:
		tmp = t_1
	elif y_46_im <= 1.95e-250:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 8.8e-244:
		tmp = t_1
	elif y_46_im <= 1.35e-243:
		tmp = ((y_46_re * x_46_im) / y_46_im) / y_46_im
	elif y_46_im <= 1.2e-194:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 8e-185:
		tmp = t_1
	elif y_46_im <= 2.1e-143:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 2.2e-143:
		tmp = t_1
	elif y_46_im <= 2.9e-86:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 2.3e-85:
		tmp = t_1
	elif y_46_im <= 3.8e-53:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 6e-34:
		tmp = t_1
	elif y_46_im <= 1e-20:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 5.7e-19:
		tmp = t_1
	elif y_46_im <= 1.3e-13:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 3.7e-10:
		tmp = t_1
	elif y_46_im <= 0.00086:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 0.0108:
		tmp = t_1
	elif y_46_im <= 55000000000.0:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 1.35e+20:
		tmp = t_1
	elif y_46_im <= 3.6e+22:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 3.7e+25:
		tmp = t_1
	elif y_46_im <= 3.1e+29:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 2.8e+64:
		tmp = t_1
	elif y_46_im <= 4.6e+72:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 1.32e+82:
		tmp = t_1
	elif y_46_im <= 3e+84:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 7.5e+91:
		tmp = t_1
	elif y_46_im <= 2.9e+103:
		tmp = t_2
	elif y_46_im <= 1.9e+110:
		tmp = t_1
	elif y_46_im <= 7e+125:
		tmp = t_0
	elif y_46_im <= 1.8e+143:
		tmp = t_1
	elif y_46_im <= 6e+147:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 7.5e+241:
		tmp = t_1
	elif y_46_im <= 7.8e+241:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 7.5e+250:
		tmp = t_1
	elif y_46_im <= 9.5e+250:
		tmp = t_0
	elif y_46_im <= 5.8e+297:
		tmp = t_1
	else:
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im)
	return tmp
function code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = Float64(x_46_im * Float64(Float64(y_46_re / y_46_im) / y_46_im))
	t_1 = Float64(x_46_re / Float64(-y_46_im))
	t_2 = Float64(Float64(x_46_im * Float64(y_46_re / y_46_im)) / y_46_im)
	tmp = 0.0
	if (y_46_im <= -7e-34)
		tmp = t_1;
	elseif (y_46_im <= -1.3e-84)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1.02e-84)
		tmp = t_0;
	elseif (y_46_im <= -2.9e-86)
		tmp = t_1;
	elseif (y_46_im <= -1.44e-92)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1.4e-92)
		tmp = t_1;
	elseif (y_46_im <= -1.85e-95)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1.45e-95)
		tmp = t_1;
	elseif (y_46_im <= -3.6e-133)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1.3e-134)
		tmp = t_2;
	elseif (y_46_im <= -2.2e-135)
		tmp = t_1;
	elseif (y_46_im <= -2.5e-140)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -2.4e-140)
		tmp = t_1;
	elseif (y_46_im <= -4.4e-167)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -4.3e-167)
		tmp = t_1;
	elseif (y_46_im <= -1.6e-172)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1.4e-172)
		tmp = t_1;
	elseif (y_46_im <= -2.35e-209)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -2.3e-209)
		tmp = t_1;
	elseif (y_46_im <= -1.05e-247)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1e-247)
		tmp = t_1;
	elseif (y_46_im <= -1.85e-255)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1.8e-255)
		tmp = t_1;
	elseif (y_46_im <= -3.75e-289)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -3.7e-289)
		tmp = t_1;
	elseif (y_46_im <= 1.25e-304)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 1.3e-304)
		tmp = t_1;
	elseif (y_46_im <= 2.45e-294)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 8.2e-288)
		tmp = t_1;
	elseif (y_46_im <= 6e-263)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 6.2e-263)
		tmp = t_1;
	elseif (y_46_im <= 1.95e-250)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 8.8e-244)
		tmp = t_1;
	elseif (y_46_im <= 1.35e-243)
		tmp = Float64(Float64(Float64(y_46_re * x_46_im) / y_46_im) / y_46_im);
	elseif (y_46_im <= 1.2e-194)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 8e-185)
		tmp = t_1;
	elseif (y_46_im <= 2.1e-143)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 2.2e-143)
		tmp = t_1;
	elseif (y_46_im <= 2.9e-86)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 2.3e-85)
		tmp = t_1;
	elseif (y_46_im <= 3.8e-53)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 6e-34)
		tmp = t_1;
	elseif (y_46_im <= 1e-20)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 5.7e-19)
		tmp = t_1;
	elseif (y_46_im <= 1.3e-13)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 3.7e-10)
		tmp = t_1;
	elseif (y_46_im <= 0.00086)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 0.0108)
		tmp = t_1;
	elseif (y_46_im <= 55000000000.0)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 1.35e+20)
		tmp = t_1;
	elseif (y_46_im <= 3.6e+22)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 3.7e+25)
		tmp = t_1;
	elseif (y_46_im <= 3.1e+29)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 2.8e+64)
		tmp = t_1;
	elseif (y_46_im <= 4.6e+72)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 1.32e+82)
		tmp = t_1;
	elseif (y_46_im <= 3e+84)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 7.5e+91)
		tmp = t_1;
	elseif (y_46_im <= 2.9e+103)
		tmp = t_2;
	elseif (y_46_im <= 1.9e+110)
		tmp = t_1;
	elseif (y_46_im <= 7e+125)
		tmp = t_0;
	elseif (y_46_im <= 1.8e+143)
		tmp = t_1;
	elseif (y_46_im <= 6e+147)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 7.5e+241)
		tmp = t_1;
	elseif (y_46_im <= 7.8e+241)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 7.5e+250)
		tmp = t_1;
	elseif (y_46_im <= 9.5e+250)
		tmp = t_0;
	elseif (y_46_im <= 5.8e+297)
		tmp = t_1;
	else
		tmp = Float64(Float64(y_46_re / y_46_im) * Float64(x_46_im / y_46_im));
	end
	return tmp
end
function tmp_2 = code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	t_1 = x_46_re / -y_46_im;
	t_2 = (x_46_im * (y_46_re / y_46_im)) / y_46_im;
	tmp = 0.0;
	if (y_46_im <= -7e-34)
		tmp = t_1;
	elseif (y_46_im <= -1.3e-84)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1.02e-84)
		tmp = t_0;
	elseif (y_46_im <= -2.9e-86)
		tmp = t_1;
	elseif (y_46_im <= -1.44e-92)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1.4e-92)
		tmp = t_1;
	elseif (y_46_im <= -1.85e-95)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1.45e-95)
		tmp = t_1;
	elseif (y_46_im <= -3.6e-133)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1.3e-134)
		tmp = t_2;
	elseif (y_46_im <= -2.2e-135)
		tmp = t_1;
	elseif (y_46_im <= -2.5e-140)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -2.4e-140)
		tmp = t_1;
	elseif (y_46_im <= -4.4e-167)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -4.3e-167)
		tmp = t_1;
	elseif (y_46_im <= -1.6e-172)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1.4e-172)
		tmp = t_1;
	elseif (y_46_im <= -2.35e-209)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -2.3e-209)
		tmp = t_1;
	elseif (y_46_im <= -1.05e-247)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1e-247)
		tmp = t_1;
	elseif (y_46_im <= -1.85e-255)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1.8e-255)
		tmp = t_1;
	elseif (y_46_im <= -3.75e-289)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -3.7e-289)
		tmp = t_1;
	elseif (y_46_im <= 1.25e-304)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 1.3e-304)
		tmp = t_1;
	elseif (y_46_im <= 2.45e-294)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 8.2e-288)
		tmp = t_1;
	elseif (y_46_im <= 6e-263)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 6.2e-263)
		tmp = t_1;
	elseif (y_46_im <= 1.95e-250)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 8.8e-244)
		tmp = t_1;
	elseif (y_46_im <= 1.35e-243)
		tmp = ((y_46_re * x_46_im) / y_46_im) / y_46_im;
	elseif (y_46_im <= 1.2e-194)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 8e-185)
		tmp = t_1;
	elseif (y_46_im <= 2.1e-143)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 2.2e-143)
		tmp = t_1;
	elseif (y_46_im <= 2.9e-86)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 2.3e-85)
		tmp = t_1;
	elseif (y_46_im <= 3.8e-53)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 6e-34)
		tmp = t_1;
	elseif (y_46_im <= 1e-20)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 5.7e-19)
		tmp = t_1;
	elseif (y_46_im <= 1.3e-13)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 3.7e-10)
		tmp = t_1;
	elseif (y_46_im <= 0.00086)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 0.0108)
		tmp = t_1;
	elseif (y_46_im <= 55000000000.0)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 1.35e+20)
		tmp = t_1;
	elseif (y_46_im <= 3.6e+22)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 3.7e+25)
		tmp = t_1;
	elseif (y_46_im <= 3.1e+29)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 2.8e+64)
		tmp = t_1;
	elseif (y_46_im <= 4.6e+72)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 1.32e+82)
		tmp = t_1;
	elseif (y_46_im <= 3e+84)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 7.5e+91)
		tmp = t_1;
	elseif (y_46_im <= 2.9e+103)
		tmp = t_2;
	elseif (y_46_im <= 1.9e+110)
		tmp = t_1;
	elseif (y_46_im <= 7e+125)
		tmp = t_0;
	elseif (y_46_im <= 1.8e+143)
		tmp = t_1;
	elseif (y_46_im <= 6e+147)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 7.5e+241)
		tmp = t_1;
	elseif (y_46_im <= 7.8e+241)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 7.5e+250)
		tmp = t_1;
	elseif (y_46_im <= 9.5e+250)
		tmp = t_0;
	elseif (y_46_im <= 5.8e+297)
		tmp = t_1;
	else
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im);
	end
	tmp_2 = tmp;
end
code[x$46$re_, x$46$im_, y$46$re_, y$46$im_] := Block[{t$95$0 = N[(x$46$im * N[(N[(y$46$re / y$46$im), $MachinePrecision] / y$46$im), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(x$46$re / (-y$46$im)), $MachinePrecision]}, Block[{t$95$2 = N[(N[(x$46$im * N[(y$46$re / y$46$im), $MachinePrecision]), $MachinePrecision] / y$46$im), $MachinePrecision]}, If[LessEqual[y$46$im, -7e-34], t$95$1, If[LessEqual[y$46$im, -1.3e-84], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1.02e-84], t$95$0, If[LessEqual[y$46$im, -2.9e-86], t$95$1, If[LessEqual[y$46$im, -1.44e-92], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1.4e-92], t$95$1, If[LessEqual[y$46$im, -1.85e-95], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1.45e-95], t$95$1, If[LessEqual[y$46$im, -3.6e-133], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1.3e-134], t$95$2, If[LessEqual[y$46$im, -2.2e-135], t$95$1, If[LessEqual[y$46$im, -2.5e-140], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -2.4e-140], t$95$1, If[LessEqual[y$46$im, -4.4e-167], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -4.3e-167], t$95$1, If[LessEqual[y$46$im, -1.6e-172], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1.4e-172], t$95$1, If[LessEqual[y$46$im, -2.35e-209], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -2.3e-209], t$95$1, If[LessEqual[y$46$im, -1.05e-247], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1e-247], t$95$1, If[LessEqual[y$46$im, -1.85e-255], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1.8e-255], t$95$1, If[LessEqual[y$46$im, -3.75e-289], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -3.7e-289], t$95$1, If[LessEqual[y$46$im, 1.25e-304], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 1.3e-304], t$95$1, If[LessEqual[y$46$im, 2.45e-294], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 8.2e-288], t$95$1, If[LessEqual[y$46$im, 6e-263], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 6.2e-263], t$95$1, If[LessEqual[y$46$im, 1.95e-250], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 8.8e-244], t$95$1, If[LessEqual[y$46$im, 1.35e-243], N[(N[(N[(y$46$re * x$46$im), $MachinePrecision] / y$46$im), $MachinePrecision] / y$46$im), $MachinePrecision], If[LessEqual[y$46$im, 1.2e-194], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 8e-185], t$95$1, If[LessEqual[y$46$im, 2.1e-143], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 2.2e-143], t$95$1, If[LessEqual[y$46$im, 2.9e-86], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 2.3e-85], t$95$1, If[LessEqual[y$46$im, 3.8e-53], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 6e-34], t$95$1, If[LessEqual[y$46$im, 1e-20], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 5.7e-19], t$95$1, If[LessEqual[y$46$im, 1.3e-13], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 3.7e-10], t$95$1, If[LessEqual[y$46$im, 0.00086], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 0.0108], t$95$1, If[LessEqual[y$46$im, 55000000000.0], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 1.35e+20], t$95$1, If[LessEqual[y$46$im, 3.6e+22], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 3.7e+25], t$95$1, If[LessEqual[y$46$im, 3.1e+29], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 2.8e+64], t$95$1, If[LessEqual[y$46$im, 4.6e+72], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 1.32e+82], t$95$1, If[LessEqual[y$46$im, 3e+84], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 7.5e+91], t$95$1, If[LessEqual[y$46$im, 2.9e+103], t$95$2, If[LessEqual[y$46$im, 1.9e+110], t$95$1, If[LessEqual[y$46$im, 7e+125], t$95$0, If[LessEqual[y$46$im, 1.8e+143], t$95$1, If[LessEqual[y$46$im, 6e+147], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 7.5e+241], t$95$1, If[LessEqual[y$46$im, 7.8e+241], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 7.5e+250], t$95$1, If[LessEqual[y$46$im, 9.5e+250], t$95$0, If[LessEqual[y$46$im, 5.8e+297], t$95$1, N[(N[(y$46$re / y$46$im), $MachinePrecision] * N[(x$46$im / y$46$im), $MachinePrecision]), $MachinePrecision]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\
t_1 := \frac{x.re}{-y.im}\\
t_2 := \frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\
\mathbf{if}\;y.im \leq -7 \cdot 10^{-34}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -1.3 \cdot 10^{-84}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1.02 \cdot 10^{-84}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq -2.9 \cdot 10^{-86}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -1.44 \cdot 10^{-92}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1.4 \cdot 10^{-92}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -1.85 \cdot 10^{-95}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1.45 \cdot 10^{-95}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -3.6 \cdot 10^{-133}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1.3 \cdot 10^{-134}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq -2.2 \cdot 10^{-135}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -2.5 \cdot 10^{-140}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -2.4 \cdot 10^{-140}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -4.4 \cdot 10^{-167}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -4.3 \cdot 10^{-167}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -1.6 \cdot 10^{-172}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1.4 \cdot 10^{-172}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -2.35 \cdot 10^{-209}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -2.3 \cdot 10^{-209}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -1.05 \cdot 10^{-247}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1 \cdot 10^{-247}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -1.85 \cdot 10^{-255}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1.8 \cdot 10^{-255}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -3.75 \cdot 10^{-289}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -3.7 \cdot 10^{-289}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.25 \cdot 10^{-304}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 1.3 \cdot 10^{-304}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 2.45 \cdot 10^{-294}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 8.2 \cdot 10^{-288}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 6 \cdot 10^{-263}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 6.2 \cdot 10^{-263}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.95 \cdot 10^{-250}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 8.8 \cdot 10^{-244}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.35 \cdot 10^{-243}:\\
\;\;\;\;\frac{\frac{y.re \cdot x.im}{y.im}}{y.im}\\

\mathbf{elif}\;y.im \leq 1.2 \cdot 10^{-194}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 8 \cdot 10^{-185}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 2.1 \cdot 10^{-143}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 2.2 \cdot 10^{-143}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 2.9 \cdot 10^{-86}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 2.3 \cdot 10^{-85}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 3.8 \cdot 10^{-53}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 6 \cdot 10^{-34}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 10^{-20}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 5.7 \cdot 10^{-19}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.3 \cdot 10^{-13}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 3.7 \cdot 10^{-10}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 0.00086:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 0.0108:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 55000000000:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 1.35 \cdot 10^{+20}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 3.6 \cdot 10^{+22}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 3.7 \cdot 10^{+25}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 3.1 \cdot 10^{+29}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 2.8 \cdot 10^{+64}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 4.6 \cdot 10^{+72}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 1.32 \cdot 10^{+82}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 3 \cdot 10^{+84}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+91}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 2.9 \cdot 10^{+103}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq 1.9 \cdot 10^{+110}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 7 \cdot 10^{+125}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq 1.8 \cdot 10^{+143}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 6 \cdot 10^{+147}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+241}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+241}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+250}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 9.5 \cdot 10^{+250}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq 5.8 \cdot 10^{+297}:\\
\;\;\;\;t\_1\\

\mathbf{else}:\\
\;\;\;\;\frac{y.re}{y.im} \cdot \frac{x.im}{y.im}\\


\end{array}
\end{array}
Derivation
  1. Split input into 6 regimes
  2. if y.im < -7e-34 or -1.02000000000000004e-84 < y.im < -2.8999999999999999e-86 or -1.4400000000000001e-92 < y.im < -1.4e-92 or -1.84999999999999997e-95 < y.im < -1.45000000000000001e-95 or -1.30000000000000011e-134 < y.im < -2.2e-135 or -2.50000000000000007e-140 < y.im < -2.39999999999999987e-140 or -4.3999999999999999e-167 < y.im < -4.2999999999999998e-167 or -1.6000000000000001e-172 < y.im < -1.40000000000000006e-172 or -2.35e-209 < y.im < -2.3e-209 or -1.05000000000000007e-247 < y.im < -1e-247 or -1.8500000000000001e-255 < y.im < -1.8000000000000001e-255 or -3.74999999999999999e-289 < y.im < -3.69999999999999989e-289 or 1.24999999999999991e-304 < y.im < 1.29999999999999998e-304 or 2.4499999999999999e-294 < y.im < 8.20000000000000015e-288 or 6.0000000000000001e-263 < y.im < 6.20000000000000008e-263 or 1.95000000000000014e-250 < y.im < 8.79999999999999939e-244 or 1.2e-194 < y.im < 7.9999999999999999e-185 or 2.1000000000000001e-143 < y.im < 2.19999999999999989e-143 or 2.8999999999999999e-86 < y.im < 2.3e-85 or 3.7999999999999998e-53 < y.im < 6e-34 or 9.99999999999999945e-21 < y.im < 5.69999999999999952e-19 or 1.3e-13 < y.im < 3.70000000000000015e-10 or 8.59999999999999979e-4 < y.im < 0.010800000000000001 or 5.5e10 < y.im < 1.35e20 or 3.6e22 < y.im < 3.6999999999999999e25 or 3.0999999999999999e29 < y.im < 2.80000000000000024e64 or 4.6e72 < y.im < 1.32e82 or 2.99999999999999996e84 < y.im < 7.50000000000000033e91 or 2.8999999999999998e103 < y.im < 1.89999999999999994e110 or 7.00000000000000023e125 < y.im < 1.8e143 or 5.99999999999999987e147 < y.im < 7.5000000000000001e241 or 7.80000000000000052e241 < y.im < 7.4999999999999997e250 or 9.49999999999999957e250 < y.im < 5.8000000000000005e297

    1. Initial program 58.9%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around 0 68.5%

      \[\leadsto \color{blue}{-1 \cdot \frac{x.re}{y.im}} \]
    4. Step-by-step derivation
      1. associate-*r/68.5%

        \[\leadsto \color{blue}{\frac{-1 \cdot x.re}{y.im}} \]
      2. neg-mul-168.5%

        \[\leadsto \frac{\color{blue}{-x.re}}{y.im} \]
    5. Simplified68.5%

      \[\leadsto \color{blue}{\frac{-x.re}{y.im}} \]

    if -7e-34 < y.im < -1.3e-84 or -2.8999999999999999e-86 < y.im < -1.4400000000000001e-92 or -1.4e-92 < y.im < -1.84999999999999997e-95 or -1.45000000000000001e-95 < y.im < -3.6000000000000004e-133 or -2.2e-135 < y.im < -2.50000000000000007e-140 or -2.39999999999999987e-140 < y.im < -4.3999999999999999e-167 or -4.2999999999999998e-167 < y.im < -1.6000000000000001e-172 or -1.40000000000000006e-172 < y.im < -2.35e-209 or -2.3e-209 < y.im < -1.05000000000000007e-247 or -1e-247 < y.im < -1.8500000000000001e-255 or -1.8000000000000001e-255 < y.im < -3.74999999999999999e-289 or -3.69999999999999989e-289 < y.im < 1.24999999999999991e-304 or 1.29999999999999998e-304 < y.im < 2.4499999999999999e-294 or 8.20000000000000015e-288 < y.im < 6.0000000000000001e-263 or 6.20000000000000008e-263 < y.im < 1.95000000000000014e-250 or 1.35000000000000005e-243 < y.im < 1.2e-194 or 7.9999999999999999e-185 < y.im < 2.1000000000000001e-143 or 2.19999999999999989e-143 < y.im < 2.8999999999999999e-86 or 2.3e-85 < y.im < 3.7999999999999998e-53 or 6e-34 < y.im < 9.99999999999999945e-21 or 5.69999999999999952e-19 < y.im < 1.3e-13 or 3.70000000000000015e-10 < y.im < 8.59999999999999979e-4 or 0.010800000000000001 < y.im < 5.5e10 or 1.35e20 < y.im < 3.6e22 or 3.6999999999999999e25 < y.im < 3.0999999999999999e29 or 2.80000000000000024e64 < y.im < 4.6e72 or 1.32e82 < y.im < 2.99999999999999996e84 or 1.8e143 < y.im < 5.99999999999999987e147 or 7.5000000000000001e241 < y.im < 7.80000000000000052e241

    1. Initial program 62.1%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around inf 90.0%

      \[\leadsto \color{blue}{\frac{x.im}{y.re}} \]

    if -1.3e-84 < y.im < -1.02000000000000004e-84 or 1.89999999999999994e110 < y.im < 7.00000000000000023e125 or 7.4999999999999997e250 < y.im < 9.49999999999999957e250

    1. Initial program 51.1%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub51.1%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative51.1%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt51.1%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac74.6%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg74.6%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define74.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define74.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*99.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt99.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow299.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define99.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr99.6%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 51.4%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/99.6%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified99.6%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 51.4%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/99.6%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified99.6%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    11. Step-by-step derivation
      1. associate-/l*100.0%

        \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]
    12. Applied egg-rr100.0%

      \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]

    if -3.6000000000000004e-133 < y.im < -1.30000000000000011e-134 or 7.50000000000000033e91 < y.im < 2.8999999999999998e103

    1. Initial program 74.6%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub74.6%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative74.6%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt74.6%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac52.0%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg52.0%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define52.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define52.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*52.9%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt52.9%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow252.9%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define52.9%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr52.9%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 51.9%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/52.3%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified52.3%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 51.6%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/53.1%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified53.1%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]

    if 8.79999999999999939e-244 < y.im < 1.35000000000000005e-243

    1. Initial program 4.8%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub4.8%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative4.8%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt4.8%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac3.2%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg3.2%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define3.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define3.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*98.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt98.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow298.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define98.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr98.4%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 3.7%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/3.7%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified3.7%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 4.8%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]

    if 5.8000000000000005e297 < y.im

    1. Initial program 54.8%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub54.8%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative54.8%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt54.8%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac54.8%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg54.8%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define54.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow2100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 99.2%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/99.2%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified99.2%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 99.2%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/99.2%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified99.2%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    11. Step-by-step derivation
      1. *-commutative99.2%

        \[\leadsto \frac{\color{blue}{\frac{y.re}{y.im} \cdot x.im}}{y.im} \]
      2. *-un-lft-identity99.2%

        \[\leadsto \frac{\frac{y.re}{y.im} \cdot x.im}{\color{blue}{1 \cdot y.im}} \]
      3. times-frac100.0%

        \[\leadsto \color{blue}{\frac{\frac{y.re}{y.im}}{1} \cdot \frac{x.im}{y.im}} \]
    12. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\frac{\frac{y.re}{y.im}}{1} \cdot \frac{x.im}{y.im}} \]
  3. Recombined 6 regimes into one program.
  4. Final simplification77.8%

    \[\leadsto \begin{array}{l} \mathbf{if}\;y.im \leq -7 \cdot 10^{-34}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.3 \cdot 10^{-84}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.02 \cdot 10^{-84}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq -2.9 \cdot 10^{-86}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.44 \cdot 10^{-92}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.4 \cdot 10^{-92}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.85 \cdot 10^{-95}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.45 \cdot 10^{-95}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -3.6 \cdot 10^{-133}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.3 \cdot 10^{-134}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq -2.2 \cdot 10^{-135}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -2.5 \cdot 10^{-140}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -2.4 \cdot 10^{-140}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -4.4 \cdot 10^{-167}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -4.3 \cdot 10^{-167}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.6 \cdot 10^{-172}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.4 \cdot 10^{-172}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -2.35 \cdot 10^{-209}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -2.3 \cdot 10^{-209}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.05 \cdot 10^{-247}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1 \cdot 10^{-247}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.85 \cdot 10^{-255}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.8 \cdot 10^{-255}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -3.75 \cdot 10^{-289}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -3.7 \cdot 10^{-289}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{-304}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.3 \cdot 10^{-304}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.45 \cdot 10^{-294}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 8.2 \cdot 10^{-288}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{-263}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 6.2 \cdot 10^{-263}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.95 \cdot 10^{-250}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 8.8 \cdot 10^{-244}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.35 \cdot 10^{-243}:\\ \;\;\;\;\frac{\frac{y.re \cdot x.im}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq 1.2 \cdot 10^{-194}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 8 \cdot 10^{-185}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.1 \cdot 10^{-143}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 2.2 \cdot 10^{-143}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.9 \cdot 10^{-86}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 2.3 \cdot 10^{-85}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 3.8 \cdot 10^{-53}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{-34}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 10^{-20}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 5.7 \cdot 10^{-19}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.3 \cdot 10^{-13}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 3.7 \cdot 10^{-10}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 0.00086:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 0.0108:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 55000000000:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.35 \cdot 10^{+20}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 3.6 \cdot 10^{+22}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 3.7 \cdot 10^{+25}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 3.1 \cdot 10^{+29}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 2.8 \cdot 10^{+64}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 4.6 \cdot 10^{+72}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.32 \cdot 10^{+82}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 3 \cdot 10^{+84}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+91}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.9 \cdot 10^{+103}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq 1.9 \cdot 10^{+110}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 7 \cdot 10^{+125}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq 1.8 \cdot 10^{+143}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{+147}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+241}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+241}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+250}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 9.5 \cdot 10^{+250}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq 5.8 \cdot 10^{+297}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{else}:\\ \;\;\;\;\frac{y.re}{y.im} \cdot \frac{x.im}{y.im}\\ \end{array} \]
  5. Add Preprocessing

Alternative 9: 60.8% accurate, 0.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ t_1 := \frac{x.re}{-y.im}\\ t_2 := \frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\ \mathbf{if}\;y.im \leq -9.2 \cdot 10^{-35}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -1.3 \cdot 10^{-84}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.1 \cdot 10^{-84}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq -9 \cdot 10^{-86}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -1.44 \cdot 10^{-92}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.4 \cdot 10^{-92}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -1.5 \cdot 10^{-95}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.45 \cdot 10^{-95}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -3.6 \cdot 10^{-133}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.4 \cdot 10^{-134}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq -2.2 \cdot 10^{-135}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -2.5 \cdot 10^{-140}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -2.4 \cdot 10^{-140}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -4.4 \cdot 10^{-167}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -4.3 \cdot 10^{-167}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -1.6 \cdot 10^{-172}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-172}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -2.35 \cdot 10^{-209}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -2.3 \cdot 10^{-209}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -1.05 \cdot 10^{-247}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1 \cdot 10^{-247}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -1.85 \cdot 10^{-255}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.8 \cdot 10^{-255}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -3.75 \cdot 10^{-289}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -3.7 \cdot 10^{-289}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{-304}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.3 \cdot 10^{-304}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 2.45 \cdot 10^{-294}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 8.2 \cdot 10^{-288}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{-263}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 6.2 \cdot 10^{-263}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.95 \cdot 10^{-250}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 5.7 \cdot 10^{-245}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.35 \cdot 10^{-243}:\\ \;\;\;\;\frac{\frac{y.re \cdot x.im}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq 1.2 \cdot 10^{-194}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 8 \cdot 10^{-185}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 2.1 \cdot 10^{-143}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 2.2 \cdot 10^{-143}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.1 \cdot 10^{-85}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.1 \cdot 10^{-80}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 6.2 \cdot 10^{-52}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 9 \cdot 10^{-34}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 3.1 \cdot 10^{-19}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 2.8 \cdot 10^{-16}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 7 \cdot 10^{-13}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.05 \cdot 10^{-12}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 0.00086:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 5.6:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 195000:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.5 \cdot 10^{+21}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 2 \cdot 10^{+22}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.5 \cdot 10^{+27}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 6.2 \cdot 10^{+27}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 3.3 \cdot 10^{+62}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 4.2 \cdot 10^{+72}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.32 \cdot 10^{+82}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.4 \cdot 10^{+82}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+91}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 2.9 \cdot 10^{+103}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq 1.9 \cdot 10^{+110}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+125}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq 1.8 \cdot 10^{+143}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{+147}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+241}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+241}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+250}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+250}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq 5.8 \cdot 10^{+297}:\\ \;\;\;\;t\_1\\ \mathbf{else}:\\ \;\;\;\;t\_2\\ \end{array} \end{array} \]
(FPCore (x.re x.im y.re y.im)
 :precision binary64
 (let* ((t_0 (* x.im (/ (/ y.re y.im) y.im)))
        (t_1 (/ x.re (- y.im)))
        (t_2 (/ (* x.im (/ y.re y.im)) y.im)))
   (if (<= y.im -9.2e-35)
     t_1
     (if (<= y.im -1.3e-84)
       (/ x.im y.re)
       (if (<= y.im -1.1e-84)
         t_0
         (if (<= y.im -9e-86)
           t_1
           (if (<= y.im -1.44e-92)
             (/ x.im y.re)
             (if (<= y.im -1.4e-92)
               t_1
               (if (<= y.im -1.5e-95)
                 (/ x.im y.re)
                 (if (<= y.im -1.45e-95)
                   t_1
                   (if (<= y.im -3.6e-133)
                     (/ x.im y.re)
                     (if (<= y.im -1.4e-134)
                       t_2
                       (if (<= y.im -2.2e-135)
                         t_1
                         (if (<= y.im -2.5e-140)
                           (/ x.im y.re)
                           (if (<= y.im -2.4e-140)
                             t_1
                             (if (<= y.im -4.4e-167)
                               (/ x.im y.re)
                               (if (<= y.im -4.3e-167)
                                 t_1
                                 (if (<= y.im -1.6e-172)
                                   (/ x.im y.re)
                                   (if (<= y.im -1.55e-172)
                                     t_1
                                     (if (<= y.im -2.35e-209)
                                       (/ x.im y.re)
                                       (if (<= y.im -2.3e-209)
                                         t_1
                                         (if (<= y.im -1.05e-247)
                                           (/ x.im y.re)
                                           (if (<= y.im -1e-247)
                                             t_1
                                             (if (<= y.im -1.85e-255)
                                               (/ x.im y.re)
                                               (if (<= y.im -1.8e-255)
                                                 t_1
                                                 (if (<= y.im -3.75e-289)
                                                   (/ x.im y.re)
                                                   (if (<= y.im -3.7e-289)
                                                     t_1
                                                     (if (<= y.im 1.25e-304)
                                                       (/ x.im y.re)
                                                       (if (<= y.im 1.3e-304)
                                                         t_1
                                                         (if (<=
                                                              y.im
                                                              2.45e-294)
                                                           (/ x.im y.re)
                                                           (if (<=
                                                                y.im
                                                                8.2e-288)
                                                             t_1
                                                             (if (<=
                                                                  y.im
                                                                  6e-263)
                                                               (/ x.im y.re)
                                                               (if (<=
                                                                    y.im
                                                                    6.2e-263)
                                                                 t_1
                                                                 (if (<=
                                                                      y.im
                                                                      1.95e-250)
                                                                   (/
                                                                    x.im
                                                                    y.re)
                                                                   (if (<=
                                                                        y.im
                                                                        5.7e-245)
                                                                     t_1
                                                                     (if (<=
                                                                          y.im
                                                                          1.35e-243)
                                                                       (/
                                                                        (/
                                                                         (*
                                                                          y.re
                                                                          x.im)
                                                                         y.im)
                                                                        y.im)
                                                                       (if (<=
                                                                            y.im
                                                                            1.2e-194)
                                                                         (/
                                                                          x.im
                                                                          y.re)
                                                                         (if (<=
                                                                              y.im
                                                                              8e-185)
                                                                           t_1
                                                                           (if (<=
                                                                                y.im
                                                                                2.1e-143)
                                                                             (/
                                                                              x.im
                                                                              y.re)
                                                                             (if (<=
                                                                                  y.im
                                                                                  2.2e-143)
                                                                               t_1
                                                                               (if (<=
                                                                                    y.im
                                                                                    1.1e-85)
                                                                                 (/
                                                                                  x.im
                                                                                  y.re)
                                                                                 (if (<=
                                                                                      y.im
                                                                                      1.1e-80)
                                                                                   t_1
                                                                                   (if (<=
                                                                                        y.im
                                                                                        6.2e-52)
                                                                                     (/
                                                                                      x.im
                                                                                      y.re)
                                                                                     (if (<=
                                                                                          y.im
                                                                                          9e-34)
                                                                                       t_1
                                                                                       (if (<=
                                                                                            y.im
                                                                                            3.1e-19)
                                                                                         (/
                                                                                          x.im
                                                                                          y.re)
                                                                                         (if (<=
                                                                                              y.im
                                                                                              2.8e-16)
                                                                                           t_1
                                                                                           (if (<=
                                                                                                y.im
                                                                                                7e-13)
                                                                                             (/
                                                                                              x.im
                                                                                              y.re)
                                                                                             (if (<=
                                                                                                  y.im
                                                                                                  1.05e-12)
                                                                                               t_1
                                                                                               (if (<=
                                                                                                    y.im
                                                                                                    0.00086)
                                                                                                 (/
                                                                                                  x.im
                                                                                                  y.re)
                                                                                                 (if (<=
                                                                                                      y.im
                                                                                                      5.6)
                                                                                                   t_1
                                                                                                   (if (<=
                                                                                                        y.im
                                                                                                        195000.0)
                                                                                                     (/
                                                                                                      x.im
                                                                                                      y.re)
                                                                                                     (if (<=
                                                                                                          y.im
                                                                                                          1.5e+21)
                                                                                                       t_1
                                                                                                       (if (<=
                                                                                                            y.im
                                                                                                            2e+22)
                                                                                                         (/
                                                                                                          x.im
                                                                                                          y.re)
                                                                                                         (if (<=
                                                                                                              y.im
                                                                                                              1.5e+27)
                                                                                                           t_1
                                                                                                           (if (<=
                                                                                                                y.im
                                                                                                                6.2e+27)
                                                                                                             (/
                                                                                                              x.im
                                                                                                              y.re)
                                                                                                             (if (<=
                                                                                                                  y.im
                                                                                                                  3.3e+62)
                                                                                                               t_1
                                                                                                               (if (<=
                                                                                                                    y.im
                                                                                                                    4.2e+72)
                                                                                                                 (/
                                                                                                                  x.im
                                                                                                                  y.re)
                                                                                                                 (if (<=
                                                                                                                      y.im
                                                                                                                      1.32e+82)
                                                                                                                   t_1
                                                                                                                   (if (<=
                                                                                                                        y.im
                                                                                                                        1.4e+82)
                                                                                                                     (/
                                                                                                                      x.im
                                                                                                                      y.re)
                                                                                                                     (if (<=
                                                                                                                          y.im
                                                                                                                          7.5e+91)
                                                                                                                       t_1
                                                                                                                       (if (<=
                                                                                                                            y.im
                                                                                                                            2.9e+103)
                                                                                                                         t_2
                                                                                                                         (if (<=
                                                                                                                              y.im
                                                                                                                              1.9e+110)
                                                                                                                           t_1
                                                                                                                           (if (<=
                                                                                                                                y.im
                                                                                                                                7.5e+125)
                                                                                                                             t_0
                                                                                                                             (if (<=
                                                                                                                                  y.im
                                                                                                                                  1.8e+143)
                                                                                                                               t_1
                                                                                                                               (if (<=
                                                                                                                                    y.im
                                                                                                                                    6e+147)
                                                                                                                                 (/
                                                                                                                                  x.im
                                                                                                                                  y.re)
                                                                                                                                 (if (<=
                                                                                                                                      y.im
                                                                                                                                      7.5e+241)
                                                                                                                                   t_1
                                                                                                                                   (if (<=
                                                                                                                                        y.im
                                                                                                                                        7.8e+241)
                                                                                                                                     (/
                                                                                                                                      x.im
                                                                                                                                      y.re)
                                                                                                                                     (if (<=
                                                                                                                                          y.im
                                                                                                                                          7.5e+250)
                                                                                                                                       t_1
                                                                                                                                       (if (<=
                                                                                                                                            y.im
                                                                                                                                            7.8e+250)
                                                                                                                                         t_0
                                                                                                                                         (if (<=
                                                                                                                                              y.im
                                                                                                                                              5.8e+297)
                                                                                                                                           t_1
                                                                                                                                           t_2))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double t_0 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	double t_1 = x_46_re / -y_46_im;
	double t_2 = (x_46_im * (y_46_re / y_46_im)) / y_46_im;
	double tmp;
	if (y_46_im <= -9.2e-35) {
		tmp = t_1;
	} else if (y_46_im <= -1.3e-84) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.1e-84) {
		tmp = t_0;
	} else if (y_46_im <= -9e-86) {
		tmp = t_1;
	} else if (y_46_im <= -1.44e-92) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.4e-92) {
		tmp = t_1;
	} else if (y_46_im <= -1.5e-95) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.45e-95) {
		tmp = t_1;
	} else if (y_46_im <= -3.6e-133) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.4e-134) {
		tmp = t_2;
	} else if (y_46_im <= -2.2e-135) {
		tmp = t_1;
	} else if (y_46_im <= -2.5e-140) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -2.4e-140) {
		tmp = t_1;
	} else if (y_46_im <= -4.4e-167) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -4.3e-167) {
		tmp = t_1;
	} else if (y_46_im <= -1.6e-172) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.55e-172) {
		tmp = t_1;
	} else if (y_46_im <= -2.35e-209) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -2.3e-209) {
		tmp = t_1;
	} else if (y_46_im <= -1.05e-247) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1e-247) {
		tmp = t_1;
	} else if (y_46_im <= -1.85e-255) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.8e-255) {
		tmp = t_1;
	} else if (y_46_im <= -3.75e-289) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -3.7e-289) {
		tmp = t_1;
	} else if (y_46_im <= 1.25e-304) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.3e-304) {
		tmp = t_1;
	} else if (y_46_im <= 2.45e-294) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 8.2e-288) {
		tmp = t_1;
	} else if (y_46_im <= 6e-263) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 6.2e-263) {
		tmp = t_1;
	} else if (y_46_im <= 1.95e-250) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 5.7e-245) {
		tmp = t_1;
	} else if (y_46_im <= 1.35e-243) {
		tmp = ((y_46_re * x_46_im) / y_46_im) / y_46_im;
	} else if (y_46_im <= 1.2e-194) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 8e-185) {
		tmp = t_1;
	} else if (y_46_im <= 2.1e-143) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 2.2e-143) {
		tmp = t_1;
	} else if (y_46_im <= 1.1e-85) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.1e-80) {
		tmp = t_1;
	} else if (y_46_im <= 6.2e-52) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 9e-34) {
		tmp = t_1;
	} else if (y_46_im <= 3.1e-19) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 2.8e-16) {
		tmp = t_1;
	} else if (y_46_im <= 7e-13) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.05e-12) {
		tmp = t_1;
	} else if (y_46_im <= 0.00086) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 5.6) {
		tmp = t_1;
	} else if (y_46_im <= 195000.0) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.5e+21) {
		tmp = t_1;
	} else if (y_46_im <= 2e+22) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.5e+27) {
		tmp = t_1;
	} else if (y_46_im <= 6.2e+27) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 3.3e+62) {
		tmp = t_1;
	} else if (y_46_im <= 4.2e+72) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.32e+82) {
		tmp = t_1;
	} else if (y_46_im <= 1.4e+82) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 7.5e+91) {
		tmp = t_1;
	} else if (y_46_im <= 2.9e+103) {
		tmp = t_2;
	} else if (y_46_im <= 1.9e+110) {
		tmp = t_1;
	} else if (y_46_im <= 7.5e+125) {
		tmp = t_0;
	} else if (y_46_im <= 1.8e+143) {
		tmp = t_1;
	} else if (y_46_im <= 6e+147) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 7.5e+241) {
		tmp = t_1;
	} else if (y_46_im <= 7.8e+241) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 7.5e+250) {
		tmp = t_1;
	} else if (y_46_im <= 7.8e+250) {
		tmp = t_0;
	} else if (y_46_im <= 5.8e+297) {
		tmp = t_1;
	} else {
		tmp = t_2;
	}
	return tmp;
}
real(8) function code(x_46re, x_46im, y_46re, y_46im)
    real(8), intent (in) :: x_46re
    real(8), intent (in) :: x_46im
    real(8), intent (in) :: y_46re
    real(8), intent (in) :: y_46im
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: t_2
    real(8) :: tmp
    t_0 = x_46im * ((y_46re / y_46im) / y_46im)
    t_1 = x_46re / -y_46im
    t_2 = (x_46im * (y_46re / y_46im)) / y_46im
    if (y_46im <= (-9.2d-35)) then
        tmp = t_1
    else if (y_46im <= (-1.3d-84)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1.1d-84)) then
        tmp = t_0
    else if (y_46im <= (-9d-86)) then
        tmp = t_1
    else if (y_46im <= (-1.44d-92)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1.4d-92)) then
        tmp = t_1
    else if (y_46im <= (-1.5d-95)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1.45d-95)) then
        tmp = t_1
    else if (y_46im <= (-3.6d-133)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1.4d-134)) then
        tmp = t_2
    else if (y_46im <= (-2.2d-135)) then
        tmp = t_1
    else if (y_46im <= (-2.5d-140)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-2.4d-140)) then
        tmp = t_1
    else if (y_46im <= (-4.4d-167)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-4.3d-167)) then
        tmp = t_1
    else if (y_46im <= (-1.6d-172)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1.55d-172)) then
        tmp = t_1
    else if (y_46im <= (-2.35d-209)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-2.3d-209)) then
        tmp = t_1
    else if (y_46im <= (-1.05d-247)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1d-247)) then
        tmp = t_1
    else if (y_46im <= (-1.85d-255)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1.8d-255)) then
        tmp = t_1
    else if (y_46im <= (-3.75d-289)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-3.7d-289)) then
        tmp = t_1
    else if (y_46im <= 1.25d-304) then
        tmp = x_46im / y_46re
    else if (y_46im <= 1.3d-304) then
        tmp = t_1
    else if (y_46im <= 2.45d-294) then
        tmp = x_46im / y_46re
    else if (y_46im <= 8.2d-288) then
        tmp = t_1
    else if (y_46im <= 6d-263) then
        tmp = x_46im / y_46re
    else if (y_46im <= 6.2d-263) then
        tmp = t_1
    else if (y_46im <= 1.95d-250) then
        tmp = x_46im / y_46re
    else if (y_46im <= 5.7d-245) then
        tmp = t_1
    else if (y_46im <= 1.35d-243) then
        tmp = ((y_46re * x_46im) / y_46im) / y_46im
    else if (y_46im <= 1.2d-194) then
        tmp = x_46im / y_46re
    else if (y_46im <= 8d-185) then
        tmp = t_1
    else if (y_46im <= 2.1d-143) then
        tmp = x_46im / y_46re
    else if (y_46im <= 2.2d-143) then
        tmp = t_1
    else if (y_46im <= 1.1d-85) then
        tmp = x_46im / y_46re
    else if (y_46im <= 1.1d-80) then
        tmp = t_1
    else if (y_46im <= 6.2d-52) then
        tmp = x_46im / y_46re
    else if (y_46im <= 9d-34) then
        tmp = t_1
    else if (y_46im <= 3.1d-19) then
        tmp = x_46im / y_46re
    else if (y_46im <= 2.8d-16) then
        tmp = t_1
    else if (y_46im <= 7d-13) then
        tmp = x_46im / y_46re
    else if (y_46im <= 1.05d-12) then
        tmp = t_1
    else if (y_46im <= 0.00086d0) then
        tmp = x_46im / y_46re
    else if (y_46im <= 5.6d0) then
        tmp = t_1
    else if (y_46im <= 195000.0d0) then
        tmp = x_46im / y_46re
    else if (y_46im <= 1.5d+21) then
        tmp = t_1
    else if (y_46im <= 2d+22) then
        tmp = x_46im / y_46re
    else if (y_46im <= 1.5d+27) then
        tmp = t_1
    else if (y_46im <= 6.2d+27) then
        tmp = x_46im / y_46re
    else if (y_46im <= 3.3d+62) then
        tmp = t_1
    else if (y_46im <= 4.2d+72) then
        tmp = x_46im / y_46re
    else if (y_46im <= 1.32d+82) then
        tmp = t_1
    else if (y_46im <= 1.4d+82) then
        tmp = x_46im / y_46re
    else if (y_46im <= 7.5d+91) then
        tmp = t_1
    else if (y_46im <= 2.9d+103) then
        tmp = t_2
    else if (y_46im <= 1.9d+110) then
        tmp = t_1
    else if (y_46im <= 7.5d+125) then
        tmp = t_0
    else if (y_46im <= 1.8d+143) then
        tmp = t_1
    else if (y_46im <= 6d+147) then
        tmp = x_46im / y_46re
    else if (y_46im <= 7.5d+241) then
        tmp = t_1
    else if (y_46im <= 7.8d+241) then
        tmp = x_46im / y_46re
    else if (y_46im <= 7.5d+250) then
        tmp = t_1
    else if (y_46im <= 7.8d+250) then
        tmp = t_0
    else if (y_46im <= 5.8d+297) then
        tmp = t_1
    else
        tmp = t_2
    end if
    code = tmp
end function
public static double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double t_0 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	double t_1 = x_46_re / -y_46_im;
	double t_2 = (x_46_im * (y_46_re / y_46_im)) / y_46_im;
	double tmp;
	if (y_46_im <= -9.2e-35) {
		tmp = t_1;
	} else if (y_46_im <= -1.3e-84) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.1e-84) {
		tmp = t_0;
	} else if (y_46_im <= -9e-86) {
		tmp = t_1;
	} else if (y_46_im <= -1.44e-92) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.4e-92) {
		tmp = t_1;
	} else if (y_46_im <= -1.5e-95) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.45e-95) {
		tmp = t_1;
	} else if (y_46_im <= -3.6e-133) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.4e-134) {
		tmp = t_2;
	} else if (y_46_im <= -2.2e-135) {
		tmp = t_1;
	} else if (y_46_im <= -2.5e-140) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -2.4e-140) {
		tmp = t_1;
	} else if (y_46_im <= -4.4e-167) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -4.3e-167) {
		tmp = t_1;
	} else if (y_46_im <= -1.6e-172) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.55e-172) {
		tmp = t_1;
	} else if (y_46_im <= -2.35e-209) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -2.3e-209) {
		tmp = t_1;
	} else if (y_46_im <= -1.05e-247) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1e-247) {
		tmp = t_1;
	} else if (y_46_im <= -1.85e-255) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.8e-255) {
		tmp = t_1;
	} else if (y_46_im <= -3.75e-289) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -3.7e-289) {
		tmp = t_1;
	} else if (y_46_im <= 1.25e-304) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.3e-304) {
		tmp = t_1;
	} else if (y_46_im <= 2.45e-294) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 8.2e-288) {
		tmp = t_1;
	} else if (y_46_im <= 6e-263) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 6.2e-263) {
		tmp = t_1;
	} else if (y_46_im <= 1.95e-250) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 5.7e-245) {
		tmp = t_1;
	} else if (y_46_im <= 1.35e-243) {
		tmp = ((y_46_re * x_46_im) / y_46_im) / y_46_im;
	} else if (y_46_im <= 1.2e-194) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 8e-185) {
		tmp = t_1;
	} else if (y_46_im <= 2.1e-143) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 2.2e-143) {
		tmp = t_1;
	} else if (y_46_im <= 1.1e-85) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.1e-80) {
		tmp = t_1;
	} else if (y_46_im <= 6.2e-52) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 9e-34) {
		tmp = t_1;
	} else if (y_46_im <= 3.1e-19) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 2.8e-16) {
		tmp = t_1;
	} else if (y_46_im <= 7e-13) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.05e-12) {
		tmp = t_1;
	} else if (y_46_im <= 0.00086) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 5.6) {
		tmp = t_1;
	} else if (y_46_im <= 195000.0) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.5e+21) {
		tmp = t_1;
	} else if (y_46_im <= 2e+22) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.5e+27) {
		tmp = t_1;
	} else if (y_46_im <= 6.2e+27) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 3.3e+62) {
		tmp = t_1;
	} else if (y_46_im <= 4.2e+72) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.32e+82) {
		tmp = t_1;
	} else if (y_46_im <= 1.4e+82) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 7.5e+91) {
		tmp = t_1;
	} else if (y_46_im <= 2.9e+103) {
		tmp = t_2;
	} else if (y_46_im <= 1.9e+110) {
		tmp = t_1;
	} else if (y_46_im <= 7.5e+125) {
		tmp = t_0;
	} else if (y_46_im <= 1.8e+143) {
		tmp = t_1;
	} else if (y_46_im <= 6e+147) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 7.5e+241) {
		tmp = t_1;
	} else if (y_46_im <= 7.8e+241) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 7.5e+250) {
		tmp = t_1;
	} else if (y_46_im <= 7.8e+250) {
		tmp = t_0;
	} else if (y_46_im <= 5.8e+297) {
		tmp = t_1;
	} else {
		tmp = t_2;
	}
	return tmp;
}
def code(x_46_re, x_46_im, y_46_re, y_46_im):
	t_0 = x_46_im * ((y_46_re / y_46_im) / y_46_im)
	t_1 = x_46_re / -y_46_im
	t_2 = (x_46_im * (y_46_re / y_46_im)) / y_46_im
	tmp = 0
	if y_46_im <= -9.2e-35:
		tmp = t_1
	elif y_46_im <= -1.3e-84:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1.1e-84:
		tmp = t_0
	elif y_46_im <= -9e-86:
		tmp = t_1
	elif y_46_im <= -1.44e-92:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1.4e-92:
		tmp = t_1
	elif y_46_im <= -1.5e-95:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1.45e-95:
		tmp = t_1
	elif y_46_im <= -3.6e-133:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1.4e-134:
		tmp = t_2
	elif y_46_im <= -2.2e-135:
		tmp = t_1
	elif y_46_im <= -2.5e-140:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -2.4e-140:
		tmp = t_1
	elif y_46_im <= -4.4e-167:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -4.3e-167:
		tmp = t_1
	elif y_46_im <= -1.6e-172:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1.55e-172:
		tmp = t_1
	elif y_46_im <= -2.35e-209:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -2.3e-209:
		tmp = t_1
	elif y_46_im <= -1.05e-247:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1e-247:
		tmp = t_1
	elif y_46_im <= -1.85e-255:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1.8e-255:
		tmp = t_1
	elif y_46_im <= -3.75e-289:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -3.7e-289:
		tmp = t_1
	elif y_46_im <= 1.25e-304:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 1.3e-304:
		tmp = t_1
	elif y_46_im <= 2.45e-294:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 8.2e-288:
		tmp = t_1
	elif y_46_im <= 6e-263:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 6.2e-263:
		tmp = t_1
	elif y_46_im <= 1.95e-250:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 5.7e-245:
		tmp = t_1
	elif y_46_im <= 1.35e-243:
		tmp = ((y_46_re * x_46_im) / y_46_im) / y_46_im
	elif y_46_im <= 1.2e-194:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 8e-185:
		tmp = t_1
	elif y_46_im <= 2.1e-143:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 2.2e-143:
		tmp = t_1
	elif y_46_im <= 1.1e-85:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 1.1e-80:
		tmp = t_1
	elif y_46_im <= 6.2e-52:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 9e-34:
		tmp = t_1
	elif y_46_im <= 3.1e-19:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 2.8e-16:
		tmp = t_1
	elif y_46_im <= 7e-13:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 1.05e-12:
		tmp = t_1
	elif y_46_im <= 0.00086:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 5.6:
		tmp = t_1
	elif y_46_im <= 195000.0:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 1.5e+21:
		tmp = t_1
	elif y_46_im <= 2e+22:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 1.5e+27:
		tmp = t_1
	elif y_46_im <= 6.2e+27:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 3.3e+62:
		tmp = t_1
	elif y_46_im <= 4.2e+72:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 1.32e+82:
		tmp = t_1
	elif y_46_im <= 1.4e+82:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 7.5e+91:
		tmp = t_1
	elif y_46_im <= 2.9e+103:
		tmp = t_2
	elif y_46_im <= 1.9e+110:
		tmp = t_1
	elif y_46_im <= 7.5e+125:
		tmp = t_0
	elif y_46_im <= 1.8e+143:
		tmp = t_1
	elif y_46_im <= 6e+147:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 7.5e+241:
		tmp = t_1
	elif y_46_im <= 7.8e+241:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 7.5e+250:
		tmp = t_1
	elif y_46_im <= 7.8e+250:
		tmp = t_0
	elif y_46_im <= 5.8e+297:
		tmp = t_1
	else:
		tmp = t_2
	return tmp
function code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = Float64(x_46_im * Float64(Float64(y_46_re / y_46_im) / y_46_im))
	t_1 = Float64(x_46_re / Float64(-y_46_im))
	t_2 = Float64(Float64(x_46_im * Float64(y_46_re / y_46_im)) / y_46_im)
	tmp = 0.0
	if (y_46_im <= -9.2e-35)
		tmp = t_1;
	elseif (y_46_im <= -1.3e-84)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1.1e-84)
		tmp = t_0;
	elseif (y_46_im <= -9e-86)
		tmp = t_1;
	elseif (y_46_im <= -1.44e-92)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1.4e-92)
		tmp = t_1;
	elseif (y_46_im <= -1.5e-95)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1.45e-95)
		tmp = t_1;
	elseif (y_46_im <= -3.6e-133)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1.4e-134)
		tmp = t_2;
	elseif (y_46_im <= -2.2e-135)
		tmp = t_1;
	elseif (y_46_im <= -2.5e-140)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -2.4e-140)
		tmp = t_1;
	elseif (y_46_im <= -4.4e-167)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -4.3e-167)
		tmp = t_1;
	elseif (y_46_im <= -1.6e-172)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1.55e-172)
		tmp = t_1;
	elseif (y_46_im <= -2.35e-209)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -2.3e-209)
		tmp = t_1;
	elseif (y_46_im <= -1.05e-247)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1e-247)
		tmp = t_1;
	elseif (y_46_im <= -1.85e-255)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1.8e-255)
		tmp = t_1;
	elseif (y_46_im <= -3.75e-289)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -3.7e-289)
		tmp = t_1;
	elseif (y_46_im <= 1.25e-304)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 1.3e-304)
		tmp = t_1;
	elseif (y_46_im <= 2.45e-294)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 8.2e-288)
		tmp = t_1;
	elseif (y_46_im <= 6e-263)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 6.2e-263)
		tmp = t_1;
	elseif (y_46_im <= 1.95e-250)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 5.7e-245)
		tmp = t_1;
	elseif (y_46_im <= 1.35e-243)
		tmp = Float64(Float64(Float64(y_46_re * x_46_im) / y_46_im) / y_46_im);
	elseif (y_46_im <= 1.2e-194)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 8e-185)
		tmp = t_1;
	elseif (y_46_im <= 2.1e-143)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 2.2e-143)
		tmp = t_1;
	elseif (y_46_im <= 1.1e-85)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 1.1e-80)
		tmp = t_1;
	elseif (y_46_im <= 6.2e-52)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 9e-34)
		tmp = t_1;
	elseif (y_46_im <= 3.1e-19)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 2.8e-16)
		tmp = t_1;
	elseif (y_46_im <= 7e-13)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 1.05e-12)
		tmp = t_1;
	elseif (y_46_im <= 0.00086)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 5.6)
		tmp = t_1;
	elseif (y_46_im <= 195000.0)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 1.5e+21)
		tmp = t_1;
	elseif (y_46_im <= 2e+22)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 1.5e+27)
		tmp = t_1;
	elseif (y_46_im <= 6.2e+27)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 3.3e+62)
		tmp = t_1;
	elseif (y_46_im <= 4.2e+72)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 1.32e+82)
		tmp = t_1;
	elseif (y_46_im <= 1.4e+82)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 7.5e+91)
		tmp = t_1;
	elseif (y_46_im <= 2.9e+103)
		tmp = t_2;
	elseif (y_46_im <= 1.9e+110)
		tmp = t_1;
	elseif (y_46_im <= 7.5e+125)
		tmp = t_0;
	elseif (y_46_im <= 1.8e+143)
		tmp = t_1;
	elseif (y_46_im <= 6e+147)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 7.5e+241)
		tmp = t_1;
	elseif (y_46_im <= 7.8e+241)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 7.5e+250)
		tmp = t_1;
	elseif (y_46_im <= 7.8e+250)
		tmp = t_0;
	elseif (y_46_im <= 5.8e+297)
		tmp = t_1;
	else
		tmp = t_2;
	end
	return tmp
end
function tmp_2 = code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	t_1 = x_46_re / -y_46_im;
	t_2 = (x_46_im * (y_46_re / y_46_im)) / y_46_im;
	tmp = 0.0;
	if (y_46_im <= -9.2e-35)
		tmp = t_1;
	elseif (y_46_im <= -1.3e-84)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1.1e-84)
		tmp = t_0;
	elseif (y_46_im <= -9e-86)
		tmp = t_1;
	elseif (y_46_im <= -1.44e-92)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1.4e-92)
		tmp = t_1;
	elseif (y_46_im <= -1.5e-95)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1.45e-95)
		tmp = t_1;
	elseif (y_46_im <= -3.6e-133)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1.4e-134)
		tmp = t_2;
	elseif (y_46_im <= -2.2e-135)
		tmp = t_1;
	elseif (y_46_im <= -2.5e-140)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -2.4e-140)
		tmp = t_1;
	elseif (y_46_im <= -4.4e-167)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -4.3e-167)
		tmp = t_1;
	elseif (y_46_im <= -1.6e-172)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1.55e-172)
		tmp = t_1;
	elseif (y_46_im <= -2.35e-209)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -2.3e-209)
		tmp = t_1;
	elseif (y_46_im <= -1.05e-247)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1e-247)
		tmp = t_1;
	elseif (y_46_im <= -1.85e-255)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1.8e-255)
		tmp = t_1;
	elseif (y_46_im <= -3.75e-289)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -3.7e-289)
		tmp = t_1;
	elseif (y_46_im <= 1.25e-304)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 1.3e-304)
		tmp = t_1;
	elseif (y_46_im <= 2.45e-294)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 8.2e-288)
		tmp = t_1;
	elseif (y_46_im <= 6e-263)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 6.2e-263)
		tmp = t_1;
	elseif (y_46_im <= 1.95e-250)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 5.7e-245)
		tmp = t_1;
	elseif (y_46_im <= 1.35e-243)
		tmp = ((y_46_re * x_46_im) / y_46_im) / y_46_im;
	elseif (y_46_im <= 1.2e-194)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 8e-185)
		tmp = t_1;
	elseif (y_46_im <= 2.1e-143)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 2.2e-143)
		tmp = t_1;
	elseif (y_46_im <= 1.1e-85)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 1.1e-80)
		tmp = t_1;
	elseif (y_46_im <= 6.2e-52)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 9e-34)
		tmp = t_1;
	elseif (y_46_im <= 3.1e-19)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 2.8e-16)
		tmp = t_1;
	elseif (y_46_im <= 7e-13)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 1.05e-12)
		tmp = t_1;
	elseif (y_46_im <= 0.00086)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 5.6)
		tmp = t_1;
	elseif (y_46_im <= 195000.0)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 1.5e+21)
		tmp = t_1;
	elseif (y_46_im <= 2e+22)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 1.5e+27)
		tmp = t_1;
	elseif (y_46_im <= 6.2e+27)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 3.3e+62)
		tmp = t_1;
	elseif (y_46_im <= 4.2e+72)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 1.32e+82)
		tmp = t_1;
	elseif (y_46_im <= 1.4e+82)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 7.5e+91)
		tmp = t_1;
	elseif (y_46_im <= 2.9e+103)
		tmp = t_2;
	elseif (y_46_im <= 1.9e+110)
		tmp = t_1;
	elseif (y_46_im <= 7.5e+125)
		tmp = t_0;
	elseif (y_46_im <= 1.8e+143)
		tmp = t_1;
	elseif (y_46_im <= 6e+147)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 7.5e+241)
		tmp = t_1;
	elseif (y_46_im <= 7.8e+241)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 7.5e+250)
		tmp = t_1;
	elseif (y_46_im <= 7.8e+250)
		tmp = t_0;
	elseif (y_46_im <= 5.8e+297)
		tmp = t_1;
	else
		tmp = t_2;
	end
	tmp_2 = tmp;
end
code[x$46$re_, x$46$im_, y$46$re_, y$46$im_] := Block[{t$95$0 = N[(x$46$im * N[(N[(y$46$re / y$46$im), $MachinePrecision] / y$46$im), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(x$46$re / (-y$46$im)), $MachinePrecision]}, Block[{t$95$2 = N[(N[(x$46$im * N[(y$46$re / y$46$im), $MachinePrecision]), $MachinePrecision] / y$46$im), $MachinePrecision]}, If[LessEqual[y$46$im, -9.2e-35], t$95$1, If[LessEqual[y$46$im, -1.3e-84], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1.1e-84], t$95$0, If[LessEqual[y$46$im, -9e-86], t$95$1, If[LessEqual[y$46$im, -1.44e-92], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1.4e-92], t$95$1, If[LessEqual[y$46$im, -1.5e-95], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1.45e-95], t$95$1, If[LessEqual[y$46$im, -3.6e-133], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1.4e-134], t$95$2, If[LessEqual[y$46$im, -2.2e-135], t$95$1, If[LessEqual[y$46$im, -2.5e-140], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -2.4e-140], t$95$1, If[LessEqual[y$46$im, -4.4e-167], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -4.3e-167], t$95$1, If[LessEqual[y$46$im, -1.6e-172], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1.55e-172], t$95$1, If[LessEqual[y$46$im, -2.35e-209], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -2.3e-209], t$95$1, If[LessEqual[y$46$im, -1.05e-247], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1e-247], t$95$1, If[LessEqual[y$46$im, -1.85e-255], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1.8e-255], t$95$1, If[LessEqual[y$46$im, -3.75e-289], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -3.7e-289], t$95$1, If[LessEqual[y$46$im, 1.25e-304], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 1.3e-304], t$95$1, If[LessEqual[y$46$im, 2.45e-294], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 8.2e-288], t$95$1, If[LessEqual[y$46$im, 6e-263], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 6.2e-263], t$95$1, If[LessEqual[y$46$im, 1.95e-250], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 5.7e-245], t$95$1, If[LessEqual[y$46$im, 1.35e-243], N[(N[(N[(y$46$re * x$46$im), $MachinePrecision] / y$46$im), $MachinePrecision] / y$46$im), $MachinePrecision], If[LessEqual[y$46$im, 1.2e-194], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 8e-185], t$95$1, If[LessEqual[y$46$im, 2.1e-143], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 2.2e-143], t$95$1, If[LessEqual[y$46$im, 1.1e-85], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 1.1e-80], t$95$1, If[LessEqual[y$46$im, 6.2e-52], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 9e-34], t$95$1, If[LessEqual[y$46$im, 3.1e-19], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 2.8e-16], t$95$1, If[LessEqual[y$46$im, 7e-13], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 1.05e-12], t$95$1, If[LessEqual[y$46$im, 0.00086], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 5.6], t$95$1, If[LessEqual[y$46$im, 195000.0], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 1.5e+21], t$95$1, If[LessEqual[y$46$im, 2e+22], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 1.5e+27], t$95$1, If[LessEqual[y$46$im, 6.2e+27], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 3.3e+62], t$95$1, If[LessEqual[y$46$im, 4.2e+72], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 1.32e+82], t$95$1, If[LessEqual[y$46$im, 1.4e+82], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 7.5e+91], t$95$1, If[LessEqual[y$46$im, 2.9e+103], t$95$2, If[LessEqual[y$46$im, 1.9e+110], t$95$1, If[LessEqual[y$46$im, 7.5e+125], t$95$0, If[LessEqual[y$46$im, 1.8e+143], t$95$1, If[LessEqual[y$46$im, 6e+147], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 7.5e+241], t$95$1, If[LessEqual[y$46$im, 7.8e+241], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 7.5e+250], t$95$1, If[LessEqual[y$46$im, 7.8e+250], t$95$0, If[LessEqual[y$46$im, 5.8e+297], t$95$1, t$95$2]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\
t_1 := \frac{x.re}{-y.im}\\
t_2 := \frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\
\mathbf{if}\;y.im \leq -9.2 \cdot 10^{-35}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -1.3 \cdot 10^{-84}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1.1 \cdot 10^{-84}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq -9 \cdot 10^{-86}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -1.44 \cdot 10^{-92}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1.4 \cdot 10^{-92}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -1.5 \cdot 10^{-95}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1.45 \cdot 10^{-95}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -3.6 \cdot 10^{-133}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1.4 \cdot 10^{-134}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq -2.2 \cdot 10^{-135}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -2.5 \cdot 10^{-140}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -2.4 \cdot 10^{-140}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -4.4 \cdot 10^{-167}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -4.3 \cdot 10^{-167}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -1.6 \cdot 10^{-172}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-172}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -2.35 \cdot 10^{-209}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -2.3 \cdot 10^{-209}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -1.05 \cdot 10^{-247}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1 \cdot 10^{-247}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -1.85 \cdot 10^{-255}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1.8 \cdot 10^{-255}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -3.75 \cdot 10^{-289}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -3.7 \cdot 10^{-289}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.25 \cdot 10^{-304}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 1.3 \cdot 10^{-304}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 2.45 \cdot 10^{-294}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 8.2 \cdot 10^{-288}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 6 \cdot 10^{-263}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 6.2 \cdot 10^{-263}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.95 \cdot 10^{-250}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 5.7 \cdot 10^{-245}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.35 \cdot 10^{-243}:\\
\;\;\;\;\frac{\frac{y.re \cdot x.im}{y.im}}{y.im}\\

\mathbf{elif}\;y.im \leq 1.2 \cdot 10^{-194}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 8 \cdot 10^{-185}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 2.1 \cdot 10^{-143}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 2.2 \cdot 10^{-143}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.1 \cdot 10^{-85}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 1.1 \cdot 10^{-80}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 6.2 \cdot 10^{-52}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 9 \cdot 10^{-34}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 3.1 \cdot 10^{-19}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 2.8 \cdot 10^{-16}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 7 \cdot 10^{-13}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 1.05 \cdot 10^{-12}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 0.00086:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 5.6:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 195000:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 1.5 \cdot 10^{+21}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 2 \cdot 10^{+22}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 1.5 \cdot 10^{+27}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 6.2 \cdot 10^{+27}:\\
\;\;\;\;\frac{x.im}{y.re}\\

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

\mathbf{elif}\;y.im \leq 4.2 \cdot 10^{+72}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 1.32 \cdot 10^{+82}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.4 \cdot 10^{+82}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+91}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 2.9 \cdot 10^{+103}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq 1.9 \cdot 10^{+110}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+125}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq 1.8 \cdot 10^{+143}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 6 \cdot 10^{+147}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+241}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+241}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+250}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+250}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq 5.8 \cdot 10^{+297}:\\
\;\;\;\;t\_1\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 5 regimes
  2. if y.im < -9.1999999999999996e-35 or -1.0999999999999999e-84 < y.im < -8.9999999999999995e-86 or -1.4400000000000001e-92 < y.im < -1.4e-92 or -1.5e-95 < y.im < -1.45000000000000001e-95 or -1.3999999999999999e-134 < y.im < -2.2e-135 or -2.50000000000000007e-140 < y.im < -2.39999999999999987e-140 or -4.3999999999999999e-167 < y.im < -4.2999999999999998e-167 or -1.6000000000000001e-172 < y.im < -1.5500000000000001e-172 or -2.35e-209 < y.im < -2.3e-209 or -1.05000000000000007e-247 < y.im < -1e-247 or -1.8500000000000001e-255 < y.im < -1.8000000000000001e-255 or -3.74999999999999999e-289 < y.im < -3.69999999999999989e-289 or 1.24999999999999991e-304 < y.im < 1.29999999999999998e-304 or 2.4499999999999999e-294 < y.im < 8.20000000000000015e-288 or 6.0000000000000001e-263 < y.im < 6.20000000000000008e-263 or 1.95000000000000014e-250 < y.im < 5.7000000000000001e-245 or 1.2e-194 < y.im < 7.9999999999999999e-185 or 2.1000000000000001e-143 < y.im < 2.19999999999999989e-143 or 1.1e-85 < y.im < 1.10000000000000005e-80 or 6.1999999999999998e-52 < y.im < 9.00000000000000085e-34 or 3.0999999999999999e-19 < y.im < 2.8000000000000001e-16 or 7.0000000000000005e-13 < y.im < 1.04999999999999997e-12 or 8.59999999999999979e-4 < y.im < 5.5999999999999996 or 195000 < y.im < 1.5e21 or 2e22 < y.im < 1.49999999999999988e27 or 6.19999999999999992e27 < y.im < 3.3e62 or 4.2000000000000003e72 < y.im < 1.32e82 or 1.4e82 < y.im < 7.50000000000000033e91 or 2.8999999999999998e103 < y.im < 1.89999999999999994e110 or 7.5000000000000006e125 < y.im < 1.8e143 or 5.99999999999999987e147 < y.im < 7.5000000000000001e241 or 7.80000000000000052e241 < y.im < 7.4999999999999997e250 or 7.8e250 < y.im < 5.8000000000000005e297

    1. Initial program 58.9%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around 0 68.5%

      \[\leadsto \color{blue}{-1 \cdot \frac{x.re}{y.im}} \]
    4. Step-by-step derivation
      1. associate-*r/68.5%

        \[\leadsto \color{blue}{\frac{-1 \cdot x.re}{y.im}} \]
      2. neg-mul-168.5%

        \[\leadsto \frac{\color{blue}{-x.re}}{y.im} \]
    5. Simplified68.5%

      \[\leadsto \color{blue}{\frac{-x.re}{y.im}} \]

    if -9.1999999999999996e-35 < y.im < -1.3e-84 or -8.9999999999999995e-86 < y.im < -1.4400000000000001e-92 or -1.4e-92 < y.im < -1.5e-95 or -1.45000000000000001e-95 < y.im < -3.6000000000000004e-133 or -2.2e-135 < y.im < -2.50000000000000007e-140 or -2.39999999999999987e-140 < y.im < -4.3999999999999999e-167 or -4.2999999999999998e-167 < y.im < -1.6000000000000001e-172 or -1.5500000000000001e-172 < y.im < -2.35e-209 or -2.3e-209 < y.im < -1.05000000000000007e-247 or -1e-247 < y.im < -1.8500000000000001e-255 or -1.8000000000000001e-255 < y.im < -3.74999999999999999e-289 or -3.69999999999999989e-289 < y.im < 1.24999999999999991e-304 or 1.29999999999999998e-304 < y.im < 2.4499999999999999e-294 or 8.20000000000000015e-288 < y.im < 6.0000000000000001e-263 or 6.20000000000000008e-263 < y.im < 1.95000000000000014e-250 or 1.35000000000000005e-243 < y.im < 1.2e-194 or 7.9999999999999999e-185 < y.im < 2.1000000000000001e-143 or 2.19999999999999989e-143 < y.im < 1.1e-85 or 1.10000000000000005e-80 < y.im < 6.1999999999999998e-52 or 9.00000000000000085e-34 < y.im < 3.0999999999999999e-19 or 2.8000000000000001e-16 < y.im < 7.0000000000000005e-13 or 1.04999999999999997e-12 < y.im < 8.59999999999999979e-4 or 5.5999999999999996 < y.im < 195000 or 1.5e21 < y.im < 2e22 or 1.49999999999999988e27 < y.im < 6.19999999999999992e27 or 3.3e62 < y.im < 4.2000000000000003e72 or 1.32e82 < y.im < 1.4e82 or 1.8e143 < y.im < 5.99999999999999987e147 or 7.5000000000000001e241 < y.im < 7.80000000000000052e241

    1. Initial program 62.1%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around inf 90.0%

      \[\leadsto \color{blue}{\frac{x.im}{y.re}} \]

    if -1.3e-84 < y.im < -1.0999999999999999e-84 or 1.89999999999999994e110 < y.im < 7.5000000000000006e125 or 7.4999999999999997e250 < y.im < 7.8e250

    1. Initial program 51.1%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub51.1%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative51.1%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt51.1%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac74.6%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg74.6%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define74.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define74.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*99.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt99.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow299.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define99.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr99.6%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 51.4%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/99.6%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified99.6%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 51.4%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/99.6%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified99.6%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    11. Step-by-step derivation
      1. associate-/l*100.0%

        \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]
    12. Applied egg-rr100.0%

      \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]

    if -3.6000000000000004e-133 < y.im < -1.3999999999999999e-134 or 7.50000000000000033e91 < y.im < 2.8999999999999998e103 or 5.8000000000000005e297 < y.im

    1. Initial program 68.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub68.0%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative68.0%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt68.0%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac52.9%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg52.9%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define52.9%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define68.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*68.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt68.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow268.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define68.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr68.6%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 67.7%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/67.9%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified67.9%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 67.5%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/68.4%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified68.4%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]

    if 5.7000000000000001e-245 < y.im < 1.35000000000000005e-243

    1. Initial program 4.8%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub4.8%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative4.8%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt4.8%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac3.2%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg3.2%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define3.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define3.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*98.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt98.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow298.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define98.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr98.4%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 3.7%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/3.7%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified3.7%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 4.8%

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;y.im \leq -9.2 \cdot 10^{-35}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.3 \cdot 10^{-84}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.1 \cdot 10^{-84}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq -9 \cdot 10^{-86}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.44 \cdot 10^{-92}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.4 \cdot 10^{-92}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.5 \cdot 10^{-95}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.45 \cdot 10^{-95}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -3.6 \cdot 10^{-133}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.4 \cdot 10^{-134}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq -2.2 \cdot 10^{-135}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -2.5 \cdot 10^{-140}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -2.4 \cdot 10^{-140}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -4.4 \cdot 10^{-167}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -4.3 \cdot 10^{-167}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.6 \cdot 10^{-172}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-172}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -2.35 \cdot 10^{-209}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -2.3 \cdot 10^{-209}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.05 \cdot 10^{-247}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1 \cdot 10^{-247}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.85 \cdot 10^{-255}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.8 \cdot 10^{-255}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -3.75 \cdot 10^{-289}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -3.7 \cdot 10^{-289}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{-304}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.3 \cdot 10^{-304}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.45 \cdot 10^{-294}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 8.2 \cdot 10^{-288}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{-263}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 6.2 \cdot 10^{-263}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.95 \cdot 10^{-250}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 5.7 \cdot 10^{-245}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.35 \cdot 10^{-243}:\\ \;\;\;\;\frac{\frac{y.re \cdot x.im}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq 1.2 \cdot 10^{-194}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 8 \cdot 10^{-185}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.1 \cdot 10^{-143}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 2.2 \cdot 10^{-143}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.1 \cdot 10^{-85}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.1 \cdot 10^{-80}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 6.2 \cdot 10^{-52}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 9 \cdot 10^{-34}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 3.1 \cdot 10^{-19}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 2.8 \cdot 10^{-16}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 7 \cdot 10^{-13}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.05 \cdot 10^{-12}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 0.00086:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 5.6:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 195000:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.5 \cdot 10^{+21}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2 \cdot 10^{+22}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.5 \cdot 10^{+27}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 6.2 \cdot 10^{+27}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 3.3 \cdot 10^{+62}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 4.2 \cdot 10^{+72}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.32 \cdot 10^{+82}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.4 \cdot 10^{+82}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+91}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.9 \cdot 10^{+103}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq 1.9 \cdot 10^{+110}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+125}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq 1.8 \cdot 10^{+143}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{+147}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+241}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+241}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+250}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+250}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq 5.8 \cdot 10^{+297}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{else}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\ \end{array} \]
  5. Add Preprocessing

Alternative 10: 68.0% accurate, 0.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ t_1 := \frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ t_2 := x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ t_3 := \frac{x.re}{-y.im}\\ t_4 := \frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\ t_5 := \frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{if}\;y.im \leq -2.8 \cdot 10^{+108}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq -2.2 \cdot 10^{+79}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.im \leq -2.9 \cdot 10^{+78}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq -6.2 \cdot 10^{+72}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq -2.3 \cdot 10^{+60}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq -2.3 \cdot 10^{+51}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq -3.2 \cdot 10^{+39}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -5.7 \cdot 10^{+35}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq -3.3 \cdot 10^{+25}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.im \leq -6 \cdot 10^{+15}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq -300000:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq -360:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -126:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq -2.35 \cdot 10^{-5}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.im \leq -5 \cdot 10^{-18}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq -8.5 \cdot 10^{-32}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -7.5 \cdot 10^{-32}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq -5.6 \cdot 10^{-34}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq -6.2 \cdot 10^{-39}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.im \leq -6 \cdot 10^{-39}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq -1.3 \cdot 10^{-84}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.im \leq -1.25 \cdot 10^{-84}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq -1.44 \cdot 10^{-92}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.im \leq -1.4 \cdot 10^{-92}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq -1.5 \cdot 10^{-95}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.45 \cdot 10^{-95}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq -3.6 \cdot 10^{-133}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -3.5 \cdot 10^{-133}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;y.im \leq -1.6 \cdot 10^{-172}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-172}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq -1 \cdot 10^{-211}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 10^{-277}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq 1.2 \cdot 10^{-194}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{-194}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 2.1 \cdot 10^{-143}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.im \leq 2.2 \cdot 10^{-143}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 1.1 \cdot 10^{-85}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.3 \cdot 10^{-85}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 1.42 \cdot 10^{-52}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 5.5 \cdot 10^{-34}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 14500000:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq 1.4 \cdot 10^{+18}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 2.55 \cdot 10^{+18}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.im \leq 6.4 \cdot 10^{+20}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 3.4 \cdot 10^{+22}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.9 \cdot 10^{+26}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 1.7 \cdot 10^{+29}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.15 \cdot 10^{+64}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 8.8 \cdot 10^{+74}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.im \leq 1.35 \cdot 10^{+82}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 2.8 \cdot 10^{+82}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+91}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 1.3 \cdot 10^{+99}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;y.im \leq 2.9 \cdot 10^{+103}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.5 \cdot 10^{+109}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 7 \cdot 10^{+125}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq 1.7 \cdot 10^{+143}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{+147}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.3 \cdot 10^{+174}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{+175}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.im \leq 4.7 \cdot 10^{+235}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+241}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+250}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+250}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq 1.9 \cdot 10^{+271}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 1.95 \cdot 10^{+271}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.im \leq 5.8 \cdot 10^{+297}:\\ \;\;\;\;t\_3\\ \mathbf{else}:\\ \;\;\;\;\frac{y.re}{y.im} \cdot \frac{x.im}{y.im}\\ \end{array} \end{array} \]
(FPCore (x.re x.im y.re y.im)
 :precision binary64
 (let* ((t_0 (/ (- x.im (/ (* y.im x.re) y.re)) y.re))
        (t_1 (/ (- x.im (* y.im (/ x.re y.re))) y.re))
        (t_2 (* x.im (/ (/ y.re y.im) y.im)))
        (t_3 (/ x.re (- y.im)))
        (t_4 (/ (* x.im (/ y.re y.im)) y.im))
        (t_5 (/ (- x.im (* x.re (/ y.im y.re))) y.re)))
   (if (<= y.im -2.8e+108)
     t_3
     (if (<= y.im -2.2e+79)
       t_5
       (if (<= y.im -2.9e+78)
         t_2
         (if (<= y.im -6.2e+72)
           t_3
           (if (<= y.im -2.3e+60)
             t_0
             (if (<= y.im -2.3e+51)
               t_3
               (if (<= y.im -3.2e+39)
                 (/ x.im y.re)
                 (if (<= y.im -5.7e+35)
                   t_3
                   (if (<= y.im -3.3e+25)
                     t_5
                     (if (<= y.im -6e+15)
                       t_3
                       (if (<= y.im -300000.0)
                         t_2
                         (if (<= y.im -360.0)
                           (/ x.im y.re)
                           (if (<= y.im -126.0)
                             t_3
                             (if (<= y.im -2.35e-5)
                               t_5
                               (if (<= y.im -5e-18)
                                 t_3
                                 (if (<= y.im -8.5e-32)
                                   (/ x.im y.re)
                                   (if (<= y.im -7.5e-32)
                                     t_2
                                     (if (<= y.im -5.6e-34)
                                       t_3
                                       (if (<= y.im -6.2e-39)
                                         t_5
                                         (if (<= y.im -6e-39)
                                           t_2
                                           (if (<= y.im -1.3e-84)
                                             t_5
                                             (if (<= y.im -1.25e-84)
                                               t_2
                                               (if (<= y.im -1.44e-92)
                                                 t_5
                                                 (if (<= y.im -1.4e-92)
                                                   t_3
                                                   (if (<= y.im -1.5e-95)
                                                     (/ x.im y.re)
                                                     (if (<= y.im -1.45e-95)
                                                       t_3
                                                       (if (<= y.im -3.6e-133)
                                                         (/ x.im y.re)
                                                         (if (<=
                                                              y.im
                                                              -3.5e-133)
                                                           t_4
                                                           (if (<=
                                                                y.im
                                                                -1.6e-172)
                                                             t_0
                                                             (if (<=
                                                                  y.im
                                                                  -1.55e-172)
                                                               t_3
                                                               (if (<=
                                                                    y.im
                                                                    -1e-211)
                                                                 t_1
                                                                 (if (<=
                                                                      y.im
                                                                      1e-277)
                                                                   t_0
                                                                   (if (<=
                                                                        y.im
                                                                        1.2e-194)
                                                                     t_1
                                                                     (if (<=
                                                                          y.im
                                                                          1.25e-194)
                                                                       t_3
                                                                       (if (<=
                                                                            y.im
                                                                            2.1e-143)
                                                                         t_5
                                                                         (if (<=
                                                                              y.im
                                                                              2.2e-143)
                                                                           t_3
                                                                           (if (<=
                                                                                y.im
                                                                                1.1e-85)
                                                                             t_1
                                                                             (if (<=
                                                                                  y.im
                                                                                  1.3e-85)
                                                                               t_3
                                                                               (if (<=
                                                                                    y.im
                                                                                    1.42e-52)
                                                                                 (/
                                                                                  x.im
                                                                                  y.re)
                                                                                 (if (<=
                                                                                      y.im
                                                                                      5.5e-34)
                                                                                   t_3
                                                                                   (if (<=
                                                                                        y.im
                                                                                        14500000.0)
                                                                                     t_0
                                                                                     (if (<=
                                                                                          y.im
                                                                                          1.4e+18)
                                                                                       t_3
                                                                                       (if (<=
                                                                                            y.im
                                                                                            2.55e+18)
                                                                                         t_5
                                                                                         (if (<=
                                                                                              y.im
                                                                                              6.4e+20)
                                                                                           t_3
                                                                                           (if (<=
                                                                                                y.im
                                                                                                3.4e+22)
                                                                                             (/
                                                                                              x.im
                                                                                              y.re)
                                                                                             (if (<=
                                                                                                  y.im
                                                                                                  1.9e+26)
                                                                                               t_3
                                                                                               (if (<=
                                                                                                    y.im
                                                                                                    1.7e+29)
                                                                                                 (/
                                                                                                  x.im
                                                                                                  y.re)
                                                                                                 (if (<=
                                                                                                      y.im
                                                                                                      1.15e+64)
                                                                                                   t_3
                                                                                                   (if (<=
                                                                                                        y.im
                                                                                                        8.8e+74)
                                                                                                     t_5
                                                                                                     (if (<=
                                                                                                          y.im
                                                                                                          1.35e+82)
                                                                                                       t_3
                                                                                                       (if (<=
                                                                                                            y.im
                                                                                                            2.8e+82)
                                                                                                         (/
                                                                                                          x.im
                                                                                                          y.re)
                                                                                                         (if (<=
                                                                                                              y.im
                                                                                                              7.5e+91)
                                                                                                           t_3
                                                                                                           (if (<=
                                                                                                                y.im
                                                                                                                1.3e+99)
                                                                                                             t_4
                                                                                                             (if (<=
                                                                                                                  y.im
                                                                                                                  2.9e+103)
                                                                                                               t_1
                                                                                                               (if (<=
                                                                                                                    y.im
                                                                                                                    1.5e+109)
                                                                                                                 t_3
                                                                                                                 (if (<=
                                                                                                                      y.im
                                                                                                                      7e+125)
                                                                                                                   t_2
                                                                                                                   (if (<=
                                                                                                                        y.im
                                                                                                                        1.7e+143)
                                                                                                                     t_3
                                                                                                                     (if (<=
                                                                                                                          y.im
                                                                                                                          6e+147)
                                                                                                                       (/
                                                                                                                        x.im
                                                                                                                        y.re)
                                                                                                                       (if (<=
                                                                                                                            y.im
                                                                                                                            1.3e+174)
                                                                                                                         t_3
                                                                                                                         (if (<=
                                                                                                                              y.im
                                                                                                                              1.25e+175)
                                                                                                                           t_5
                                                                                                                           (if (<=
                                                                                                                                y.im
                                                                                                                                4.7e+235)
                                                                                                                             t_3
                                                                                                                             (if (<=
                                                                                                                                  y.im
                                                                                                                                  7.8e+241)
                                                                                                                               t_5
                                                                                                                               (if (<=
                                                                                                                                    y.im
                                                                                                                                    7.5e+250)
                                                                                                                                 t_3
                                                                                                                                 (if (<=
                                                                                                                                      y.im
                                                                                                                                      7.8e+250)
                                                                                                                                   t_2
                                                                                                                                   (if (<=
                                                                                                                                        y.im
                                                                                                                                        1.9e+271)
                                                                                                                                     t_3
                                                                                                                                     (if (<=
                                                                                                                                          y.im
                                                                                                                                          1.95e+271)
                                                                                                                                       t_5
                                                                                                                                       (if (<=
                                                                                                                                            y.im
                                                                                                                                            5.8e+297)
                                                                                                                                         t_3
                                                                                                                                         (*
                                                                                                                                          (/
                                                                                                                                           y.re
                                                                                                                                           y.im)
                                                                                                                                          (/
                                                                                                                                           x.im
                                                                                                                                           y.im)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double t_0 = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re;
	double t_1 = (x_46_im - (y_46_im * (x_46_re / y_46_re))) / y_46_re;
	double t_2 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	double t_3 = x_46_re / -y_46_im;
	double t_4 = (x_46_im * (y_46_re / y_46_im)) / y_46_im;
	double t_5 = (x_46_im - (x_46_re * (y_46_im / y_46_re))) / y_46_re;
	double tmp;
	if (y_46_im <= -2.8e+108) {
		tmp = t_3;
	} else if (y_46_im <= -2.2e+79) {
		tmp = t_5;
	} else if (y_46_im <= -2.9e+78) {
		tmp = t_2;
	} else if (y_46_im <= -6.2e+72) {
		tmp = t_3;
	} else if (y_46_im <= -2.3e+60) {
		tmp = t_0;
	} else if (y_46_im <= -2.3e+51) {
		tmp = t_3;
	} else if (y_46_im <= -3.2e+39) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -5.7e+35) {
		tmp = t_3;
	} else if (y_46_im <= -3.3e+25) {
		tmp = t_5;
	} else if (y_46_im <= -6e+15) {
		tmp = t_3;
	} else if (y_46_im <= -300000.0) {
		tmp = t_2;
	} else if (y_46_im <= -360.0) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -126.0) {
		tmp = t_3;
	} else if (y_46_im <= -2.35e-5) {
		tmp = t_5;
	} else if (y_46_im <= -5e-18) {
		tmp = t_3;
	} else if (y_46_im <= -8.5e-32) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -7.5e-32) {
		tmp = t_2;
	} else if (y_46_im <= -5.6e-34) {
		tmp = t_3;
	} else if (y_46_im <= -6.2e-39) {
		tmp = t_5;
	} else if (y_46_im <= -6e-39) {
		tmp = t_2;
	} else if (y_46_im <= -1.3e-84) {
		tmp = t_5;
	} else if (y_46_im <= -1.25e-84) {
		tmp = t_2;
	} else if (y_46_im <= -1.44e-92) {
		tmp = t_5;
	} else if (y_46_im <= -1.4e-92) {
		tmp = t_3;
	} else if (y_46_im <= -1.5e-95) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.45e-95) {
		tmp = t_3;
	} else if (y_46_im <= -3.6e-133) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -3.5e-133) {
		tmp = t_4;
	} else if (y_46_im <= -1.6e-172) {
		tmp = t_0;
	} else if (y_46_im <= -1.55e-172) {
		tmp = t_3;
	} else if (y_46_im <= -1e-211) {
		tmp = t_1;
	} else if (y_46_im <= 1e-277) {
		tmp = t_0;
	} else if (y_46_im <= 1.2e-194) {
		tmp = t_1;
	} else if (y_46_im <= 1.25e-194) {
		tmp = t_3;
	} else if (y_46_im <= 2.1e-143) {
		tmp = t_5;
	} else if (y_46_im <= 2.2e-143) {
		tmp = t_3;
	} else if (y_46_im <= 1.1e-85) {
		tmp = t_1;
	} else if (y_46_im <= 1.3e-85) {
		tmp = t_3;
	} else if (y_46_im <= 1.42e-52) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 5.5e-34) {
		tmp = t_3;
	} else if (y_46_im <= 14500000.0) {
		tmp = t_0;
	} else if (y_46_im <= 1.4e+18) {
		tmp = t_3;
	} else if (y_46_im <= 2.55e+18) {
		tmp = t_5;
	} else if (y_46_im <= 6.4e+20) {
		tmp = t_3;
	} else if (y_46_im <= 3.4e+22) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.9e+26) {
		tmp = t_3;
	} else if (y_46_im <= 1.7e+29) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.15e+64) {
		tmp = t_3;
	} else if (y_46_im <= 8.8e+74) {
		tmp = t_5;
	} else if (y_46_im <= 1.35e+82) {
		tmp = t_3;
	} else if (y_46_im <= 2.8e+82) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 7.5e+91) {
		tmp = t_3;
	} else if (y_46_im <= 1.3e+99) {
		tmp = t_4;
	} else if (y_46_im <= 2.9e+103) {
		tmp = t_1;
	} else if (y_46_im <= 1.5e+109) {
		tmp = t_3;
	} else if (y_46_im <= 7e+125) {
		tmp = t_2;
	} else if (y_46_im <= 1.7e+143) {
		tmp = t_3;
	} else if (y_46_im <= 6e+147) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.3e+174) {
		tmp = t_3;
	} else if (y_46_im <= 1.25e+175) {
		tmp = t_5;
	} else if (y_46_im <= 4.7e+235) {
		tmp = t_3;
	} else if (y_46_im <= 7.8e+241) {
		tmp = t_5;
	} else if (y_46_im <= 7.5e+250) {
		tmp = t_3;
	} else if (y_46_im <= 7.8e+250) {
		tmp = t_2;
	} else if (y_46_im <= 1.9e+271) {
		tmp = t_3;
	} else if (y_46_im <= 1.95e+271) {
		tmp = t_5;
	} else if (y_46_im <= 5.8e+297) {
		tmp = t_3;
	} else {
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im);
	}
	return tmp;
}
real(8) function code(x_46re, x_46im, y_46re, y_46im)
    real(8), intent (in) :: x_46re
    real(8), intent (in) :: x_46im
    real(8), intent (in) :: y_46re
    real(8), intent (in) :: y_46im
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: t_2
    real(8) :: t_3
    real(8) :: t_4
    real(8) :: t_5
    real(8) :: tmp
    t_0 = (x_46im - ((y_46im * x_46re) / y_46re)) / y_46re
    t_1 = (x_46im - (y_46im * (x_46re / y_46re))) / y_46re
    t_2 = x_46im * ((y_46re / y_46im) / y_46im)
    t_3 = x_46re / -y_46im
    t_4 = (x_46im * (y_46re / y_46im)) / y_46im
    t_5 = (x_46im - (x_46re * (y_46im / y_46re))) / y_46re
    if (y_46im <= (-2.8d+108)) then
        tmp = t_3
    else if (y_46im <= (-2.2d+79)) then
        tmp = t_5
    else if (y_46im <= (-2.9d+78)) then
        tmp = t_2
    else if (y_46im <= (-6.2d+72)) then
        tmp = t_3
    else if (y_46im <= (-2.3d+60)) then
        tmp = t_0
    else if (y_46im <= (-2.3d+51)) then
        tmp = t_3
    else if (y_46im <= (-3.2d+39)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-5.7d+35)) then
        tmp = t_3
    else if (y_46im <= (-3.3d+25)) then
        tmp = t_5
    else if (y_46im <= (-6d+15)) then
        tmp = t_3
    else if (y_46im <= (-300000.0d0)) then
        tmp = t_2
    else if (y_46im <= (-360.0d0)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-126.0d0)) then
        tmp = t_3
    else if (y_46im <= (-2.35d-5)) then
        tmp = t_5
    else if (y_46im <= (-5d-18)) then
        tmp = t_3
    else if (y_46im <= (-8.5d-32)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-7.5d-32)) then
        tmp = t_2
    else if (y_46im <= (-5.6d-34)) then
        tmp = t_3
    else if (y_46im <= (-6.2d-39)) then
        tmp = t_5
    else if (y_46im <= (-6d-39)) then
        tmp = t_2
    else if (y_46im <= (-1.3d-84)) then
        tmp = t_5
    else if (y_46im <= (-1.25d-84)) then
        tmp = t_2
    else if (y_46im <= (-1.44d-92)) then
        tmp = t_5
    else if (y_46im <= (-1.4d-92)) then
        tmp = t_3
    else if (y_46im <= (-1.5d-95)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1.45d-95)) then
        tmp = t_3
    else if (y_46im <= (-3.6d-133)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-3.5d-133)) then
        tmp = t_4
    else if (y_46im <= (-1.6d-172)) then
        tmp = t_0
    else if (y_46im <= (-1.55d-172)) then
        tmp = t_3
    else if (y_46im <= (-1d-211)) then
        tmp = t_1
    else if (y_46im <= 1d-277) then
        tmp = t_0
    else if (y_46im <= 1.2d-194) then
        tmp = t_1
    else if (y_46im <= 1.25d-194) then
        tmp = t_3
    else if (y_46im <= 2.1d-143) then
        tmp = t_5
    else if (y_46im <= 2.2d-143) then
        tmp = t_3
    else if (y_46im <= 1.1d-85) then
        tmp = t_1
    else if (y_46im <= 1.3d-85) then
        tmp = t_3
    else if (y_46im <= 1.42d-52) then
        tmp = x_46im / y_46re
    else if (y_46im <= 5.5d-34) then
        tmp = t_3
    else if (y_46im <= 14500000.0d0) then
        tmp = t_0
    else if (y_46im <= 1.4d+18) then
        tmp = t_3
    else if (y_46im <= 2.55d+18) then
        tmp = t_5
    else if (y_46im <= 6.4d+20) then
        tmp = t_3
    else if (y_46im <= 3.4d+22) then
        tmp = x_46im / y_46re
    else if (y_46im <= 1.9d+26) then
        tmp = t_3
    else if (y_46im <= 1.7d+29) then
        tmp = x_46im / y_46re
    else if (y_46im <= 1.15d+64) then
        tmp = t_3
    else if (y_46im <= 8.8d+74) then
        tmp = t_5
    else if (y_46im <= 1.35d+82) then
        tmp = t_3
    else if (y_46im <= 2.8d+82) then
        tmp = x_46im / y_46re
    else if (y_46im <= 7.5d+91) then
        tmp = t_3
    else if (y_46im <= 1.3d+99) then
        tmp = t_4
    else if (y_46im <= 2.9d+103) then
        tmp = t_1
    else if (y_46im <= 1.5d+109) then
        tmp = t_3
    else if (y_46im <= 7d+125) then
        tmp = t_2
    else if (y_46im <= 1.7d+143) then
        tmp = t_3
    else if (y_46im <= 6d+147) then
        tmp = x_46im / y_46re
    else if (y_46im <= 1.3d+174) then
        tmp = t_3
    else if (y_46im <= 1.25d+175) then
        tmp = t_5
    else if (y_46im <= 4.7d+235) then
        tmp = t_3
    else if (y_46im <= 7.8d+241) then
        tmp = t_5
    else if (y_46im <= 7.5d+250) then
        tmp = t_3
    else if (y_46im <= 7.8d+250) then
        tmp = t_2
    else if (y_46im <= 1.9d+271) then
        tmp = t_3
    else if (y_46im <= 1.95d+271) then
        tmp = t_5
    else if (y_46im <= 5.8d+297) then
        tmp = t_3
    else
        tmp = (y_46re / y_46im) * (x_46im / y_46im)
    end if
    code = tmp
end function
public static double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double t_0 = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re;
	double t_1 = (x_46_im - (y_46_im * (x_46_re / y_46_re))) / y_46_re;
	double t_2 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	double t_3 = x_46_re / -y_46_im;
	double t_4 = (x_46_im * (y_46_re / y_46_im)) / y_46_im;
	double t_5 = (x_46_im - (x_46_re * (y_46_im / y_46_re))) / y_46_re;
	double tmp;
	if (y_46_im <= -2.8e+108) {
		tmp = t_3;
	} else if (y_46_im <= -2.2e+79) {
		tmp = t_5;
	} else if (y_46_im <= -2.9e+78) {
		tmp = t_2;
	} else if (y_46_im <= -6.2e+72) {
		tmp = t_3;
	} else if (y_46_im <= -2.3e+60) {
		tmp = t_0;
	} else if (y_46_im <= -2.3e+51) {
		tmp = t_3;
	} else if (y_46_im <= -3.2e+39) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -5.7e+35) {
		tmp = t_3;
	} else if (y_46_im <= -3.3e+25) {
		tmp = t_5;
	} else if (y_46_im <= -6e+15) {
		tmp = t_3;
	} else if (y_46_im <= -300000.0) {
		tmp = t_2;
	} else if (y_46_im <= -360.0) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -126.0) {
		tmp = t_3;
	} else if (y_46_im <= -2.35e-5) {
		tmp = t_5;
	} else if (y_46_im <= -5e-18) {
		tmp = t_3;
	} else if (y_46_im <= -8.5e-32) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -7.5e-32) {
		tmp = t_2;
	} else if (y_46_im <= -5.6e-34) {
		tmp = t_3;
	} else if (y_46_im <= -6.2e-39) {
		tmp = t_5;
	} else if (y_46_im <= -6e-39) {
		tmp = t_2;
	} else if (y_46_im <= -1.3e-84) {
		tmp = t_5;
	} else if (y_46_im <= -1.25e-84) {
		tmp = t_2;
	} else if (y_46_im <= -1.44e-92) {
		tmp = t_5;
	} else if (y_46_im <= -1.4e-92) {
		tmp = t_3;
	} else if (y_46_im <= -1.5e-95) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.45e-95) {
		tmp = t_3;
	} else if (y_46_im <= -3.6e-133) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -3.5e-133) {
		tmp = t_4;
	} else if (y_46_im <= -1.6e-172) {
		tmp = t_0;
	} else if (y_46_im <= -1.55e-172) {
		tmp = t_3;
	} else if (y_46_im <= -1e-211) {
		tmp = t_1;
	} else if (y_46_im <= 1e-277) {
		tmp = t_0;
	} else if (y_46_im <= 1.2e-194) {
		tmp = t_1;
	} else if (y_46_im <= 1.25e-194) {
		tmp = t_3;
	} else if (y_46_im <= 2.1e-143) {
		tmp = t_5;
	} else if (y_46_im <= 2.2e-143) {
		tmp = t_3;
	} else if (y_46_im <= 1.1e-85) {
		tmp = t_1;
	} else if (y_46_im <= 1.3e-85) {
		tmp = t_3;
	} else if (y_46_im <= 1.42e-52) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 5.5e-34) {
		tmp = t_3;
	} else if (y_46_im <= 14500000.0) {
		tmp = t_0;
	} else if (y_46_im <= 1.4e+18) {
		tmp = t_3;
	} else if (y_46_im <= 2.55e+18) {
		tmp = t_5;
	} else if (y_46_im <= 6.4e+20) {
		tmp = t_3;
	} else if (y_46_im <= 3.4e+22) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.9e+26) {
		tmp = t_3;
	} else if (y_46_im <= 1.7e+29) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.15e+64) {
		tmp = t_3;
	} else if (y_46_im <= 8.8e+74) {
		tmp = t_5;
	} else if (y_46_im <= 1.35e+82) {
		tmp = t_3;
	} else if (y_46_im <= 2.8e+82) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 7.5e+91) {
		tmp = t_3;
	} else if (y_46_im <= 1.3e+99) {
		tmp = t_4;
	} else if (y_46_im <= 2.9e+103) {
		tmp = t_1;
	} else if (y_46_im <= 1.5e+109) {
		tmp = t_3;
	} else if (y_46_im <= 7e+125) {
		tmp = t_2;
	} else if (y_46_im <= 1.7e+143) {
		tmp = t_3;
	} else if (y_46_im <= 6e+147) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.3e+174) {
		tmp = t_3;
	} else if (y_46_im <= 1.25e+175) {
		tmp = t_5;
	} else if (y_46_im <= 4.7e+235) {
		tmp = t_3;
	} else if (y_46_im <= 7.8e+241) {
		tmp = t_5;
	} else if (y_46_im <= 7.5e+250) {
		tmp = t_3;
	} else if (y_46_im <= 7.8e+250) {
		tmp = t_2;
	} else if (y_46_im <= 1.9e+271) {
		tmp = t_3;
	} else if (y_46_im <= 1.95e+271) {
		tmp = t_5;
	} else if (y_46_im <= 5.8e+297) {
		tmp = t_3;
	} else {
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im);
	}
	return tmp;
}
def code(x_46_re, x_46_im, y_46_re, y_46_im):
	t_0 = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re
	t_1 = (x_46_im - (y_46_im * (x_46_re / y_46_re))) / y_46_re
	t_2 = x_46_im * ((y_46_re / y_46_im) / y_46_im)
	t_3 = x_46_re / -y_46_im
	t_4 = (x_46_im * (y_46_re / y_46_im)) / y_46_im
	t_5 = (x_46_im - (x_46_re * (y_46_im / y_46_re))) / y_46_re
	tmp = 0
	if y_46_im <= -2.8e+108:
		tmp = t_3
	elif y_46_im <= -2.2e+79:
		tmp = t_5
	elif y_46_im <= -2.9e+78:
		tmp = t_2
	elif y_46_im <= -6.2e+72:
		tmp = t_3
	elif y_46_im <= -2.3e+60:
		tmp = t_0
	elif y_46_im <= -2.3e+51:
		tmp = t_3
	elif y_46_im <= -3.2e+39:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -5.7e+35:
		tmp = t_3
	elif y_46_im <= -3.3e+25:
		tmp = t_5
	elif y_46_im <= -6e+15:
		tmp = t_3
	elif y_46_im <= -300000.0:
		tmp = t_2
	elif y_46_im <= -360.0:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -126.0:
		tmp = t_3
	elif y_46_im <= -2.35e-5:
		tmp = t_5
	elif y_46_im <= -5e-18:
		tmp = t_3
	elif y_46_im <= -8.5e-32:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -7.5e-32:
		tmp = t_2
	elif y_46_im <= -5.6e-34:
		tmp = t_3
	elif y_46_im <= -6.2e-39:
		tmp = t_5
	elif y_46_im <= -6e-39:
		tmp = t_2
	elif y_46_im <= -1.3e-84:
		tmp = t_5
	elif y_46_im <= -1.25e-84:
		tmp = t_2
	elif y_46_im <= -1.44e-92:
		tmp = t_5
	elif y_46_im <= -1.4e-92:
		tmp = t_3
	elif y_46_im <= -1.5e-95:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1.45e-95:
		tmp = t_3
	elif y_46_im <= -3.6e-133:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -3.5e-133:
		tmp = t_4
	elif y_46_im <= -1.6e-172:
		tmp = t_0
	elif y_46_im <= -1.55e-172:
		tmp = t_3
	elif y_46_im <= -1e-211:
		tmp = t_1
	elif y_46_im <= 1e-277:
		tmp = t_0
	elif y_46_im <= 1.2e-194:
		tmp = t_1
	elif y_46_im <= 1.25e-194:
		tmp = t_3
	elif y_46_im <= 2.1e-143:
		tmp = t_5
	elif y_46_im <= 2.2e-143:
		tmp = t_3
	elif y_46_im <= 1.1e-85:
		tmp = t_1
	elif y_46_im <= 1.3e-85:
		tmp = t_3
	elif y_46_im <= 1.42e-52:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 5.5e-34:
		tmp = t_3
	elif y_46_im <= 14500000.0:
		tmp = t_0
	elif y_46_im <= 1.4e+18:
		tmp = t_3
	elif y_46_im <= 2.55e+18:
		tmp = t_5
	elif y_46_im <= 6.4e+20:
		tmp = t_3
	elif y_46_im <= 3.4e+22:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 1.9e+26:
		tmp = t_3
	elif y_46_im <= 1.7e+29:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 1.15e+64:
		tmp = t_3
	elif y_46_im <= 8.8e+74:
		tmp = t_5
	elif y_46_im <= 1.35e+82:
		tmp = t_3
	elif y_46_im <= 2.8e+82:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 7.5e+91:
		tmp = t_3
	elif y_46_im <= 1.3e+99:
		tmp = t_4
	elif y_46_im <= 2.9e+103:
		tmp = t_1
	elif y_46_im <= 1.5e+109:
		tmp = t_3
	elif y_46_im <= 7e+125:
		tmp = t_2
	elif y_46_im <= 1.7e+143:
		tmp = t_3
	elif y_46_im <= 6e+147:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 1.3e+174:
		tmp = t_3
	elif y_46_im <= 1.25e+175:
		tmp = t_5
	elif y_46_im <= 4.7e+235:
		tmp = t_3
	elif y_46_im <= 7.8e+241:
		tmp = t_5
	elif y_46_im <= 7.5e+250:
		tmp = t_3
	elif y_46_im <= 7.8e+250:
		tmp = t_2
	elif y_46_im <= 1.9e+271:
		tmp = t_3
	elif y_46_im <= 1.95e+271:
		tmp = t_5
	elif y_46_im <= 5.8e+297:
		tmp = t_3
	else:
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im)
	return tmp
function code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = Float64(Float64(x_46_im - Float64(Float64(y_46_im * x_46_re) / y_46_re)) / y_46_re)
	t_1 = Float64(Float64(x_46_im - Float64(y_46_im * Float64(x_46_re / y_46_re))) / y_46_re)
	t_2 = Float64(x_46_im * Float64(Float64(y_46_re / y_46_im) / y_46_im))
	t_3 = Float64(x_46_re / Float64(-y_46_im))
	t_4 = Float64(Float64(x_46_im * Float64(y_46_re / y_46_im)) / y_46_im)
	t_5 = Float64(Float64(x_46_im - Float64(x_46_re * Float64(y_46_im / y_46_re))) / y_46_re)
	tmp = 0.0
	if (y_46_im <= -2.8e+108)
		tmp = t_3;
	elseif (y_46_im <= -2.2e+79)
		tmp = t_5;
	elseif (y_46_im <= -2.9e+78)
		tmp = t_2;
	elseif (y_46_im <= -6.2e+72)
		tmp = t_3;
	elseif (y_46_im <= -2.3e+60)
		tmp = t_0;
	elseif (y_46_im <= -2.3e+51)
		tmp = t_3;
	elseif (y_46_im <= -3.2e+39)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -5.7e+35)
		tmp = t_3;
	elseif (y_46_im <= -3.3e+25)
		tmp = t_5;
	elseif (y_46_im <= -6e+15)
		tmp = t_3;
	elseif (y_46_im <= -300000.0)
		tmp = t_2;
	elseif (y_46_im <= -360.0)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -126.0)
		tmp = t_3;
	elseif (y_46_im <= -2.35e-5)
		tmp = t_5;
	elseif (y_46_im <= -5e-18)
		tmp = t_3;
	elseif (y_46_im <= -8.5e-32)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -7.5e-32)
		tmp = t_2;
	elseif (y_46_im <= -5.6e-34)
		tmp = t_3;
	elseif (y_46_im <= -6.2e-39)
		tmp = t_5;
	elseif (y_46_im <= -6e-39)
		tmp = t_2;
	elseif (y_46_im <= -1.3e-84)
		tmp = t_5;
	elseif (y_46_im <= -1.25e-84)
		tmp = t_2;
	elseif (y_46_im <= -1.44e-92)
		tmp = t_5;
	elseif (y_46_im <= -1.4e-92)
		tmp = t_3;
	elseif (y_46_im <= -1.5e-95)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1.45e-95)
		tmp = t_3;
	elseif (y_46_im <= -3.6e-133)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -3.5e-133)
		tmp = t_4;
	elseif (y_46_im <= -1.6e-172)
		tmp = t_0;
	elseif (y_46_im <= -1.55e-172)
		tmp = t_3;
	elseif (y_46_im <= -1e-211)
		tmp = t_1;
	elseif (y_46_im <= 1e-277)
		tmp = t_0;
	elseif (y_46_im <= 1.2e-194)
		tmp = t_1;
	elseif (y_46_im <= 1.25e-194)
		tmp = t_3;
	elseif (y_46_im <= 2.1e-143)
		tmp = t_5;
	elseif (y_46_im <= 2.2e-143)
		tmp = t_3;
	elseif (y_46_im <= 1.1e-85)
		tmp = t_1;
	elseif (y_46_im <= 1.3e-85)
		tmp = t_3;
	elseif (y_46_im <= 1.42e-52)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 5.5e-34)
		tmp = t_3;
	elseif (y_46_im <= 14500000.0)
		tmp = t_0;
	elseif (y_46_im <= 1.4e+18)
		tmp = t_3;
	elseif (y_46_im <= 2.55e+18)
		tmp = t_5;
	elseif (y_46_im <= 6.4e+20)
		tmp = t_3;
	elseif (y_46_im <= 3.4e+22)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 1.9e+26)
		tmp = t_3;
	elseif (y_46_im <= 1.7e+29)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 1.15e+64)
		tmp = t_3;
	elseif (y_46_im <= 8.8e+74)
		tmp = t_5;
	elseif (y_46_im <= 1.35e+82)
		tmp = t_3;
	elseif (y_46_im <= 2.8e+82)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 7.5e+91)
		tmp = t_3;
	elseif (y_46_im <= 1.3e+99)
		tmp = t_4;
	elseif (y_46_im <= 2.9e+103)
		tmp = t_1;
	elseif (y_46_im <= 1.5e+109)
		tmp = t_3;
	elseif (y_46_im <= 7e+125)
		tmp = t_2;
	elseif (y_46_im <= 1.7e+143)
		tmp = t_3;
	elseif (y_46_im <= 6e+147)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 1.3e+174)
		tmp = t_3;
	elseif (y_46_im <= 1.25e+175)
		tmp = t_5;
	elseif (y_46_im <= 4.7e+235)
		tmp = t_3;
	elseif (y_46_im <= 7.8e+241)
		tmp = t_5;
	elseif (y_46_im <= 7.5e+250)
		tmp = t_3;
	elseif (y_46_im <= 7.8e+250)
		tmp = t_2;
	elseif (y_46_im <= 1.9e+271)
		tmp = t_3;
	elseif (y_46_im <= 1.95e+271)
		tmp = t_5;
	elseif (y_46_im <= 5.8e+297)
		tmp = t_3;
	else
		tmp = Float64(Float64(y_46_re / y_46_im) * Float64(x_46_im / y_46_im));
	end
	return tmp
end
function tmp_2 = code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re;
	t_1 = (x_46_im - (y_46_im * (x_46_re / y_46_re))) / y_46_re;
	t_2 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	t_3 = x_46_re / -y_46_im;
	t_4 = (x_46_im * (y_46_re / y_46_im)) / y_46_im;
	t_5 = (x_46_im - (x_46_re * (y_46_im / y_46_re))) / y_46_re;
	tmp = 0.0;
	if (y_46_im <= -2.8e+108)
		tmp = t_3;
	elseif (y_46_im <= -2.2e+79)
		tmp = t_5;
	elseif (y_46_im <= -2.9e+78)
		tmp = t_2;
	elseif (y_46_im <= -6.2e+72)
		tmp = t_3;
	elseif (y_46_im <= -2.3e+60)
		tmp = t_0;
	elseif (y_46_im <= -2.3e+51)
		tmp = t_3;
	elseif (y_46_im <= -3.2e+39)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -5.7e+35)
		tmp = t_3;
	elseif (y_46_im <= -3.3e+25)
		tmp = t_5;
	elseif (y_46_im <= -6e+15)
		tmp = t_3;
	elseif (y_46_im <= -300000.0)
		tmp = t_2;
	elseif (y_46_im <= -360.0)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -126.0)
		tmp = t_3;
	elseif (y_46_im <= -2.35e-5)
		tmp = t_5;
	elseif (y_46_im <= -5e-18)
		tmp = t_3;
	elseif (y_46_im <= -8.5e-32)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -7.5e-32)
		tmp = t_2;
	elseif (y_46_im <= -5.6e-34)
		tmp = t_3;
	elseif (y_46_im <= -6.2e-39)
		tmp = t_5;
	elseif (y_46_im <= -6e-39)
		tmp = t_2;
	elseif (y_46_im <= -1.3e-84)
		tmp = t_5;
	elseif (y_46_im <= -1.25e-84)
		tmp = t_2;
	elseif (y_46_im <= -1.44e-92)
		tmp = t_5;
	elseif (y_46_im <= -1.4e-92)
		tmp = t_3;
	elseif (y_46_im <= -1.5e-95)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1.45e-95)
		tmp = t_3;
	elseif (y_46_im <= -3.6e-133)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -3.5e-133)
		tmp = t_4;
	elseif (y_46_im <= -1.6e-172)
		tmp = t_0;
	elseif (y_46_im <= -1.55e-172)
		tmp = t_3;
	elseif (y_46_im <= -1e-211)
		tmp = t_1;
	elseif (y_46_im <= 1e-277)
		tmp = t_0;
	elseif (y_46_im <= 1.2e-194)
		tmp = t_1;
	elseif (y_46_im <= 1.25e-194)
		tmp = t_3;
	elseif (y_46_im <= 2.1e-143)
		tmp = t_5;
	elseif (y_46_im <= 2.2e-143)
		tmp = t_3;
	elseif (y_46_im <= 1.1e-85)
		tmp = t_1;
	elseif (y_46_im <= 1.3e-85)
		tmp = t_3;
	elseif (y_46_im <= 1.42e-52)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 5.5e-34)
		tmp = t_3;
	elseif (y_46_im <= 14500000.0)
		tmp = t_0;
	elseif (y_46_im <= 1.4e+18)
		tmp = t_3;
	elseif (y_46_im <= 2.55e+18)
		tmp = t_5;
	elseif (y_46_im <= 6.4e+20)
		tmp = t_3;
	elseif (y_46_im <= 3.4e+22)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 1.9e+26)
		tmp = t_3;
	elseif (y_46_im <= 1.7e+29)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 1.15e+64)
		tmp = t_3;
	elseif (y_46_im <= 8.8e+74)
		tmp = t_5;
	elseif (y_46_im <= 1.35e+82)
		tmp = t_3;
	elseif (y_46_im <= 2.8e+82)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 7.5e+91)
		tmp = t_3;
	elseif (y_46_im <= 1.3e+99)
		tmp = t_4;
	elseif (y_46_im <= 2.9e+103)
		tmp = t_1;
	elseif (y_46_im <= 1.5e+109)
		tmp = t_3;
	elseif (y_46_im <= 7e+125)
		tmp = t_2;
	elseif (y_46_im <= 1.7e+143)
		tmp = t_3;
	elseif (y_46_im <= 6e+147)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 1.3e+174)
		tmp = t_3;
	elseif (y_46_im <= 1.25e+175)
		tmp = t_5;
	elseif (y_46_im <= 4.7e+235)
		tmp = t_3;
	elseif (y_46_im <= 7.8e+241)
		tmp = t_5;
	elseif (y_46_im <= 7.5e+250)
		tmp = t_3;
	elseif (y_46_im <= 7.8e+250)
		tmp = t_2;
	elseif (y_46_im <= 1.9e+271)
		tmp = t_3;
	elseif (y_46_im <= 1.95e+271)
		tmp = t_5;
	elseif (y_46_im <= 5.8e+297)
		tmp = t_3;
	else
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im);
	end
	tmp_2 = tmp;
end
code[x$46$re_, x$46$im_, y$46$re_, y$46$im_] := Block[{t$95$0 = N[(N[(x$46$im - N[(N[(y$46$im * x$46$re), $MachinePrecision] / y$46$re), $MachinePrecision]), $MachinePrecision] / y$46$re), $MachinePrecision]}, Block[{t$95$1 = N[(N[(x$46$im - N[(y$46$im * N[(x$46$re / y$46$re), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y$46$re), $MachinePrecision]}, Block[{t$95$2 = N[(x$46$im * N[(N[(y$46$re / y$46$im), $MachinePrecision] / y$46$im), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(x$46$re / (-y$46$im)), $MachinePrecision]}, Block[{t$95$4 = N[(N[(x$46$im * N[(y$46$re / y$46$im), $MachinePrecision]), $MachinePrecision] / y$46$im), $MachinePrecision]}, Block[{t$95$5 = N[(N[(x$46$im - N[(x$46$re * N[(y$46$im / y$46$re), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y$46$re), $MachinePrecision]}, If[LessEqual[y$46$im, -2.8e+108], t$95$3, If[LessEqual[y$46$im, -2.2e+79], t$95$5, If[LessEqual[y$46$im, -2.9e+78], t$95$2, If[LessEqual[y$46$im, -6.2e+72], t$95$3, If[LessEqual[y$46$im, -2.3e+60], t$95$0, If[LessEqual[y$46$im, -2.3e+51], t$95$3, If[LessEqual[y$46$im, -3.2e+39], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -5.7e+35], t$95$3, If[LessEqual[y$46$im, -3.3e+25], t$95$5, If[LessEqual[y$46$im, -6e+15], t$95$3, If[LessEqual[y$46$im, -300000.0], t$95$2, If[LessEqual[y$46$im, -360.0], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -126.0], t$95$3, If[LessEqual[y$46$im, -2.35e-5], t$95$5, If[LessEqual[y$46$im, -5e-18], t$95$3, If[LessEqual[y$46$im, -8.5e-32], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -7.5e-32], t$95$2, If[LessEqual[y$46$im, -5.6e-34], t$95$3, If[LessEqual[y$46$im, -6.2e-39], t$95$5, If[LessEqual[y$46$im, -6e-39], t$95$2, If[LessEqual[y$46$im, -1.3e-84], t$95$5, If[LessEqual[y$46$im, -1.25e-84], t$95$2, If[LessEqual[y$46$im, -1.44e-92], t$95$5, If[LessEqual[y$46$im, -1.4e-92], t$95$3, If[LessEqual[y$46$im, -1.5e-95], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1.45e-95], t$95$3, If[LessEqual[y$46$im, -3.6e-133], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -3.5e-133], t$95$4, If[LessEqual[y$46$im, -1.6e-172], t$95$0, If[LessEqual[y$46$im, -1.55e-172], t$95$3, If[LessEqual[y$46$im, -1e-211], t$95$1, If[LessEqual[y$46$im, 1e-277], t$95$0, If[LessEqual[y$46$im, 1.2e-194], t$95$1, If[LessEqual[y$46$im, 1.25e-194], t$95$3, If[LessEqual[y$46$im, 2.1e-143], t$95$5, If[LessEqual[y$46$im, 2.2e-143], t$95$3, If[LessEqual[y$46$im, 1.1e-85], t$95$1, If[LessEqual[y$46$im, 1.3e-85], t$95$3, If[LessEqual[y$46$im, 1.42e-52], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 5.5e-34], t$95$3, If[LessEqual[y$46$im, 14500000.0], t$95$0, If[LessEqual[y$46$im, 1.4e+18], t$95$3, If[LessEqual[y$46$im, 2.55e+18], t$95$5, If[LessEqual[y$46$im, 6.4e+20], t$95$3, If[LessEqual[y$46$im, 3.4e+22], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 1.9e+26], t$95$3, If[LessEqual[y$46$im, 1.7e+29], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 1.15e+64], t$95$3, If[LessEqual[y$46$im, 8.8e+74], t$95$5, If[LessEqual[y$46$im, 1.35e+82], t$95$3, If[LessEqual[y$46$im, 2.8e+82], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 7.5e+91], t$95$3, If[LessEqual[y$46$im, 1.3e+99], t$95$4, If[LessEqual[y$46$im, 2.9e+103], t$95$1, If[LessEqual[y$46$im, 1.5e+109], t$95$3, If[LessEqual[y$46$im, 7e+125], t$95$2, If[LessEqual[y$46$im, 1.7e+143], t$95$3, If[LessEqual[y$46$im, 6e+147], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 1.3e+174], t$95$3, If[LessEqual[y$46$im, 1.25e+175], t$95$5, If[LessEqual[y$46$im, 4.7e+235], t$95$3, If[LessEqual[y$46$im, 7.8e+241], t$95$5, If[LessEqual[y$46$im, 7.5e+250], t$95$3, If[LessEqual[y$46$im, 7.8e+250], t$95$2, If[LessEqual[y$46$im, 1.9e+271], t$95$3, If[LessEqual[y$46$im, 1.95e+271], t$95$5, If[LessEqual[y$46$im, 5.8e+297], t$95$3, N[(N[(y$46$re / y$46$im), $MachinePrecision] * N[(x$46$im / y$46$im), $MachinePrecision]), $MachinePrecision]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\
t_1 := \frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\
t_2 := x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\
t_3 := \frac{x.re}{-y.im}\\
t_4 := \frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\
t_5 := \frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\
\mathbf{if}\;y.im \leq -2.8 \cdot 10^{+108}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq -2.2 \cdot 10^{+79}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.im \leq -2.9 \cdot 10^{+78}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq -6.2 \cdot 10^{+72}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq -2.3 \cdot 10^{+60}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq -2.3 \cdot 10^{+51}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq -3.2 \cdot 10^{+39}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -5.7 \cdot 10^{+35}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq -3.3 \cdot 10^{+25}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.im \leq -6 \cdot 10^{+15}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq -300000:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq -360:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -126:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq -2.35 \cdot 10^{-5}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.im \leq -5 \cdot 10^{-18}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq -8.5 \cdot 10^{-32}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -7.5 \cdot 10^{-32}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq -5.6 \cdot 10^{-34}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq -6.2 \cdot 10^{-39}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.im \leq -6 \cdot 10^{-39}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq -1.3 \cdot 10^{-84}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.im \leq -1.25 \cdot 10^{-84}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq -1.44 \cdot 10^{-92}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.im \leq -1.4 \cdot 10^{-92}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq -1.5 \cdot 10^{-95}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1.45 \cdot 10^{-95}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq -3.6 \cdot 10^{-133}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -3.5 \cdot 10^{-133}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;y.im \leq -1.6 \cdot 10^{-172}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-172}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq -1 \cdot 10^{-211}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 10^{-277}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq 1.2 \cdot 10^{-194}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.25 \cdot 10^{-194}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 2.1 \cdot 10^{-143}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.im \leq 2.2 \cdot 10^{-143}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 1.1 \cdot 10^{-85}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.3 \cdot 10^{-85}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 1.42 \cdot 10^{-52}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 5.5 \cdot 10^{-34}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 14500000:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq 1.4 \cdot 10^{+18}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 2.55 \cdot 10^{+18}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.im \leq 6.4 \cdot 10^{+20}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 3.4 \cdot 10^{+22}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 1.9 \cdot 10^{+26}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 1.7 \cdot 10^{+29}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 1.15 \cdot 10^{+64}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 8.8 \cdot 10^{+74}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.im \leq 1.35 \cdot 10^{+82}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 2.8 \cdot 10^{+82}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+91}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 1.3 \cdot 10^{+99}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;y.im \leq 2.9 \cdot 10^{+103}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.5 \cdot 10^{+109}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 7 \cdot 10^{+125}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq 1.7 \cdot 10^{+143}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 6 \cdot 10^{+147}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 1.3 \cdot 10^{+174}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 1.25 \cdot 10^{+175}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.im \leq 4.7 \cdot 10^{+235}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+241}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+250}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+250}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq 1.9 \cdot 10^{+271}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 1.95 \cdot 10^{+271}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.im \leq 5.8 \cdot 10^{+297}:\\
\;\;\;\;t\_3\\

\mathbf{else}:\\
\;\;\;\;\frac{y.re}{y.im} \cdot \frac{x.im}{y.im}\\


\end{array}
\end{array}
Derivation
  1. Split input into 8 regimes
  2. if y.im < -2.7999999999999998e108 or -2.90000000000000017e78 < y.im < -6.19999999999999977e72 or -2.30000000000000017e60 < y.im < -2.30000000000000005e51 or -3.19999999999999993e39 < y.im < -5.69999999999999993e35 or -3.3000000000000001e25 < y.im < -6e15 or -360 < y.im < -126 or -2.34999999999999986e-5 < y.im < -5.00000000000000036e-18 or -7.49999999999999953e-32 < y.im < -5.59999999999999994e-34 or -1.4400000000000001e-92 < y.im < -1.4e-92 or -1.5e-95 < y.im < -1.45000000000000001e-95 or -1.6000000000000001e-172 < y.im < -1.5500000000000001e-172 or 1.2e-194 < y.im < 1.2500000000000001e-194 or 2.1000000000000001e-143 < y.im < 2.19999999999999989e-143 or 1.1e-85 < y.im < 1.30000000000000006e-85 or 1.4200000000000001e-52 < y.im < 5.50000000000000014e-34 or 1.45e7 < y.im < 1.4e18 or 2.55e18 < y.im < 6.4e20 or 3.4e22 < y.im < 1.9000000000000001e26 or 1.69999999999999991e29 < y.im < 1.15e64 or 8.8000000000000005e74 < y.im < 1.35e82 or 2.8e82 < y.im < 7.50000000000000033e91 or 2.8999999999999998e103 < y.im < 1.50000000000000008e109 or 7.00000000000000023e125 < y.im < 1.69999999999999991e143 or 5.99999999999999987e147 < y.im < 1.2999999999999999e174 or 1.25e175 < y.im < 4.6999999999999999e235 or 7.80000000000000052e241 < y.im < 7.4999999999999997e250 or 7.8e250 < y.im < 1.8999999999999999e271 or 1.95e271 < y.im < 5.8000000000000005e297

    1. Initial program 55.5%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around 0 89.3%

      \[\leadsto \color{blue}{-1 \cdot \frac{x.re}{y.im}} \]
    4. Step-by-step derivation
      1. associate-*r/89.3%

        \[\leadsto \color{blue}{\frac{-1 \cdot x.re}{y.im}} \]
      2. neg-mul-189.3%

        \[\leadsto \frac{\color{blue}{-x.re}}{y.im} \]
    5. Simplified89.3%

      \[\leadsto \color{blue}{\frac{-x.re}{y.im}} \]

    if -2.7999999999999998e108 < y.im < -2.1999999999999999e79 or -5.69999999999999993e35 < y.im < -3.3000000000000001e25 or -126 < y.im < -2.34999999999999986e-5 or -5.59999999999999994e-34 < y.im < -6.1999999999999994e-39 or -6.00000000000000055e-39 < y.im < -1.3e-84 or -1.25e-84 < y.im < -1.4400000000000001e-92 or 1.2500000000000001e-194 < y.im < 2.1000000000000001e-143 or 1.4e18 < y.im < 2.55e18 or 1.15e64 < y.im < 8.8000000000000005e74 or 1.2999999999999999e174 < y.im < 1.25e175 or 4.6999999999999999e235 < y.im < 7.80000000000000052e241 or 1.8999999999999999e271 < y.im < 1.95e271

    1. Initial program 61.4%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around inf 93.2%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    4. Step-by-step derivation
      1. remove-double-neg93.2%

        \[\leadsto \frac{\color{blue}{\left(-\left(-x.im\right)\right)} + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      2. mul-1-neg93.2%

        \[\leadsto \frac{\left(-\color{blue}{-1 \cdot x.im}\right) + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      3. neg-mul-193.2%

        \[\leadsto \frac{\color{blue}{-1 \cdot \left(-1 \cdot x.im\right)} + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      4. distribute-lft-in93.2%

        \[\leadsto \frac{\color{blue}{-1 \cdot \left(-1 \cdot x.im + \frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      5. mul-1-neg93.2%

        \[\leadsto \frac{\color{blue}{-\left(-1 \cdot x.im + \frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      6. distribute-neg-in93.2%

        \[\leadsto \frac{\color{blue}{\left(--1 \cdot x.im\right) + \left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      7. mul-1-neg93.2%

        \[\leadsto \frac{\left(-\color{blue}{\left(-x.im\right)}\right) + \left(-\frac{x.re \cdot y.im}{y.re}\right)}{y.re} \]
      8. remove-double-neg93.2%

        \[\leadsto \frac{\color{blue}{x.im} + \left(-\frac{x.re \cdot y.im}{y.re}\right)}{y.re} \]
      9. unsub-neg93.2%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      10. associate-/l*100.0%

        \[\leadsto \frac{x.im - \color{blue}{x.re \cdot \frac{y.im}{y.re}}}{y.re} \]
    5. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}} \]

    if -2.1999999999999999e79 < y.im < -2.90000000000000017e78 or -6e15 < y.im < -3e5 or -8.5000000000000003e-32 < y.im < -7.49999999999999953e-32 or -6.1999999999999994e-39 < y.im < -6.00000000000000055e-39 or -1.3e-84 < y.im < -1.25e-84 or 1.50000000000000008e109 < y.im < 7.00000000000000023e125 or 7.4999999999999997e250 < y.im < 7.8e250

    1. Initial program 74.9%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub74.9%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative74.9%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt74.9%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac87.1%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg87.1%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define87.1%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define87.1%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*99.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt99.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow299.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define99.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr99.6%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 75.5%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/99.6%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified99.6%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 75.5%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/99.6%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified99.6%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    11. Step-by-step derivation
      1. associate-/l*100.0%

        \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]
    12. Applied egg-rr100.0%

      \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]

    if -6.19999999999999977e72 < y.im < -2.30000000000000017e60 or -3.50000000000000003e-133 < y.im < -1.6000000000000001e-172 or -1.00000000000000009e-211 < y.im < 9.99999999999999969e-278 or 5.50000000000000014e-34 < y.im < 1.45e7

    1. Initial program 68.4%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub64.3%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative64.3%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt64.3%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac70.1%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg70.1%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define70.1%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define85.9%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*85.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt85.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow285.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define85.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr85.8%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 100.0%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg100.0%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg100.0%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative100.0%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]

    if -2.30000000000000005e51 < y.im < -3.19999999999999993e39 or -3e5 < y.im < -360 or -5.00000000000000036e-18 < y.im < -8.5000000000000003e-32 or -1.4e-92 < y.im < -1.5e-95 or -1.45000000000000001e-95 < y.im < -3.6000000000000004e-133 or 1.30000000000000006e-85 < y.im < 1.4200000000000001e-52 or 6.4e20 < y.im < 3.4e22 or 1.9000000000000001e26 < y.im < 1.69999999999999991e29 or 1.35e82 < y.im < 2.8e82 or 1.69999999999999991e143 < y.im < 5.99999999999999987e147

    1. Initial program 53.6%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around inf 100.0%

      \[\leadsto \color{blue}{\frac{x.im}{y.re}} \]

    if -3.6000000000000004e-133 < y.im < -3.50000000000000003e-133 or 7.50000000000000033e91 < y.im < 1.3e99

    1. Initial program 99.2%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub99.2%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative99.2%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt99.2%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac53.9%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg53.9%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define53.9%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define53.9%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*53.9%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt53.9%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow253.9%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define53.9%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr53.9%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 99.2%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 99.2%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified100.0%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]

    if -1.5500000000000001e-172 < y.im < -1.00000000000000009e-211 or 9.99999999999999969e-278 < y.im < 1.2e-194 or 2.19999999999999989e-143 < y.im < 1.1e-85 or 1.3e99 < y.im < 2.8999999999999998e103

    1. Initial program 56.5%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub52.7%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative52.7%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt52.7%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac53.4%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg53.4%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define53.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define87.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*87.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt87.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow287.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define87.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr87.3%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 93.3%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg93.3%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg93.3%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative93.3%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified93.3%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]
    8. Step-by-step derivation
      1. associate-/l*99.9%

        \[\leadsto \frac{x.im - \color{blue}{y.im \cdot \frac{x.re}{y.re}}}{y.re} \]
    9. Applied egg-rr99.9%

      \[\leadsto \frac{x.im - \color{blue}{y.im \cdot \frac{x.re}{y.re}}}{y.re} \]

    if 5.8000000000000005e297 < y.im

    1. Initial program 54.8%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub54.8%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative54.8%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt54.8%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac54.8%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg54.8%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define54.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow2100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 99.2%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/99.2%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified99.2%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 99.2%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/99.2%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified99.2%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    11. Step-by-step derivation
      1. *-commutative99.2%

        \[\leadsto \frac{\color{blue}{\frac{y.re}{y.im} \cdot x.im}}{y.im} \]
      2. *-un-lft-identity99.2%

        \[\leadsto \frac{\frac{y.re}{y.im} \cdot x.im}{\color{blue}{1 \cdot y.im}} \]
      3. times-frac100.0%

        \[\leadsto \color{blue}{\frac{\frac{y.re}{y.im}}{1} \cdot \frac{x.im}{y.im}} \]
    12. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\frac{\frac{y.re}{y.im}}{1} \cdot \frac{x.im}{y.im}} \]
  3. Recombined 8 regimes into one program.
  4. Final simplification96.0%

    \[\leadsto \begin{array}{l} \mathbf{if}\;y.im \leq -2.8 \cdot 10^{+108}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -2.2 \cdot 10^{+79}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -2.9 \cdot 10^{+78}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq -6.2 \cdot 10^{+72}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -2.3 \cdot 10^{+60}:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -2.3 \cdot 10^{+51}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -3.2 \cdot 10^{+39}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -5.7 \cdot 10^{+35}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -3.3 \cdot 10^{+25}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -6 \cdot 10^{+15}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -300000:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq -360:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -126:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -2.35 \cdot 10^{-5}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -5 \cdot 10^{-18}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -8.5 \cdot 10^{-32}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -7.5 \cdot 10^{-32}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq -5.6 \cdot 10^{-34}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -6.2 \cdot 10^{-39}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -6 \cdot 10^{-39}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq -1.3 \cdot 10^{-84}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -1.25 \cdot 10^{-84}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq -1.44 \cdot 10^{-92}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -1.4 \cdot 10^{-92}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.5 \cdot 10^{-95}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.45 \cdot 10^{-95}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -3.6 \cdot 10^{-133}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -3.5 \cdot 10^{-133}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq -1.6 \cdot 10^{-172}:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-172}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1 \cdot 10^{-211}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 10^{-277}:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.2 \cdot 10^{-194}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{-194}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.1 \cdot 10^{-143}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 2.2 \cdot 10^{-143}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.1 \cdot 10^{-85}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.3 \cdot 10^{-85}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.42 \cdot 10^{-52}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 5.5 \cdot 10^{-34}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 14500000:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.4 \cdot 10^{+18}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.55 \cdot 10^{+18}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 6.4 \cdot 10^{+20}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 3.4 \cdot 10^{+22}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.9 \cdot 10^{+26}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.7 \cdot 10^{+29}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.15 \cdot 10^{+64}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 8.8 \cdot 10^{+74}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.35 \cdot 10^{+82}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.8 \cdot 10^{+82}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+91}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.3 \cdot 10^{+99}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq 2.9 \cdot 10^{+103}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.5 \cdot 10^{+109}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 7 \cdot 10^{+125}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq 1.7 \cdot 10^{+143}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{+147}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.3 \cdot 10^{+174}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{+175}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 4.7 \cdot 10^{+235}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+241}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+250}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+250}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq 1.9 \cdot 10^{+271}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.95 \cdot 10^{+271}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 5.8 \cdot 10^{+297}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{else}:\\ \;\;\;\;\frac{y.re}{y.im} \cdot \frac{x.im}{y.im}\\ \end{array} \]
  5. Add Preprocessing

Alternative 11: 60.6% accurate, 0.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ t_1 := \frac{x.re}{-y.im}\\ t_2 := \frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\ \mathbf{if}\;y.im \leq -1.3 \cdot 10^{-34}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -1.3 \cdot 10^{-84}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.1 \cdot 10^{-84}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq -8.2 \cdot 10^{-86}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-92}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -6.4 \cdot 10^{-93}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -1.5 \cdot 10^{-95}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.45 \cdot 10^{-95}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -3.6 \cdot 10^{-133}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.75 \cdot 10^{-134}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq -2.2 \cdot 10^{-135}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -2.5 \cdot 10^{-140}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -2.4 \cdot 10^{-140}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -5 \cdot 10^{-167}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -4.3 \cdot 10^{-167}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -1.6 \cdot 10^{-172}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-172}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -2.35 \cdot 10^{-209}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -2.3 \cdot 10^{-209}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -1.05 \cdot 10^{-247}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1 \cdot 10^{-247}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -1.85 \cdot 10^{-255}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.8 \cdot 10^{-255}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -3.75 \cdot 10^{-289}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -3.7 \cdot 10^{-289}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{-304}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.3 \cdot 10^{-304}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 2.45 \cdot 10^{-294}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 8.2 \cdot 10^{-288}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{-263}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 6.2 \cdot 10^{-263}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.95 \cdot 10^{-250}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.35 \cdot 10^{-243}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.2 \cdot 10^{-194}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 8 \cdot 10^{-185}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 2.1 \cdot 10^{-143}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 2.8 \cdot 10^{-142}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.05 \cdot 10^{-85}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.15 \cdot 10^{-85}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.6 \cdot 10^{-52}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.6 \cdot 10^{-33}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 4.5 \cdot 10^{-19}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 5.7 \cdot 10^{-19}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.15 \cdot 10^{-13}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 8.5 \cdot 10^{-13}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 0.00085:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 20.5:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 210000000:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 2.45 \cdot 10^{+20}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 3.6 \cdot 10^{+22}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 5.5 \cdot 10^{+22}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 2.5 \cdot 10^{+33}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 2.1 \cdot 10^{+62}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 3.6 \cdot 10^{+71}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.35 \cdot 10^{+82}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{+86}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+91}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 2.9 \cdot 10^{+103}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq 1.1 \cdot 10^{+108}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 8.2 \cdot 10^{+125}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq 1.8 \cdot 10^{+143}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{+147}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+241}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+241}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+250}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+250}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq 5.8 \cdot 10^{+297}:\\ \;\;\;\;t\_1\\ \mathbf{else}:\\ \;\;\;\;t\_2\\ \end{array} \end{array} \]
(FPCore (x.re x.im y.re y.im)
 :precision binary64
 (let* ((t_0 (* x.im (/ (/ y.re y.im) y.im)))
        (t_1 (/ x.re (- y.im)))
        (t_2 (/ (* x.im (/ y.re y.im)) y.im)))
   (if (<= y.im -1.3e-34)
     t_1
     (if (<= y.im -1.3e-84)
       (/ x.im y.re)
       (if (<= y.im -1.1e-84)
         t_0
         (if (<= y.im -8.2e-86)
           t_1
           (if (<= y.im -1.55e-92)
             (/ x.im y.re)
             (if (<= y.im -6.4e-93)
               t_1
               (if (<= y.im -1.5e-95)
                 (/ x.im y.re)
                 (if (<= y.im -1.45e-95)
                   t_1
                   (if (<= y.im -3.6e-133)
                     (/ x.im y.re)
                     (if (<= y.im -1.75e-134)
                       t_2
                       (if (<= y.im -2.2e-135)
                         t_1
                         (if (<= y.im -2.5e-140)
                           (/ x.im y.re)
                           (if (<= y.im -2.4e-140)
                             t_1
                             (if (<= y.im -5e-167)
                               (/ x.im y.re)
                               (if (<= y.im -4.3e-167)
                                 t_1
                                 (if (<= y.im -1.6e-172)
                                   (/ x.im y.re)
                                   (if (<= y.im -1.55e-172)
                                     t_1
                                     (if (<= y.im -2.35e-209)
                                       (/ x.im y.re)
                                       (if (<= y.im -2.3e-209)
                                         t_1
                                         (if (<= y.im -1.05e-247)
                                           (/ x.im y.re)
                                           (if (<= y.im -1e-247)
                                             t_1
                                             (if (<= y.im -1.85e-255)
                                               (/ x.im y.re)
                                               (if (<= y.im -1.8e-255)
                                                 t_1
                                                 (if (<= y.im -3.75e-289)
                                                   (/ x.im y.re)
                                                   (if (<= y.im -3.7e-289)
                                                     t_1
                                                     (if (<= y.im 1.25e-304)
                                                       (/ x.im y.re)
                                                       (if (<= y.im 1.3e-304)
                                                         t_1
                                                         (if (<=
                                                              y.im
                                                              2.45e-294)
                                                           (/ x.im y.re)
                                                           (if (<=
                                                                y.im
                                                                8.2e-288)
                                                             t_1
                                                             (if (<=
                                                                  y.im
                                                                  6e-263)
                                                               (/ x.im y.re)
                                                               (if (<=
                                                                    y.im
                                                                    6.2e-263)
                                                                 t_1
                                                                 (if (<=
                                                                      y.im
                                                                      1.95e-250)
                                                                   (/
                                                                    x.im
                                                                    y.re)
                                                                   (if (<=
                                                                        y.im
                                                                        1.35e-243)
                                                                     t_1
                                                                     (if (<=
                                                                          y.im
                                                                          1.2e-194)
                                                                       (/
                                                                        x.im
                                                                        y.re)
                                                                       (if (<=
                                                                            y.im
                                                                            8e-185)
                                                                         t_1
                                                                         (if (<=
                                                                              y.im
                                                                              2.1e-143)
                                                                           (/
                                                                            x.im
                                                                            y.re)
                                                                           (if (<=
                                                                                y.im
                                                                                2.8e-142)
                                                                             t_1
                                                                             (if (<=
                                                                                  y.im
                                                                                  1.05e-85)
                                                                               (/
                                                                                x.im
                                                                                y.re)
                                                                               (if (<=
                                                                                    y.im
                                                                                    1.15e-85)
                                                                                 t_1
                                                                                 (if (<=
                                                                                      y.im
                                                                                      1.6e-52)
                                                                                   (/
                                                                                    x.im
                                                                                    y.re)
                                                                                   (if (<=
                                                                                        y.im
                                                                                        1.6e-33)
                                                                                     t_1
                                                                                     (if (<=
                                                                                          y.im
                                                                                          4.5e-19)
                                                                                       (/
                                                                                        x.im
                                                                                        y.re)
                                                                                       (if (<=
                                                                                            y.im
                                                                                            5.7e-19)
                                                                                         t_1
                                                                                         (if (<=
                                                                                              y.im
                                                                                              1.15e-13)
                                                                                           (/
                                                                                            x.im
                                                                                            y.re)
                                                                                           (if (<=
                                                                                                y.im
                                                                                                8.5e-13)
                                                                                             t_1
                                                                                             (if (<=
                                                                                                  y.im
                                                                                                  0.00085)
                                                                                               (/
                                                                                                x.im
                                                                                                y.re)
                                                                                               (if (<=
                                                                                                    y.im
                                                                                                    20.5)
                                                                                                 t_1
                                                                                                 (if (<=
                                                                                                      y.im
                                                                                                      210000000.0)
                                                                                                   (/
                                                                                                    x.im
                                                                                                    y.re)
                                                                                                   (if (<=
                                                                                                        y.im
                                                                                                        2.45e+20)
                                                                                                     t_1
                                                                                                     (if (<=
                                                                                                          y.im
                                                                                                          3.6e+22)
                                                                                                       (/
                                                                                                        x.im
                                                                                                        y.re)
                                                                                                       (if (<=
                                                                                                            y.im
                                                                                                            5.5e+22)
                                                                                                         t_1
                                                                                                         (if (<=
                                                                                                              y.im
                                                                                                              2.5e+33)
                                                                                                           (/
                                                                                                            x.im
                                                                                                            y.re)
                                                                                                           (if (<=
                                                                                                                y.im
                                                                                                                2.1e+62)
                                                                                                             t_1
                                                                                                             (if (<=
                                                                                                                  y.im
                                                                                                                  3.6e+71)
                                                                                                               (/
                                                                                                                x.im
                                                                                                                y.re)
                                                                                                               (if (<=
                                                                                                                    y.im
                                                                                                                    1.35e+82)
                                                                                                                 t_1
                                                                                                                 (if (<=
                                                                                                                      y.im
                                                                                                                      6e+86)
                                                                                                                   (/
                                                                                                                    x.im
                                                                                                                    y.re)
                                                                                                                   (if (<=
                                                                                                                        y.im
                                                                                                                        7.5e+91)
                                                                                                                     t_1
                                                                                                                     (if (<=
                                                                                                                          y.im
                                                                                                                          2.9e+103)
                                                                                                                       t_2
                                                                                                                       (if (<=
                                                                                                                            y.im
                                                                                                                            1.1e+108)
                                                                                                                         t_1
                                                                                                                         (if (<=
                                                                                                                              y.im
                                                                                                                              8.2e+125)
                                                                                                                           t_0
                                                                                                                           (if (<=
                                                                                                                                y.im
                                                                                                                                1.8e+143)
                                                                                                                             t_1
                                                                                                                             (if (<=
                                                                                                                                  y.im
                                                                                                                                  6e+147)
                                                                                                                               (/
                                                                                                                                x.im
                                                                                                                                y.re)
                                                                                                                               (if (<=
                                                                                                                                    y.im
                                                                                                                                    7.5e+241)
                                                                                                                                 t_1
                                                                                                                                 (if (<=
                                                                                                                                      y.im
                                                                                                                                      7.8e+241)
                                                                                                                                   (/
                                                                                                                                    x.im
                                                                                                                                    y.re)
                                                                                                                                   (if (<=
                                                                                                                                        y.im
                                                                                                                                        7.5e+250)
                                                                                                                                     t_1
                                                                                                                                     (if (<=
                                                                                                                                          y.im
                                                                                                                                          7.8e+250)
                                                                                                                                       t_0
                                                                                                                                       (if (<=
                                                                                                                                            y.im
                                                                                                                                            5.8e+297)
                                                                                                                                         t_1
                                                                                                                                         t_2)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double t_0 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	double t_1 = x_46_re / -y_46_im;
	double t_2 = (x_46_im * (y_46_re / y_46_im)) / y_46_im;
	double tmp;
	if (y_46_im <= -1.3e-34) {
		tmp = t_1;
	} else if (y_46_im <= -1.3e-84) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.1e-84) {
		tmp = t_0;
	} else if (y_46_im <= -8.2e-86) {
		tmp = t_1;
	} else if (y_46_im <= -1.55e-92) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -6.4e-93) {
		tmp = t_1;
	} else if (y_46_im <= -1.5e-95) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.45e-95) {
		tmp = t_1;
	} else if (y_46_im <= -3.6e-133) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.75e-134) {
		tmp = t_2;
	} else if (y_46_im <= -2.2e-135) {
		tmp = t_1;
	} else if (y_46_im <= -2.5e-140) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -2.4e-140) {
		tmp = t_1;
	} else if (y_46_im <= -5e-167) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -4.3e-167) {
		tmp = t_1;
	} else if (y_46_im <= -1.6e-172) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.55e-172) {
		tmp = t_1;
	} else if (y_46_im <= -2.35e-209) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -2.3e-209) {
		tmp = t_1;
	} else if (y_46_im <= -1.05e-247) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1e-247) {
		tmp = t_1;
	} else if (y_46_im <= -1.85e-255) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.8e-255) {
		tmp = t_1;
	} else if (y_46_im <= -3.75e-289) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -3.7e-289) {
		tmp = t_1;
	} else if (y_46_im <= 1.25e-304) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.3e-304) {
		tmp = t_1;
	} else if (y_46_im <= 2.45e-294) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 8.2e-288) {
		tmp = t_1;
	} else if (y_46_im <= 6e-263) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 6.2e-263) {
		tmp = t_1;
	} else if (y_46_im <= 1.95e-250) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.35e-243) {
		tmp = t_1;
	} else if (y_46_im <= 1.2e-194) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 8e-185) {
		tmp = t_1;
	} else if (y_46_im <= 2.1e-143) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 2.8e-142) {
		tmp = t_1;
	} else if (y_46_im <= 1.05e-85) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.15e-85) {
		tmp = t_1;
	} else if (y_46_im <= 1.6e-52) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.6e-33) {
		tmp = t_1;
	} else if (y_46_im <= 4.5e-19) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 5.7e-19) {
		tmp = t_1;
	} else if (y_46_im <= 1.15e-13) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 8.5e-13) {
		tmp = t_1;
	} else if (y_46_im <= 0.00085) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 20.5) {
		tmp = t_1;
	} else if (y_46_im <= 210000000.0) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 2.45e+20) {
		tmp = t_1;
	} else if (y_46_im <= 3.6e+22) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 5.5e+22) {
		tmp = t_1;
	} else if (y_46_im <= 2.5e+33) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 2.1e+62) {
		tmp = t_1;
	} else if (y_46_im <= 3.6e+71) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.35e+82) {
		tmp = t_1;
	} else if (y_46_im <= 6e+86) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 7.5e+91) {
		tmp = t_1;
	} else if (y_46_im <= 2.9e+103) {
		tmp = t_2;
	} else if (y_46_im <= 1.1e+108) {
		tmp = t_1;
	} else if (y_46_im <= 8.2e+125) {
		tmp = t_0;
	} else if (y_46_im <= 1.8e+143) {
		tmp = t_1;
	} else if (y_46_im <= 6e+147) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 7.5e+241) {
		tmp = t_1;
	} else if (y_46_im <= 7.8e+241) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 7.5e+250) {
		tmp = t_1;
	} else if (y_46_im <= 7.8e+250) {
		tmp = t_0;
	} else if (y_46_im <= 5.8e+297) {
		tmp = t_1;
	} else {
		tmp = t_2;
	}
	return tmp;
}
real(8) function code(x_46re, x_46im, y_46re, y_46im)
    real(8), intent (in) :: x_46re
    real(8), intent (in) :: x_46im
    real(8), intent (in) :: y_46re
    real(8), intent (in) :: y_46im
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: t_2
    real(8) :: tmp
    t_0 = x_46im * ((y_46re / y_46im) / y_46im)
    t_1 = x_46re / -y_46im
    t_2 = (x_46im * (y_46re / y_46im)) / y_46im
    if (y_46im <= (-1.3d-34)) then
        tmp = t_1
    else if (y_46im <= (-1.3d-84)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1.1d-84)) then
        tmp = t_0
    else if (y_46im <= (-8.2d-86)) then
        tmp = t_1
    else if (y_46im <= (-1.55d-92)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-6.4d-93)) then
        tmp = t_1
    else if (y_46im <= (-1.5d-95)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1.45d-95)) then
        tmp = t_1
    else if (y_46im <= (-3.6d-133)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1.75d-134)) then
        tmp = t_2
    else if (y_46im <= (-2.2d-135)) then
        tmp = t_1
    else if (y_46im <= (-2.5d-140)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-2.4d-140)) then
        tmp = t_1
    else if (y_46im <= (-5d-167)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-4.3d-167)) then
        tmp = t_1
    else if (y_46im <= (-1.6d-172)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1.55d-172)) then
        tmp = t_1
    else if (y_46im <= (-2.35d-209)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-2.3d-209)) then
        tmp = t_1
    else if (y_46im <= (-1.05d-247)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1d-247)) then
        tmp = t_1
    else if (y_46im <= (-1.85d-255)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1.8d-255)) then
        tmp = t_1
    else if (y_46im <= (-3.75d-289)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-3.7d-289)) then
        tmp = t_1
    else if (y_46im <= 1.25d-304) then
        tmp = x_46im / y_46re
    else if (y_46im <= 1.3d-304) then
        tmp = t_1
    else if (y_46im <= 2.45d-294) then
        tmp = x_46im / y_46re
    else if (y_46im <= 8.2d-288) then
        tmp = t_1
    else if (y_46im <= 6d-263) then
        tmp = x_46im / y_46re
    else if (y_46im <= 6.2d-263) then
        tmp = t_1
    else if (y_46im <= 1.95d-250) then
        tmp = x_46im / y_46re
    else if (y_46im <= 1.35d-243) then
        tmp = t_1
    else if (y_46im <= 1.2d-194) then
        tmp = x_46im / y_46re
    else if (y_46im <= 8d-185) then
        tmp = t_1
    else if (y_46im <= 2.1d-143) then
        tmp = x_46im / y_46re
    else if (y_46im <= 2.8d-142) then
        tmp = t_1
    else if (y_46im <= 1.05d-85) then
        tmp = x_46im / y_46re
    else if (y_46im <= 1.15d-85) then
        tmp = t_1
    else if (y_46im <= 1.6d-52) then
        tmp = x_46im / y_46re
    else if (y_46im <= 1.6d-33) then
        tmp = t_1
    else if (y_46im <= 4.5d-19) then
        tmp = x_46im / y_46re
    else if (y_46im <= 5.7d-19) then
        tmp = t_1
    else if (y_46im <= 1.15d-13) then
        tmp = x_46im / y_46re
    else if (y_46im <= 8.5d-13) then
        tmp = t_1
    else if (y_46im <= 0.00085d0) then
        tmp = x_46im / y_46re
    else if (y_46im <= 20.5d0) then
        tmp = t_1
    else if (y_46im <= 210000000.0d0) then
        tmp = x_46im / y_46re
    else if (y_46im <= 2.45d+20) then
        tmp = t_1
    else if (y_46im <= 3.6d+22) then
        tmp = x_46im / y_46re
    else if (y_46im <= 5.5d+22) then
        tmp = t_1
    else if (y_46im <= 2.5d+33) then
        tmp = x_46im / y_46re
    else if (y_46im <= 2.1d+62) then
        tmp = t_1
    else if (y_46im <= 3.6d+71) then
        tmp = x_46im / y_46re
    else if (y_46im <= 1.35d+82) then
        tmp = t_1
    else if (y_46im <= 6d+86) then
        tmp = x_46im / y_46re
    else if (y_46im <= 7.5d+91) then
        tmp = t_1
    else if (y_46im <= 2.9d+103) then
        tmp = t_2
    else if (y_46im <= 1.1d+108) then
        tmp = t_1
    else if (y_46im <= 8.2d+125) then
        tmp = t_0
    else if (y_46im <= 1.8d+143) then
        tmp = t_1
    else if (y_46im <= 6d+147) then
        tmp = x_46im / y_46re
    else if (y_46im <= 7.5d+241) then
        tmp = t_1
    else if (y_46im <= 7.8d+241) then
        tmp = x_46im / y_46re
    else if (y_46im <= 7.5d+250) then
        tmp = t_1
    else if (y_46im <= 7.8d+250) then
        tmp = t_0
    else if (y_46im <= 5.8d+297) then
        tmp = t_1
    else
        tmp = t_2
    end if
    code = tmp
end function
public static double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double t_0 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	double t_1 = x_46_re / -y_46_im;
	double t_2 = (x_46_im * (y_46_re / y_46_im)) / y_46_im;
	double tmp;
	if (y_46_im <= -1.3e-34) {
		tmp = t_1;
	} else if (y_46_im <= -1.3e-84) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.1e-84) {
		tmp = t_0;
	} else if (y_46_im <= -8.2e-86) {
		tmp = t_1;
	} else if (y_46_im <= -1.55e-92) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -6.4e-93) {
		tmp = t_1;
	} else if (y_46_im <= -1.5e-95) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.45e-95) {
		tmp = t_1;
	} else if (y_46_im <= -3.6e-133) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.75e-134) {
		tmp = t_2;
	} else if (y_46_im <= -2.2e-135) {
		tmp = t_1;
	} else if (y_46_im <= -2.5e-140) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -2.4e-140) {
		tmp = t_1;
	} else if (y_46_im <= -5e-167) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -4.3e-167) {
		tmp = t_1;
	} else if (y_46_im <= -1.6e-172) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.55e-172) {
		tmp = t_1;
	} else if (y_46_im <= -2.35e-209) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -2.3e-209) {
		tmp = t_1;
	} else if (y_46_im <= -1.05e-247) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1e-247) {
		tmp = t_1;
	} else if (y_46_im <= -1.85e-255) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.8e-255) {
		tmp = t_1;
	} else if (y_46_im <= -3.75e-289) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -3.7e-289) {
		tmp = t_1;
	} else if (y_46_im <= 1.25e-304) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.3e-304) {
		tmp = t_1;
	} else if (y_46_im <= 2.45e-294) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 8.2e-288) {
		tmp = t_1;
	} else if (y_46_im <= 6e-263) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 6.2e-263) {
		tmp = t_1;
	} else if (y_46_im <= 1.95e-250) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.35e-243) {
		tmp = t_1;
	} else if (y_46_im <= 1.2e-194) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 8e-185) {
		tmp = t_1;
	} else if (y_46_im <= 2.1e-143) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 2.8e-142) {
		tmp = t_1;
	} else if (y_46_im <= 1.05e-85) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.15e-85) {
		tmp = t_1;
	} else if (y_46_im <= 1.6e-52) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.6e-33) {
		tmp = t_1;
	} else if (y_46_im <= 4.5e-19) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 5.7e-19) {
		tmp = t_1;
	} else if (y_46_im <= 1.15e-13) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 8.5e-13) {
		tmp = t_1;
	} else if (y_46_im <= 0.00085) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 20.5) {
		tmp = t_1;
	} else if (y_46_im <= 210000000.0) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 2.45e+20) {
		tmp = t_1;
	} else if (y_46_im <= 3.6e+22) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 5.5e+22) {
		tmp = t_1;
	} else if (y_46_im <= 2.5e+33) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 2.1e+62) {
		tmp = t_1;
	} else if (y_46_im <= 3.6e+71) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.35e+82) {
		tmp = t_1;
	} else if (y_46_im <= 6e+86) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 7.5e+91) {
		tmp = t_1;
	} else if (y_46_im <= 2.9e+103) {
		tmp = t_2;
	} else if (y_46_im <= 1.1e+108) {
		tmp = t_1;
	} else if (y_46_im <= 8.2e+125) {
		tmp = t_0;
	} else if (y_46_im <= 1.8e+143) {
		tmp = t_1;
	} else if (y_46_im <= 6e+147) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 7.5e+241) {
		tmp = t_1;
	} else if (y_46_im <= 7.8e+241) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 7.5e+250) {
		tmp = t_1;
	} else if (y_46_im <= 7.8e+250) {
		tmp = t_0;
	} else if (y_46_im <= 5.8e+297) {
		tmp = t_1;
	} else {
		tmp = t_2;
	}
	return tmp;
}
def code(x_46_re, x_46_im, y_46_re, y_46_im):
	t_0 = x_46_im * ((y_46_re / y_46_im) / y_46_im)
	t_1 = x_46_re / -y_46_im
	t_2 = (x_46_im * (y_46_re / y_46_im)) / y_46_im
	tmp = 0
	if y_46_im <= -1.3e-34:
		tmp = t_1
	elif y_46_im <= -1.3e-84:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1.1e-84:
		tmp = t_0
	elif y_46_im <= -8.2e-86:
		tmp = t_1
	elif y_46_im <= -1.55e-92:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -6.4e-93:
		tmp = t_1
	elif y_46_im <= -1.5e-95:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1.45e-95:
		tmp = t_1
	elif y_46_im <= -3.6e-133:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1.75e-134:
		tmp = t_2
	elif y_46_im <= -2.2e-135:
		tmp = t_1
	elif y_46_im <= -2.5e-140:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -2.4e-140:
		tmp = t_1
	elif y_46_im <= -5e-167:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -4.3e-167:
		tmp = t_1
	elif y_46_im <= -1.6e-172:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1.55e-172:
		tmp = t_1
	elif y_46_im <= -2.35e-209:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -2.3e-209:
		tmp = t_1
	elif y_46_im <= -1.05e-247:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1e-247:
		tmp = t_1
	elif y_46_im <= -1.85e-255:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1.8e-255:
		tmp = t_1
	elif y_46_im <= -3.75e-289:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -3.7e-289:
		tmp = t_1
	elif y_46_im <= 1.25e-304:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 1.3e-304:
		tmp = t_1
	elif y_46_im <= 2.45e-294:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 8.2e-288:
		tmp = t_1
	elif y_46_im <= 6e-263:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 6.2e-263:
		tmp = t_1
	elif y_46_im <= 1.95e-250:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 1.35e-243:
		tmp = t_1
	elif y_46_im <= 1.2e-194:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 8e-185:
		tmp = t_1
	elif y_46_im <= 2.1e-143:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 2.8e-142:
		tmp = t_1
	elif y_46_im <= 1.05e-85:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 1.15e-85:
		tmp = t_1
	elif y_46_im <= 1.6e-52:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 1.6e-33:
		tmp = t_1
	elif y_46_im <= 4.5e-19:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 5.7e-19:
		tmp = t_1
	elif y_46_im <= 1.15e-13:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 8.5e-13:
		tmp = t_1
	elif y_46_im <= 0.00085:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 20.5:
		tmp = t_1
	elif y_46_im <= 210000000.0:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 2.45e+20:
		tmp = t_1
	elif y_46_im <= 3.6e+22:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 5.5e+22:
		tmp = t_1
	elif y_46_im <= 2.5e+33:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 2.1e+62:
		tmp = t_1
	elif y_46_im <= 3.6e+71:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 1.35e+82:
		tmp = t_1
	elif y_46_im <= 6e+86:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 7.5e+91:
		tmp = t_1
	elif y_46_im <= 2.9e+103:
		tmp = t_2
	elif y_46_im <= 1.1e+108:
		tmp = t_1
	elif y_46_im <= 8.2e+125:
		tmp = t_0
	elif y_46_im <= 1.8e+143:
		tmp = t_1
	elif y_46_im <= 6e+147:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 7.5e+241:
		tmp = t_1
	elif y_46_im <= 7.8e+241:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 7.5e+250:
		tmp = t_1
	elif y_46_im <= 7.8e+250:
		tmp = t_0
	elif y_46_im <= 5.8e+297:
		tmp = t_1
	else:
		tmp = t_2
	return tmp
function code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = Float64(x_46_im * Float64(Float64(y_46_re / y_46_im) / y_46_im))
	t_1 = Float64(x_46_re / Float64(-y_46_im))
	t_2 = Float64(Float64(x_46_im * Float64(y_46_re / y_46_im)) / y_46_im)
	tmp = 0.0
	if (y_46_im <= -1.3e-34)
		tmp = t_1;
	elseif (y_46_im <= -1.3e-84)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1.1e-84)
		tmp = t_0;
	elseif (y_46_im <= -8.2e-86)
		tmp = t_1;
	elseif (y_46_im <= -1.55e-92)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -6.4e-93)
		tmp = t_1;
	elseif (y_46_im <= -1.5e-95)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1.45e-95)
		tmp = t_1;
	elseif (y_46_im <= -3.6e-133)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1.75e-134)
		tmp = t_2;
	elseif (y_46_im <= -2.2e-135)
		tmp = t_1;
	elseif (y_46_im <= -2.5e-140)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -2.4e-140)
		tmp = t_1;
	elseif (y_46_im <= -5e-167)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -4.3e-167)
		tmp = t_1;
	elseif (y_46_im <= -1.6e-172)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1.55e-172)
		tmp = t_1;
	elseif (y_46_im <= -2.35e-209)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -2.3e-209)
		tmp = t_1;
	elseif (y_46_im <= -1.05e-247)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1e-247)
		tmp = t_1;
	elseif (y_46_im <= -1.85e-255)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1.8e-255)
		tmp = t_1;
	elseif (y_46_im <= -3.75e-289)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -3.7e-289)
		tmp = t_1;
	elseif (y_46_im <= 1.25e-304)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 1.3e-304)
		tmp = t_1;
	elseif (y_46_im <= 2.45e-294)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 8.2e-288)
		tmp = t_1;
	elseif (y_46_im <= 6e-263)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 6.2e-263)
		tmp = t_1;
	elseif (y_46_im <= 1.95e-250)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 1.35e-243)
		tmp = t_1;
	elseif (y_46_im <= 1.2e-194)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 8e-185)
		tmp = t_1;
	elseif (y_46_im <= 2.1e-143)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 2.8e-142)
		tmp = t_1;
	elseif (y_46_im <= 1.05e-85)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 1.15e-85)
		tmp = t_1;
	elseif (y_46_im <= 1.6e-52)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 1.6e-33)
		tmp = t_1;
	elseif (y_46_im <= 4.5e-19)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 5.7e-19)
		tmp = t_1;
	elseif (y_46_im <= 1.15e-13)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 8.5e-13)
		tmp = t_1;
	elseif (y_46_im <= 0.00085)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 20.5)
		tmp = t_1;
	elseif (y_46_im <= 210000000.0)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 2.45e+20)
		tmp = t_1;
	elseif (y_46_im <= 3.6e+22)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 5.5e+22)
		tmp = t_1;
	elseif (y_46_im <= 2.5e+33)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 2.1e+62)
		tmp = t_1;
	elseif (y_46_im <= 3.6e+71)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 1.35e+82)
		tmp = t_1;
	elseif (y_46_im <= 6e+86)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 7.5e+91)
		tmp = t_1;
	elseif (y_46_im <= 2.9e+103)
		tmp = t_2;
	elseif (y_46_im <= 1.1e+108)
		tmp = t_1;
	elseif (y_46_im <= 8.2e+125)
		tmp = t_0;
	elseif (y_46_im <= 1.8e+143)
		tmp = t_1;
	elseif (y_46_im <= 6e+147)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 7.5e+241)
		tmp = t_1;
	elseif (y_46_im <= 7.8e+241)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 7.5e+250)
		tmp = t_1;
	elseif (y_46_im <= 7.8e+250)
		tmp = t_0;
	elseif (y_46_im <= 5.8e+297)
		tmp = t_1;
	else
		tmp = t_2;
	end
	return tmp
end
function tmp_2 = code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	t_1 = x_46_re / -y_46_im;
	t_2 = (x_46_im * (y_46_re / y_46_im)) / y_46_im;
	tmp = 0.0;
	if (y_46_im <= -1.3e-34)
		tmp = t_1;
	elseif (y_46_im <= -1.3e-84)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1.1e-84)
		tmp = t_0;
	elseif (y_46_im <= -8.2e-86)
		tmp = t_1;
	elseif (y_46_im <= -1.55e-92)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -6.4e-93)
		tmp = t_1;
	elseif (y_46_im <= -1.5e-95)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1.45e-95)
		tmp = t_1;
	elseif (y_46_im <= -3.6e-133)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1.75e-134)
		tmp = t_2;
	elseif (y_46_im <= -2.2e-135)
		tmp = t_1;
	elseif (y_46_im <= -2.5e-140)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -2.4e-140)
		tmp = t_1;
	elseif (y_46_im <= -5e-167)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -4.3e-167)
		tmp = t_1;
	elseif (y_46_im <= -1.6e-172)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1.55e-172)
		tmp = t_1;
	elseif (y_46_im <= -2.35e-209)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -2.3e-209)
		tmp = t_1;
	elseif (y_46_im <= -1.05e-247)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1e-247)
		tmp = t_1;
	elseif (y_46_im <= -1.85e-255)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1.8e-255)
		tmp = t_1;
	elseif (y_46_im <= -3.75e-289)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -3.7e-289)
		tmp = t_1;
	elseif (y_46_im <= 1.25e-304)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 1.3e-304)
		tmp = t_1;
	elseif (y_46_im <= 2.45e-294)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 8.2e-288)
		tmp = t_1;
	elseif (y_46_im <= 6e-263)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 6.2e-263)
		tmp = t_1;
	elseif (y_46_im <= 1.95e-250)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 1.35e-243)
		tmp = t_1;
	elseif (y_46_im <= 1.2e-194)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 8e-185)
		tmp = t_1;
	elseif (y_46_im <= 2.1e-143)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 2.8e-142)
		tmp = t_1;
	elseif (y_46_im <= 1.05e-85)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 1.15e-85)
		tmp = t_1;
	elseif (y_46_im <= 1.6e-52)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 1.6e-33)
		tmp = t_1;
	elseif (y_46_im <= 4.5e-19)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 5.7e-19)
		tmp = t_1;
	elseif (y_46_im <= 1.15e-13)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 8.5e-13)
		tmp = t_1;
	elseif (y_46_im <= 0.00085)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 20.5)
		tmp = t_1;
	elseif (y_46_im <= 210000000.0)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 2.45e+20)
		tmp = t_1;
	elseif (y_46_im <= 3.6e+22)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 5.5e+22)
		tmp = t_1;
	elseif (y_46_im <= 2.5e+33)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 2.1e+62)
		tmp = t_1;
	elseif (y_46_im <= 3.6e+71)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 1.35e+82)
		tmp = t_1;
	elseif (y_46_im <= 6e+86)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 7.5e+91)
		tmp = t_1;
	elseif (y_46_im <= 2.9e+103)
		tmp = t_2;
	elseif (y_46_im <= 1.1e+108)
		tmp = t_1;
	elseif (y_46_im <= 8.2e+125)
		tmp = t_0;
	elseif (y_46_im <= 1.8e+143)
		tmp = t_1;
	elseif (y_46_im <= 6e+147)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 7.5e+241)
		tmp = t_1;
	elseif (y_46_im <= 7.8e+241)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 7.5e+250)
		tmp = t_1;
	elseif (y_46_im <= 7.8e+250)
		tmp = t_0;
	elseif (y_46_im <= 5.8e+297)
		tmp = t_1;
	else
		tmp = t_2;
	end
	tmp_2 = tmp;
end
code[x$46$re_, x$46$im_, y$46$re_, y$46$im_] := Block[{t$95$0 = N[(x$46$im * N[(N[(y$46$re / y$46$im), $MachinePrecision] / y$46$im), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(x$46$re / (-y$46$im)), $MachinePrecision]}, Block[{t$95$2 = N[(N[(x$46$im * N[(y$46$re / y$46$im), $MachinePrecision]), $MachinePrecision] / y$46$im), $MachinePrecision]}, If[LessEqual[y$46$im, -1.3e-34], t$95$1, If[LessEqual[y$46$im, -1.3e-84], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1.1e-84], t$95$0, If[LessEqual[y$46$im, -8.2e-86], t$95$1, If[LessEqual[y$46$im, -1.55e-92], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -6.4e-93], t$95$1, If[LessEqual[y$46$im, -1.5e-95], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1.45e-95], t$95$1, If[LessEqual[y$46$im, -3.6e-133], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1.75e-134], t$95$2, If[LessEqual[y$46$im, -2.2e-135], t$95$1, If[LessEqual[y$46$im, -2.5e-140], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -2.4e-140], t$95$1, If[LessEqual[y$46$im, -5e-167], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -4.3e-167], t$95$1, If[LessEqual[y$46$im, -1.6e-172], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1.55e-172], t$95$1, If[LessEqual[y$46$im, -2.35e-209], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -2.3e-209], t$95$1, If[LessEqual[y$46$im, -1.05e-247], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1e-247], t$95$1, If[LessEqual[y$46$im, -1.85e-255], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1.8e-255], t$95$1, If[LessEqual[y$46$im, -3.75e-289], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -3.7e-289], t$95$1, If[LessEqual[y$46$im, 1.25e-304], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 1.3e-304], t$95$1, If[LessEqual[y$46$im, 2.45e-294], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 8.2e-288], t$95$1, If[LessEqual[y$46$im, 6e-263], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 6.2e-263], t$95$1, If[LessEqual[y$46$im, 1.95e-250], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 1.35e-243], t$95$1, If[LessEqual[y$46$im, 1.2e-194], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 8e-185], t$95$1, If[LessEqual[y$46$im, 2.1e-143], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 2.8e-142], t$95$1, If[LessEqual[y$46$im, 1.05e-85], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 1.15e-85], t$95$1, If[LessEqual[y$46$im, 1.6e-52], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 1.6e-33], t$95$1, If[LessEqual[y$46$im, 4.5e-19], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 5.7e-19], t$95$1, If[LessEqual[y$46$im, 1.15e-13], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 8.5e-13], t$95$1, If[LessEqual[y$46$im, 0.00085], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 20.5], t$95$1, If[LessEqual[y$46$im, 210000000.0], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 2.45e+20], t$95$1, If[LessEqual[y$46$im, 3.6e+22], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 5.5e+22], t$95$1, If[LessEqual[y$46$im, 2.5e+33], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 2.1e+62], t$95$1, If[LessEqual[y$46$im, 3.6e+71], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 1.35e+82], t$95$1, If[LessEqual[y$46$im, 6e+86], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 7.5e+91], t$95$1, If[LessEqual[y$46$im, 2.9e+103], t$95$2, If[LessEqual[y$46$im, 1.1e+108], t$95$1, If[LessEqual[y$46$im, 8.2e+125], t$95$0, If[LessEqual[y$46$im, 1.8e+143], t$95$1, If[LessEqual[y$46$im, 6e+147], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 7.5e+241], t$95$1, If[LessEqual[y$46$im, 7.8e+241], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 7.5e+250], t$95$1, If[LessEqual[y$46$im, 7.8e+250], t$95$0, If[LessEqual[y$46$im, 5.8e+297], t$95$1, t$95$2]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\
t_1 := \frac{x.re}{-y.im}\\
t_2 := \frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\
\mathbf{if}\;y.im \leq -1.3 \cdot 10^{-34}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -1.3 \cdot 10^{-84}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1.1 \cdot 10^{-84}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq -8.2 \cdot 10^{-86}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-92}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -6.4 \cdot 10^{-93}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -1.5 \cdot 10^{-95}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1.45 \cdot 10^{-95}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -3.6 \cdot 10^{-133}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1.75 \cdot 10^{-134}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq -2.2 \cdot 10^{-135}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -2.5 \cdot 10^{-140}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -2.4 \cdot 10^{-140}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -5 \cdot 10^{-167}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -4.3 \cdot 10^{-167}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -1.6 \cdot 10^{-172}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-172}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -2.35 \cdot 10^{-209}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -2.3 \cdot 10^{-209}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -1.05 \cdot 10^{-247}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1 \cdot 10^{-247}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -1.85 \cdot 10^{-255}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1.8 \cdot 10^{-255}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -3.75 \cdot 10^{-289}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -3.7 \cdot 10^{-289}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.25 \cdot 10^{-304}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 1.3 \cdot 10^{-304}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 2.45 \cdot 10^{-294}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 8.2 \cdot 10^{-288}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 6 \cdot 10^{-263}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 6.2 \cdot 10^{-263}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.95 \cdot 10^{-250}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 1.35 \cdot 10^{-243}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.2 \cdot 10^{-194}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 8 \cdot 10^{-185}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 2.1 \cdot 10^{-143}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 2.8 \cdot 10^{-142}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.05 \cdot 10^{-85}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 1.15 \cdot 10^{-85}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.6 \cdot 10^{-52}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 1.6 \cdot 10^{-33}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 4.5 \cdot 10^{-19}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 5.7 \cdot 10^{-19}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.15 \cdot 10^{-13}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 8.5 \cdot 10^{-13}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 0.00085:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 20.5:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 210000000:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 2.45 \cdot 10^{+20}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 3.6 \cdot 10^{+22}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 5.5 \cdot 10^{+22}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 2.5 \cdot 10^{+33}:\\
\;\;\;\;\frac{x.im}{y.re}\\

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

\mathbf{elif}\;y.im \leq 3.6 \cdot 10^{+71}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 1.35 \cdot 10^{+82}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 6 \cdot 10^{+86}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+91}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 2.9 \cdot 10^{+103}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq 1.1 \cdot 10^{+108}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 8.2 \cdot 10^{+125}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq 1.8 \cdot 10^{+143}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 6 \cdot 10^{+147}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+241}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+241}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+250}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+250}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq 5.8 \cdot 10^{+297}:\\
\;\;\;\;t\_1\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 4 regimes
  2. if y.im < -1.3e-34 or -1.0999999999999999e-84 < y.im < -8.19999999999999959e-86 or -1.55e-92 < y.im < -6.3999999999999997e-93 or -1.5e-95 < y.im < -1.45000000000000001e-95 or -1.7499999999999999e-134 < y.im < -2.2e-135 or -2.50000000000000007e-140 < y.im < -2.39999999999999987e-140 or -5.0000000000000002e-167 < y.im < -4.2999999999999998e-167 or -1.6000000000000001e-172 < y.im < -1.5500000000000001e-172 or -2.35e-209 < y.im < -2.3e-209 or -1.05000000000000007e-247 < y.im < -1e-247 or -1.8500000000000001e-255 < y.im < -1.8000000000000001e-255 or -3.74999999999999999e-289 < y.im < -3.69999999999999989e-289 or 1.24999999999999991e-304 < y.im < 1.29999999999999998e-304 or 2.4499999999999999e-294 < y.im < 8.20000000000000015e-288 or 6.0000000000000001e-263 < y.im < 6.20000000000000008e-263 or 1.95000000000000014e-250 < y.im < 1.35000000000000005e-243 or 1.2e-194 < y.im < 7.9999999999999999e-185 or 2.1000000000000001e-143 < y.im < 2.80000000000000004e-142 or 1.05e-85 < y.im < 1.15e-85 or 1.60000000000000005e-52 < y.im < 1.59999999999999988e-33 or 4.50000000000000013e-19 < y.im < 5.69999999999999952e-19 or 1.1499999999999999e-13 < y.im < 8.5000000000000001e-13 or 8.49999999999999953e-4 < y.im < 20.5 or 2.1e8 < y.im < 2.45e20 or 3.6e22 < y.im < 5.50000000000000021e22 or 2.49999999999999986e33 < y.im < 2.1e62 or 3.6e71 < y.im < 1.35e82 or 5.99999999999999954e86 < y.im < 7.50000000000000033e91 or 2.8999999999999998e103 < y.im < 1.1000000000000001e108 or 8.19999999999999983e125 < y.im < 1.8e143 or 5.99999999999999987e147 < y.im < 7.5000000000000001e241 or 7.80000000000000052e241 < y.im < 7.4999999999999997e250 or 7.8e250 < y.im < 5.8000000000000005e297

    1. Initial program 58.5%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around 0 68.1%

      \[\leadsto \color{blue}{-1 \cdot \frac{x.re}{y.im}} \]
    4. Step-by-step derivation
      1. associate-*r/68.1%

        \[\leadsto \color{blue}{\frac{-1 \cdot x.re}{y.im}} \]
      2. neg-mul-168.1%

        \[\leadsto \frac{\color{blue}{-x.re}}{y.im} \]
    5. Simplified68.1%

      \[\leadsto \color{blue}{\frac{-x.re}{y.im}} \]

    if -1.3e-34 < y.im < -1.3e-84 or -8.19999999999999959e-86 < y.im < -1.55e-92 or -6.3999999999999997e-93 < y.im < -1.5e-95 or -1.45000000000000001e-95 < y.im < -3.6000000000000004e-133 or -2.2e-135 < y.im < -2.50000000000000007e-140 or -2.39999999999999987e-140 < y.im < -5.0000000000000002e-167 or -4.2999999999999998e-167 < y.im < -1.6000000000000001e-172 or -1.5500000000000001e-172 < y.im < -2.35e-209 or -2.3e-209 < y.im < -1.05000000000000007e-247 or -1e-247 < y.im < -1.8500000000000001e-255 or -1.8000000000000001e-255 < y.im < -3.74999999999999999e-289 or -3.69999999999999989e-289 < y.im < 1.24999999999999991e-304 or 1.29999999999999998e-304 < y.im < 2.4499999999999999e-294 or 8.20000000000000015e-288 < y.im < 6.0000000000000001e-263 or 6.20000000000000008e-263 < y.im < 1.95000000000000014e-250 or 1.35000000000000005e-243 < y.im < 1.2e-194 or 7.9999999999999999e-185 < y.im < 2.1000000000000001e-143 or 2.80000000000000004e-142 < y.im < 1.05e-85 or 1.15e-85 < y.im < 1.60000000000000005e-52 or 1.59999999999999988e-33 < y.im < 4.50000000000000013e-19 or 5.69999999999999952e-19 < y.im < 1.1499999999999999e-13 or 8.5000000000000001e-13 < y.im < 8.49999999999999953e-4 or 20.5 < y.im < 2.1e8 or 2.45e20 < y.im < 3.6e22 or 5.50000000000000021e22 < y.im < 2.49999999999999986e33 or 2.1e62 < y.im < 3.6e71 or 1.35e82 < y.im < 5.99999999999999954e86 or 1.8e143 < y.im < 5.99999999999999987e147 or 7.5000000000000001e241 < y.im < 7.80000000000000052e241

    1. Initial program 62.1%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around inf 90.0%

      \[\leadsto \color{blue}{\frac{x.im}{y.re}} \]

    if -1.3e-84 < y.im < -1.0999999999999999e-84 or 1.1000000000000001e108 < y.im < 8.19999999999999983e125 or 7.4999999999999997e250 < y.im < 7.8e250

    1. Initial program 51.1%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub51.1%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative51.1%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt51.1%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac74.6%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg74.6%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define74.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define74.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*99.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt99.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow299.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define99.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr99.6%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 51.4%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/99.6%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified99.6%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 51.4%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/99.6%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified99.6%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    11. Step-by-step derivation
      1. associate-/l*100.0%

        \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]
    12. Applied egg-rr100.0%

      \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]

    if -3.6000000000000004e-133 < y.im < -1.7499999999999999e-134 or 7.50000000000000033e91 < y.im < 2.8999999999999998e103 or 5.8000000000000005e297 < y.im

    1. Initial program 68.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub68.0%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative68.0%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt68.0%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac52.9%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg52.9%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define52.9%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define68.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*68.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt68.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow268.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define68.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr68.6%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 67.7%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/67.9%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified67.9%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 67.5%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/68.4%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified68.4%

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;y.im \leq -1.3 \cdot 10^{-34}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.3 \cdot 10^{-84}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.1 \cdot 10^{-84}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq -8.2 \cdot 10^{-86}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-92}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -6.4 \cdot 10^{-93}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.5 \cdot 10^{-95}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.45 \cdot 10^{-95}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -3.6 \cdot 10^{-133}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.75 \cdot 10^{-134}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq -2.2 \cdot 10^{-135}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -2.5 \cdot 10^{-140}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -2.4 \cdot 10^{-140}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -5 \cdot 10^{-167}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -4.3 \cdot 10^{-167}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.6 \cdot 10^{-172}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-172}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -2.35 \cdot 10^{-209}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -2.3 \cdot 10^{-209}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.05 \cdot 10^{-247}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1 \cdot 10^{-247}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.85 \cdot 10^{-255}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.8 \cdot 10^{-255}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -3.75 \cdot 10^{-289}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -3.7 \cdot 10^{-289}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{-304}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.3 \cdot 10^{-304}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.45 \cdot 10^{-294}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 8.2 \cdot 10^{-288}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{-263}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 6.2 \cdot 10^{-263}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.95 \cdot 10^{-250}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.35 \cdot 10^{-243}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.2 \cdot 10^{-194}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 8 \cdot 10^{-185}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.1 \cdot 10^{-143}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 2.8 \cdot 10^{-142}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.05 \cdot 10^{-85}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.15 \cdot 10^{-85}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.6 \cdot 10^{-52}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.6 \cdot 10^{-33}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 4.5 \cdot 10^{-19}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 5.7 \cdot 10^{-19}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.15 \cdot 10^{-13}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 8.5 \cdot 10^{-13}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 0.00085:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 20.5:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 210000000:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 2.45 \cdot 10^{+20}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 3.6 \cdot 10^{+22}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 5.5 \cdot 10^{+22}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.5 \cdot 10^{+33}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 2.1 \cdot 10^{+62}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 3.6 \cdot 10^{+71}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.35 \cdot 10^{+82}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{+86}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+91}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.9 \cdot 10^{+103}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq 1.1 \cdot 10^{+108}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 8.2 \cdot 10^{+125}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq 1.8 \cdot 10^{+143}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{+147}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+241}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+241}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+250}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+250}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq 5.8 \cdot 10^{+297}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{else}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\ \end{array} \]
  5. Add Preprocessing

Alternative 12: 61.0% accurate, 0.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ t_1 := \frac{x.re}{-y.im}\\ \mathbf{if}\;y.im \leq -1.55 \cdot 10^{-35}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -1.3 \cdot 10^{-84}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -3.5 \cdot 10^{-85}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq -9.5 \cdot 10^{-87}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-92}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.4 \cdot 10^{-92}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -1.5 \cdot 10^{-95}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.45 \cdot 10^{-95}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -3.6 \cdot 10^{-133}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-133}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq -2.2 \cdot 10^{-135}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -2.5 \cdot 10^{-140}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -2.4 \cdot 10^{-140}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -4.4 \cdot 10^{-167}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -4.3 \cdot 10^{-167}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -1.6 \cdot 10^{-172}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-172}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -2.35 \cdot 10^{-209}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -2.3 \cdot 10^{-209}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -1.05 \cdot 10^{-247}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1 \cdot 10^{-247}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -1.85 \cdot 10^{-255}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.8 \cdot 10^{-255}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -3.75 \cdot 10^{-289}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -3.7 \cdot 10^{-289}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{-304}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.3 \cdot 10^{-304}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 2.45 \cdot 10^{-294}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 8.2 \cdot 10^{-288}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{-263}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 6.2 \cdot 10^{-263}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.95 \cdot 10^{-250}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.35 \cdot 10^{-243}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.2 \cdot 10^{-194}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 8.8 \cdot 10^{-185}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 2.1 \cdot 10^{-143}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 2.2 \cdot 10^{-143}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.1 \cdot 10^{-85}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.15 \cdot 10^{-85}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 7.6 \cdot 10^{-52}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 10^{-33}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 3.2 \cdot 10^{-20}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 9.5 \cdot 10^{-15}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 3.5 \cdot 10^{-13}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 5.6 \cdot 10^{-12}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 0.00086:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 0.0018:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 16500000:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{+20}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 2.65 \cdot 10^{+22}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 3.5 \cdot 10^{+24}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 5 \cdot 10^{+44}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 9 \cdot 10^{+59}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 3.6 \cdot 10^{+71}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.35 \cdot 10^{+82}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.4 \cdot 10^{+82}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+91}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 2.9 \cdot 10^{+103}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq 1.9 \cdot 10^{+110}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 7 \cdot 10^{+125}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq 1.8 \cdot 10^{+143}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{+147}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+241}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+241}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+250} \lor \neg \left(y.im \leq 7.8 \cdot 10^{+250}\right):\\ \;\;\;\;t\_1\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
(FPCore (x.re x.im y.re y.im)
 :precision binary64
 (let* ((t_0 (* x.im (/ (/ y.re y.im) y.im))) (t_1 (/ x.re (- y.im))))
   (if (<= y.im -1.55e-35)
     t_1
     (if (<= y.im -1.3e-84)
       (/ x.im y.re)
       (if (<= y.im -3.5e-85)
         t_0
         (if (<= y.im -9.5e-87)
           t_1
           (if (<= y.im -1.55e-92)
             (/ x.im y.re)
             (if (<= y.im -1.4e-92)
               t_1
               (if (<= y.im -1.5e-95)
                 (/ x.im y.re)
                 (if (<= y.im -1.45e-95)
                   t_1
                   (if (<= y.im -3.6e-133)
                     (/ x.im y.re)
                     (if (<= y.im -1.55e-133)
                       t_0
                       (if (<= y.im -2.2e-135)
                         t_1
                         (if (<= y.im -2.5e-140)
                           (/ x.im y.re)
                           (if (<= y.im -2.4e-140)
                             t_1
                             (if (<= y.im -4.4e-167)
                               (/ x.im y.re)
                               (if (<= y.im -4.3e-167)
                                 t_1
                                 (if (<= y.im -1.6e-172)
                                   (/ x.im y.re)
                                   (if (<= y.im -1.55e-172)
                                     t_1
                                     (if (<= y.im -2.35e-209)
                                       (/ x.im y.re)
                                       (if (<= y.im -2.3e-209)
                                         t_1
                                         (if (<= y.im -1.05e-247)
                                           (/ x.im y.re)
                                           (if (<= y.im -1e-247)
                                             t_1
                                             (if (<= y.im -1.85e-255)
                                               (/ x.im y.re)
                                               (if (<= y.im -1.8e-255)
                                                 t_1
                                                 (if (<= y.im -3.75e-289)
                                                   (/ x.im y.re)
                                                   (if (<= y.im -3.7e-289)
                                                     t_1
                                                     (if (<= y.im 1.25e-304)
                                                       (/ x.im y.re)
                                                       (if (<= y.im 1.3e-304)
                                                         t_1
                                                         (if (<=
                                                              y.im
                                                              2.45e-294)
                                                           (/ x.im y.re)
                                                           (if (<=
                                                                y.im
                                                                8.2e-288)
                                                             t_1
                                                             (if (<=
                                                                  y.im
                                                                  6e-263)
                                                               (/ x.im y.re)
                                                               (if (<=
                                                                    y.im
                                                                    6.2e-263)
                                                                 t_1
                                                                 (if (<=
                                                                      y.im
                                                                      1.95e-250)
                                                                   (/
                                                                    x.im
                                                                    y.re)
                                                                   (if (<=
                                                                        y.im
                                                                        1.35e-243)
                                                                     t_1
                                                                     (if (<=
                                                                          y.im
                                                                          1.2e-194)
                                                                       (/
                                                                        x.im
                                                                        y.re)
                                                                       (if (<=
                                                                            y.im
                                                                            8.8e-185)
                                                                         t_1
                                                                         (if (<=
                                                                              y.im
                                                                              2.1e-143)
                                                                           (/
                                                                            x.im
                                                                            y.re)
                                                                           (if (<=
                                                                                y.im
                                                                                2.2e-143)
                                                                             t_1
                                                                             (if (<=
                                                                                  y.im
                                                                                  1.1e-85)
                                                                               (/
                                                                                x.im
                                                                                y.re)
                                                                               (if (<=
                                                                                    y.im
                                                                                    1.15e-85)
                                                                                 t_1
                                                                                 (if (<=
                                                                                      y.im
                                                                                      7.6e-52)
                                                                                   (/
                                                                                    x.im
                                                                                    y.re)
                                                                                   (if (<=
                                                                                        y.im
                                                                                        1e-33)
                                                                                     t_1
                                                                                     (if (<=
                                                                                          y.im
                                                                                          3.2e-20)
                                                                                       (/
                                                                                        x.im
                                                                                        y.re)
                                                                                       (if (<=
                                                                                            y.im
                                                                                            9.5e-15)
                                                                                         t_1
                                                                                         (if (<=
                                                                                              y.im
                                                                                              3.5e-13)
                                                                                           (/
                                                                                            x.im
                                                                                            y.re)
                                                                                           (if (<=
                                                                                                y.im
                                                                                                5.6e-12)
                                                                                             t_1
                                                                                             (if (<=
                                                                                                  y.im
                                                                                                  0.00086)
                                                                                               (/
                                                                                                x.im
                                                                                                y.re)
                                                                                               (if (<=
                                                                                                    y.im
                                                                                                    0.0018)
                                                                                                 t_1
                                                                                                 (if (<=
                                                                                                      y.im
                                                                                                      16500000.0)
                                                                                                   (/
                                                                                                    x.im
                                                                                                    y.re)
                                                                                                   (if (<=
                                                                                                        y.im
                                                                                                        6e+20)
                                                                                                     t_1
                                                                                                     (if (<=
                                                                                                          y.im
                                                                                                          2.65e+22)
                                                                                                       (/
                                                                                                        x.im
                                                                                                        y.re)
                                                                                                       (if (<=
                                                                                                            y.im
                                                                                                            3.5e+24)
                                                                                                         t_1
                                                                                                         (if (<=
                                                                                                              y.im
                                                                                                              5e+44)
                                                                                                           (/
                                                                                                            x.im
                                                                                                            y.re)
                                                                                                           (if (<=
                                                                                                                y.im
                                                                                                                9e+59)
                                                                                                             t_1
                                                                                                             (if (<=
                                                                                                                  y.im
                                                                                                                  3.6e+71)
                                                                                                               (/
                                                                                                                x.im
                                                                                                                y.re)
                                                                                                               (if (<=
                                                                                                                    y.im
                                                                                                                    1.35e+82)
                                                                                                                 t_1
                                                                                                                 (if (<=
                                                                                                                      y.im
                                                                                                                      1.4e+82)
                                                                                                                   (/
                                                                                                                    x.im
                                                                                                                    y.re)
                                                                                                                   (if (<=
                                                                                                                        y.im
                                                                                                                        7.5e+91)
                                                                                                                     t_1
                                                                                                                     (if (<=
                                                                                                                          y.im
                                                                                                                          2.9e+103)
                                                                                                                       t_0
                                                                                                                       (if (<=
                                                                                                                            y.im
                                                                                                                            1.9e+110)
                                                                                                                         t_1
                                                                                                                         (if (<=
                                                                                                                              y.im
                                                                                                                              7e+125)
                                                                                                                           t_0
                                                                                                                           (if (<=
                                                                                                                                y.im
                                                                                                                                1.8e+143)
                                                                                                                             t_1
                                                                                                                             (if (<=
                                                                                                                                  y.im
                                                                                                                                  6e+147)
                                                                                                                               (/
                                                                                                                                x.im
                                                                                                                                y.re)
                                                                                                                               (if (<=
                                                                                                                                    y.im
                                                                                                                                    7.5e+241)
                                                                                                                                 t_1
                                                                                                                                 (if (<=
                                                                                                                                      y.im
                                                                                                                                      7.8e+241)
                                                                                                                                   (/
                                                                                                                                    x.im
                                                                                                                                    y.re)
                                                                                                                                   (if (or (<=
                                                                                                                                            y.im
                                                                                                                                            7.5e+250)
                                                                                                                                           (not
                                                                                                                                            (<=
                                                                                                                                             y.im
                                                                                                                                             7.8e+250)))
                                                                                                                                     t_1
                                                                                                                                     t_0)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double t_0 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	double t_1 = x_46_re / -y_46_im;
	double tmp;
	if (y_46_im <= -1.55e-35) {
		tmp = t_1;
	} else if (y_46_im <= -1.3e-84) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -3.5e-85) {
		tmp = t_0;
	} else if (y_46_im <= -9.5e-87) {
		tmp = t_1;
	} else if (y_46_im <= -1.55e-92) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.4e-92) {
		tmp = t_1;
	} else if (y_46_im <= -1.5e-95) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.45e-95) {
		tmp = t_1;
	} else if (y_46_im <= -3.6e-133) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.55e-133) {
		tmp = t_0;
	} else if (y_46_im <= -2.2e-135) {
		tmp = t_1;
	} else if (y_46_im <= -2.5e-140) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -2.4e-140) {
		tmp = t_1;
	} else if (y_46_im <= -4.4e-167) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -4.3e-167) {
		tmp = t_1;
	} else if (y_46_im <= -1.6e-172) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.55e-172) {
		tmp = t_1;
	} else if (y_46_im <= -2.35e-209) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -2.3e-209) {
		tmp = t_1;
	} else if (y_46_im <= -1.05e-247) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1e-247) {
		tmp = t_1;
	} else if (y_46_im <= -1.85e-255) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.8e-255) {
		tmp = t_1;
	} else if (y_46_im <= -3.75e-289) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -3.7e-289) {
		tmp = t_1;
	} else if (y_46_im <= 1.25e-304) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.3e-304) {
		tmp = t_1;
	} else if (y_46_im <= 2.45e-294) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 8.2e-288) {
		tmp = t_1;
	} else if (y_46_im <= 6e-263) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 6.2e-263) {
		tmp = t_1;
	} else if (y_46_im <= 1.95e-250) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.35e-243) {
		tmp = t_1;
	} else if (y_46_im <= 1.2e-194) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 8.8e-185) {
		tmp = t_1;
	} else if (y_46_im <= 2.1e-143) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 2.2e-143) {
		tmp = t_1;
	} else if (y_46_im <= 1.1e-85) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.15e-85) {
		tmp = t_1;
	} else if (y_46_im <= 7.6e-52) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1e-33) {
		tmp = t_1;
	} else if (y_46_im <= 3.2e-20) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 9.5e-15) {
		tmp = t_1;
	} else if (y_46_im <= 3.5e-13) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 5.6e-12) {
		tmp = t_1;
	} else if (y_46_im <= 0.00086) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 0.0018) {
		tmp = t_1;
	} else if (y_46_im <= 16500000.0) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 6e+20) {
		tmp = t_1;
	} else if (y_46_im <= 2.65e+22) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 3.5e+24) {
		tmp = t_1;
	} else if (y_46_im <= 5e+44) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 9e+59) {
		tmp = t_1;
	} else if (y_46_im <= 3.6e+71) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.35e+82) {
		tmp = t_1;
	} else if (y_46_im <= 1.4e+82) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 7.5e+91) {
		tmp = t_1;
	} else if (y_46_im <= 2.9e+103) {
		tmp = t_0;
	} else if (y_46_im <= 1.9e+110) {
		tmp = t_1;
	} else if (y_46_im <= 7e+125) {
		tmp = t_0;
	} else if (y_46_im <= 1.8e+143) {
		tmp = t_1;
	} else if (y_46_im <= 6e+147) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 7.5e+241) {
		tmp = t_1;
	} else if (y_46_im <= 7.8e+241) {
		tmp = x_46_im / y_46_re;
	} else if ((y_46_im <= 7.5e+250) || !(y_46_im <= 7.8e+250)) {
		tmp = t_1;
	} else {
		tmp = t_0;
	}
	return tmp;
}
real(8) function code(x_46re, x_46im, y_46re, y_46im)
    real(8), intent (in) :: x_46re
    real(8), intent (in) :: x_46im
    real(8), intent (in) :: y_46re
    real(8), intent (in) :: y_46im
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: tmp
    t_0 = x_46im * ((y_46re / y_46im) / y_46im)
    t_1 = x_46re / -y_46im
    if (y_46im <= (-1.55d-35)) then
        tmp = t_1
    else if (y_46im <= (-1.3d-84)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-3.5d-85)) then
        tmp = t_0
    else if (y_46im <= (-9.5d-87)) then
        tmp = t_1
    else if (y_46im <= (-1.55d-92)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1.4d-92)) then
        tmp = t_1
    else if (y_46im <= (-1.5d-95)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1.45d-95)) then
        tmp = t_1
    else if (y_46im <= (-3.6d-133)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1.55d-133)) then
        tmp = t_0
    else if (y_46im <= (-2.2d-135)) then
        tmp = t_1
    else if (y_46im <= (-2.5d-140)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-2.4d-140)) then
        tmp = t_1
    else if (y_46im <= (-4.4d-167)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-4.3d-167)) then
        tmp = t_1
    else if (y_46im <= (-1.6d-172)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1.55d-172)) then
        tmp = t_1
    else if (y_46im <= (-2.35d-209)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-2.3d-209)) then
        tmp = t_1
    else if (y_46im <= (-1.05d-247)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1d-247)) then
        tmp = t_1
    else if (y_46im <= (-1.85d-255)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1.8d-255)) then
        tmp = t_1
    else if (y_46im <= (-3.75d-289)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-3.7d-289)) then
        tmp = t_1
    else if (y_46im <= 1.25d-304) then
        tmp = x_46im / y_46re
    else if (y_46im <= 1.3d-304) then
        tmp = t_1
    else if (y_46im <= 2.45d-294) then
        tmp = x_46im / y_46re
    else if (y_46im <= 8.2d-288) then
        tmp = t_1
    else if (y_46im <= 6d-263) then
        tmp = x_46im / y_46re
    else if (y_46im <= 6.2d-263) then
        tmp = t_1
    else if (y_46im <= 1.95d-250) then
        tmp = x_46im / y_46re
    else if (y_46im <= 1.35d-243) then
        tmp = t_1
    else if (y_46im <= 1.2d-194) then
        tmp = x_46im / y_46re
    else if (y_46im <= 8.8d-185) then
        tmp = t_1
    else if (y_46im <= 2.1d-143) then
        tmp = x_46im / y_46re
    else if (y_46im <= 2.2d-143) then
        tmp = t_1
    else if (y_46im <= 1.1d-85) then
        tmp = x_46im / y_46re
    else if (y_46im <= 1.15d-85) then
        tmp = t_1
    else if (y_46im <= 7.6d-52) then
        tmp = x_46im / y_46re
    else if (y_46im <= 1d-33) then
        tmp = t_1
    else if (y_46im <= 3.2d-20) then
        tmp = x_46im / y_46re
    else if (y_46im <= 9.5d-15) then
        tmp = t_1
    else if (y_46im <= 3.5d-13) then
        tmp = x_46im / y_46re
    else if (y_46im <= 5.6d-12) then
        tmp = t_1
    else if (y_46im <= 0.00086d0) then
        tmp = x_46im / y_46re
    else if (y_46im <= 0.0018d0) then
        tmp = t_1
    else if (y_46im <= 16500000.0d0) then
        tmp = x_46im / y_46re
    else if (y_46im <= 6d+20) then
        tmp = t_1
    else if (y_46im <= 2.65d+22) then
        tmp = x_46im / y_46re
    else if (y_46im <= 3.5d+24) then
        tmp = t_1
    else if (y_46im <= 5d+44) then
        tmp = x_46im / y_46re
    else if (y_46im <= 9d+59) then
        tmp = t_1
    else if (y_46im <= 3.6d+71) then
        tmp = x_46im / y_46re
    else if (y_46im <= 1.35d+82) then
        tmp = t_1
    else if (y_46im <= 1.4d+82) then
        tmp = x_46im / y_46re
    else if (y_46im <= 7.5d+91) then
        tmp = t_1
    else if (y_46im <= 2.9d+103) then
        tmp = t_0
    else if (y_46im <= 1.9d+110) then
        tmp = t_1
    else if (y_46im <= 7d+125) then
        tmp = t_0
    else if (y_46im <= 1.8d+143) then
        tmp = t_1
    else if (y_46im <= 6d+147) then
        tmp = x_46im / y_46re
    else if (y_46im <= 7.5d+241) then
        tmp = t_1
    else if (y_46im <= 7.8d+241) then
        tmp = x_46im / y_46re
    else if ((y_46im <= 7.5d+250) .or. (.not. (y_46im <= 7.8d+250))) then
        tmp = t_1
    else
        tmp = t_0
    end if
    code = tmp
end function
public static double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double t_0 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	double t_1 = x_46_re / -y_46_im;
	double tmp;
	if (y_46_im <= -1.55e-35) {
		tmp = t_1;
	} else if (y_46_im <= -1.3e-84) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -3.5e-85) {
		tmp = t_0;
	} else if (y_46_im <= -9.5e-87) {
		tmp = t_1;
	} else if (y_46_im <= -1.55e-92) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.4e-92) {
		tmp = t_1;
	} else if (y_46_im <= -1.5e-95) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.45e-95) {
		tmp = t_1;
	} else if (y_46_im <= -3.6e-133) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.55e-133) {
		tmp = t_0;
	} else if (y_46_im <= -2.2e-135) {
		tmp = t_1;
	} else if (y_46_im <= -2.5e-140) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -2.4e-140) {
		tmp = t_1;
	} else if (y_46_im <= -4.4e-167) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -4.3e-167) {
		tmp = t_1;
	} else if (y_46_im <= -1.6e-172) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.55e-172) {
		tmp = t_1;
	} else if (y_46_im <= -2.35e-209) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -2.3e-209) {
		tmp = t_1;
	} else if (y_46_im <= -1.05e-247) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1e-247) {
		tmp = t_1;
	} else if (y_46_im <= -1.85e-255) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.8e-255) {
		tmp = t_1;
	} else if (y_46_im <= -3.75e-289) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -3.7e-289) {
		tmp = t_1;
	} else if (y_46_im <= 1.25e-304) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.3e-304) {
		tmp = t_1;
	} else if (y_46_im <= 2.45e-294) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 8.2e-288) {
		tmp = t_1;
	} else if (y_46_im <= 6e-263) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 6.2e-263) {
		tmp = t_1;
	} else if (y_46_im <= 1.95e-250) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.35e-243) {
		tmp = t_1;
	} else if (y_46_im <= 1.2e-194) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 8.8e-185) {
		tmp = t_1;
	} else if (y_46_im <= 2.1e-143) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 2.2e-143) {
		tmp = t_1;
	} else if (y_46_im <= 1.1e-85) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.15e-85) {
		tmp = t_1;
	} else if (y_46_im <= 7.6e-52) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1e-33) {
		tmp = t_1;
	} else if (y_46_im <= 3.2e-20) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 9.5e-15) {
		tmp = t_1;
	} else if (y_46_im <= 3.5e-13) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 5.6e-12) {
		tmp = t_1;
	} else if (y_46_im <= 0.00086) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 0.0018) {
		tmp = t_1;
	} else if (y_46_im <= 16500000.0) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 6e+20) {
		tmp = t_1;
	} else if (y_46_im <= 2.65e+22) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 3.5e+24) {
		tmp = t_1;
	} else if (y_46_im <= 5e+44) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 9e+59) {
		tmp = t_1;
	} else if (y_46_im <= 3.6e+71) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.35e+82) {
		tmp = t_1;
	} else if (y_46_im <= 1.4e+82) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 7.5e+91) {
		tmp = t_1;
	} else if (y_46_im <= 2.9e+103) {
		tmp = t_0;
	} else if (y_46_im <= 1.9e+110) {
		tmp = t_1;
	} else if (y_46_im <= 7e+125) {
		tmp = t_0;
	} else if (y_46_im <= 1.8e+143) {
		tmp = t_1;
	} else if (y_46_im <= 6e+147) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 7.5e+241) {
		tmp = t_1;
	} else if (y_46_im <= 7.8e+241) {
		tmp = x_46_im / y_46_re;
	} else if ((y_46_im <= 7.5e+250) || !(y_46_im <= 7.8e+250)) {
		tmp = t_1;
	} else {
		tmp = t_0;
	}
	return tmp;
}
def code(x_46_re, x_46_im, y_46_re, y_46_im):
	t_0 = x_46_im * ((y_46_re / y_46_im) / y_46_im)
	t_1 = x_46_re / -y_46_im
	tmp = 0
	if y_46_im <= -1.55e-35:
		tmp = t_1
	elif y_46_im <= -1.3e-84:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -3.5e-85:
		tmp = t_0
	elif y_46_im <= -9.5e-87:
		tmp = t_1
	elif y_46_im <= -1.55e-92:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1.4e-92:
		tmp = t_1
	elif y_46_im <= -1.5e-95:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1.45e-95:
		tmp = t_1
	elif y_46_im <= -3.6e-133:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1.55e-133:
		tmp = t_0
	elif y_46_im <= -2.2e-135:
		tmp = t_1
	elif y_46_im <= -2.5e-140:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -2.4e-140:
		tmp = t_1
	elif y_46_im <= -4.4e-167:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -4.3e-167:
		tmp = t_1
	elif y_46_im <= -1.6e-172:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1.55e-172:
		tmp = t_1
	elif y_46_im <= -2.35e-209:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -2.3e-209:
		tmp = t_1
	elif y_46_im <= -1.05e-247:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1e-247:
		tmp = t_1
	elif y_46_im <= -1.85e-255:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1.8e-255:
		tmp = t_1
	elif y_46_im <= -3.75e-289:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -3.7e-289:
		tmp = t_1
	elif y_46_im <= 1.25e-304:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 1.3e-304:
		tmp = t_1
	elif y_46_im <= 2.45e-294:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 8.2e-288:
		tmp = t_1
	elif y_46_im <= 6e-263:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 6.2e-263:
		tmp = t_1
	elif y_46_im <= 1.95e-250:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 1.35e-243:
		tmp = t_1
	elif y_46_im <= 1.2e-194:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 8.8e-185:
		tmp = t_1
	elif y_46_im <= 2.1e-143:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 2.2e-143:
		tmp = t_1
	elif y_46_im <= 1.1e-85:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 1.15e-85:
		tmp = t_1
	elif y_46_im <= 7.6e-52:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 1e-33:
		tmp = t_1
	elif y_46_im <= 3.2e-20:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 9.5e-15:
		tmp = t_1
	elif y_46_im <= 3.5e-13:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 5.6e-12:
		tmp = t_1
	elif y_46_im <= 0.00086:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 0.0018:
		tmp = t_1
	elif y_46_im <= 16500000.0:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 6e+20:
		tmp = t_1
	elif y_46_im <= 2.65e+22:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 3.5e+24:
		tmp = t_1
	elif y_46_im <= 5e+44:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 9e+59:
		tmp = t_1
	elif y_46_im <= 3.6e+71:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 1.35e+82:
		tmp = t_1
	elif y_46_im <= 1.4e+82:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 7.5e+91:
		tmp = t_1
	elif y_46_im <= 2.9e+103:
		tmp = t_0
	elif y_46_im <= 1.9e+110:
		tmp = t_1
	elif y_46_im <= 7e+125:
		tmp = t_0
	elif y_46_im <= 1.8e+143:
		tmp = t_1
	elif y_46_im <= 6e+147:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 7.5e+241:
		tmp = t_1
	elif y_46_im <= 7.8e+241:
		tmp = x_46_im / y_46_re
	elif (y_46_im <= 7.5e+250) or not (y_46_im <= 7.8e+250):
		tmp = t_1
	else:
		tmp = t_0
	return tmp
function code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = Float64(x_46_im * Float64(Float64(y_46_re / y_46_im) / y_46_im))
	t_1 = Float64(x_46_re / Float64(-y_46_im))
	tmp = 0.0
	if (y_46_im <= -1.55e-35)
		tmp = t_1;
	elseif (y_46_im <= -1.3e-84)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -3.5e-85)
		tmp = t_0;
	elseif (y_46_im <= -9.5e-87)
		tmp = t_1;
	elseif (y_46_im <= -1.55e-92)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1.4e-92)
		tmp = t_1;
	elseif (y_46_im <= -1.5e-95)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1.45e-95)
		tmp = t_1;
	elseif (y_46_im <= -3.6e-133)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1.55e-133)
		tmp = t_0;
	elseif (y_46_im <= -2.2e-135)
		tmp = t_1;
	elseif (y_46_im <= -2.5e-140)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -2.4e-140)
		tmp = t_1;
	elseif (y_46_im <= -4.4e-167)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -4.3e-167)
		tmp = t_1;
	elseif (y_46_im <= -1.6e-172)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1.55e-172)
		tmp = t_1;
	elseif (y_46_im <= -2.35e-209)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -2.3e-209)
		tmp = t_1;
	elseif (y_46_im <= -1.05e-247)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1e-247)
		tmp = t_1;
	elseif (y_46_im <= -1.85e-255)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1.8e-255)
		tmp = t_1;
	elseif (y_46_im <= -3.75e-289)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -3.7e-289)
		tmp = t_1;
	elseif (y_46_im <= 1.25e-304)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 1.3e-304)
		tmp = t_1;
	elseif (y_46_im <= 2.45e-294)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 8.2e-288)
		tmp = t_1;
	elseif (y_46_im <= 6e-263)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 6.2e-263)
		tmp = t_1;
	elseif (y_46_im <= 1.95e-250)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 1.35e-243)
		tmp = t_1;
	elseif (y_46_im <= 1.2e-194)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 8.8e-185)
		tmp = t_1;
	elseif (y_46_im <= 2.1e-143)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 2.2e-143)
		tmp = t_1;
	elseif (y_46_im <= 1.1e-85)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 1.15e-85)
		tmp = t_1;
	elseif (y_46_im <= 7.6e-52)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 1e-33)
		tmp = t_1;
	elseif (y_46_im <= 3.2e-20)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 9.5e-15)
		tmp = t_1;
	elseif (y_46_im <= 3.5e-13)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 5.6e-12)
		tmp = t_1;
	elseif (y_46_im <= 0.00086)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 0.0018)
		tmp = t_1;
	elseif (y_46_im <= 16500000.0)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 6e+20)
		tmp = t_1;
	elseif (y_46_im <= 2.65e+22)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 3.5e+24)
		tmp = t_1;
	elseif (y_46_im <= 5e+44)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 9e+59)
		tmp = t_1;
	elseif (y_46_im <= 3.6e+71)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 1.35e+82)
		tmp = t_1;
	elseif (y_46_im <= 1.4e+82)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 7.5e+91)
		tmp = t_1;
	elseif (y_46_im <= 2.9e+103)
		tmp = t_0;
	elseif (y_46_im <= 1.9e+110)
		tmp = t_1;
	elseif (y_46_im <= 7e+125)
		tmp = t_0;
	elseif (y_46_im <= 1.8e+143)
		tmp = t_1;
	elseif (y_46_im <= 6e+147)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 7.5e+241)
		tmp = t_1;
	elseif (y_46_im <= 7.8e+241)
		tmp = Float64(x_46_im / y_46_re);
	elseif ((y_46_im <= 7.5e+250) || !(y_46_im <= 7.8e+250))
		tmp = t_1;
	else
		tmp = t_0;
	end
	return tmp
end
function tmp_2 = code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	t_1 = x_46_re / -y_46_im;
	tmp = 0.0;
	if (y_46_im <= -1.55e-35)
		tmp = t_1;
	elseif (y_46_im <= -1.3e-84)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -3.5e-85)
		tmp = t_0;
	elseif (y_46_im <= -9.5e-87)
		tmp = t_1;
	elseif (y_46_im <= -1.55e-92)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1.4e-92)
		tmp = t_1;
	elseif (y_46_im <= -1.5e-95)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1.45e-95)
		tmp = t_1;
	elseif (y_46_im <= -3.6e-133)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1.55e-133)
		tmp = t_0;
	elseif (y_46_im <= -2.2e-135)
		tmp = t_1;
	elseif (y_46_im <= -2.5e-140)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -2.4e-140)
		tmp = t_1;
	elseif (y_46_im <= -4.4e-167)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -4.3e-167)
		tmp = t_1;
	elseif (y_46_im <= -1.6e-172)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1.55e-172)
		tmp = t_1;
	elseif (y_46_im <= -2.35e-209)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -2.3e-209)
		tmp = t_1;
	elseif (y_46_im <= -1.05e-247)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1e-247)
		tmp = t_1;
	elseif (y_46_im <= -1.85e-255)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1.8e-255)
		tmp = t_1;
	elseif (y_46_im <= -3.75e-289)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -3.7e-289)
		tmp = t_1;
	elseif (y_46_im <= 1.25e-304)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 1.3e-304)
		tmp = t_1;
	elseif (y_46_im <= 2.45e-294)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 8.2e-288)
		tmp = t_1;
	elseif (y_46_im <= 6e-263)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 6.2e-263)
		tmp = t_1;
	elseif (y_46_im <= 1.95e-250)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 1.35e-243)
		tmp = t_1;
	elseif (y_46_im <= 1.2e-194)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 8.8e-185)
		tmp = t_1;
	elseif (y_46_im <= 2.1e-143)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 2.2e-143)
		tmp = t_1;
	elseif (y_46_im <= 1.1e-85)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 1.15e-85)
		tmp = t_1;
	elseif (y_46_im <= 7.6e-52)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 1e-33)
		tmp = t_1;
	elseif (y_46_im <= 3.2e-20)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 9.5e-15)
		tmp = t_1;
	elseif (y_46_im <= 3.5e-13)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 5.6e-12)
		tmp = t_1;
	elseif (y_46_im <= 0.00086)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 0.0018)
		tmp = t_1;
	elseif (y_46_im <= 16500000.0)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 6e+20)
		tmp = t_1;
	elseif (y_46_im <= 2.65e+22)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 3.5e+24)
		tmp = t_1;
	elseif (y_46_im <= 5e+44)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 9e+59)
		tmp = t_1;
	elseif (y_46_im <= 3.6e+71)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 1.35e+82)
		tmp = t_1;
	elseif (y_46_im <= 1.4e+82)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 7.5e+91)
		tmp = t_1;
	elseif (y_46_im <= 2.9e+103)
		tmp = t_0;
	elseif (y_46_im <= 1.9e+110)
		tmp = t_1;
	elseif (y_46_im <= 7e+125)
		tmp = t_0;
	elseif (y_46_im <= 1.8e+143)
		tmp = t_1;
	elseif (y_46_im <= 6e+147)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 7.5e+241)
		tmp = t_1;
	elseif (y_46_im <= 7.8e+241)
		tmp = x_46_im / y_46_re;
	elseif ((y_46_im <= 7.5e+250) || ~((y_46_im <= 7.8e+250)))
		tmp = t_1;
	else
		tmp = t_0;
	end
	tmp_2 = tmp;
end
code[x$46$re_, x$46$im_, y$46$re_, y$46$im_] := Block[{t$95$0 = N[(x$46$im * N[(N[(y$46$re / y$46$im), $MachinePrecision] / y$46$im), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(x$46$re / (-y$46$im)), $MachinePrecision]}, If[LessEqual[y$46$im, -1.55e-35], t$95$1, If[LessEqual[y$46$im, -1.3e-84], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -3.5e-85], t$95$0, If[LessEqual[y$46$im, -9.5e-87], t$95$1, If[LessEqual[y$46$im, -1.55e-92], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1.4e-92], t$95$1, If[LessEqual[y$46$im, -1.5e-95], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1.45e-95], t$95$1, If[LessEqual[y$46$im, -3.6e-133], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1.55e-133], t$95$0, If[LessEqual[y$46$im, -2.2e-135], t$95$1, If[LessEqual[y$46$im, -2.5e-140], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -2.4e-140], t$95$1, If[LessEqual[y$46$im, -4.4e-167], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -4.3e-167], t$95$1, If[LessEqual[y$46$im, -1.6e-172], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1.55e-172], t$95$1, If[LessEqual[y$46$im, -2.35e-209], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -2.3e-209], t$95$1, If[LessEqual[y$46$im, -1.05e-247], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1e-247], t$95$1, If[LessEqual[y$46$im, -1.85e-255], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1.8e-255], t$95$1, If[LessEqual[y$46$im, -3.75e-289], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -3.7e-289], t$95$1, If[LessEqual[y$46$im, 1.25e-304], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 1.3e-304], t$95$1, If[LessEqual[y$46$im, 2.45e-294], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 8.2e-288], t$95$1, If[LessEqual[y$46$im, 6e-263], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 6.2e-263], t$95$1, If[LessEqual[y$46$im, 1.95e-250], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 1.35e-243], t$95$1, If[LessEqual[y$46$im, 1.2e-194], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 8.8e-185], t$95$1, If[LessEqual[y$46$im, 2.1e-143], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 2.2e-143], t$95$1, If[LessEqual[y$46$im, 1.1e-85], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 1.15e-85], t$95$1, If[LessEqual[y$46$im, 7.6e-52], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 1e-33], t$95$1, If[LessEqual[y$46$im, 3.2e-20], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 9.5e-15], t$95$1, If[LessEqual[y$46$im, 3.5e-13], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 5.6e-12], t$95$1, If[LessEqual[y$46$im, 0.00086], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 0.0018], t$95$1, If[LessEqual[y$46$im, 16500000.0], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 6e+20], t$95$1, If[LessEqual[y$46$im, 2.65e+22], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 3.5e+24], t$95$1, If[LessEqual[y$46$im, 5e+44], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 9e+59], t$95$1, If[LessEqual[y$46$im, 3.6e+71], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 1.35e+82], t$95$1, If[LessEqual[y$46$im, 1.4e+82], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 7.5e+91], t$95$1, If[LessEqual[y$46$im, 2.9e+103], t$95$0, If[LessEqual[y$46$im, 1.9e+110], t$95$1, If[LessEqual[y$46$im, 7e+125], t$95$0, If[LessEqual[y$46$im, 1.8e+143], t$95$1, If[LessEqual[y$46$im, 6e+147], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 7.5e+241], t$95$1, If[LessEqual[y$46$im, 7.8e+241], N[(x$46$im / y$46$re), $MachinePrecision], If[Or[LessEqual[y$46$im, 7.5e+250], N[Not[LessEqual[y$46$im, 7.8e+250]], $MachinePrecision]], t$95$1, t$95$0]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\
t_1 := \frac{x.re}{-y.im}\\
\mathbf{if}\;y.im \leq -1.55 \cdot 10^{-35}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -1.3 \cdot 10^{-84}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -3.5 \cdot 10^{-85}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq -9.5 \cdot 10^{-87}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-92}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1.4 \cdot 10^{-92}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -1.5 \cdot 10^{-95}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1.45 \cdot 10^{-95}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -3.6 \cdot 10^{-133}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-133}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq -2.2 \cdot 10^{-135}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -2.5 \cdot 10^{-140}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -2.4 \cdot 10^{-140}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -4.4 \cdot 10^{-167}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -4.3 \cdot 10^{-167}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -1.6 \cdot 10^{-172}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-172}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -2.35 \cdot 10^{-209}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -2.3 \cdot 10^{-209}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -1.05 \cdot 10^{-247}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1 \cdot 10^{-247}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -1.85 \cdot 10^{-255}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1.8 \cdot 10^{-255}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -3.75 \cdot 10^{-289}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -3.7 \cdot 10^{-289}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.25 \cdot 10^{-304}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 1.3 \cdot 10^{-304}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 2.45 \cdot 10^{-294}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 8.2 \cdot 10^{-288}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 6 \cdot 10^{-263}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 6.2 \cdot 10^{-263}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.95 \cdot 10^{-250}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 1.35 \cdot 10^{-243}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.2 \cdot 10^{-194}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 8.8 \cdot 10^{-185}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 2.1 \cdot 10^{-143}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 2.2 \cdot 10^{-143}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.1 \cdot 10^{-85}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 1.15 \cdot 10^{-85}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 7.6 \cdot 10^{-52}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 10^{-33}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 3.2 \cdot 10^{-20}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 9.5 \cdot 10^{-15}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 3.5 \cdot 10^{-13}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 5.6 \cdot 10^{-12}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 0.00086:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 0.0018:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 16500000:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 6 \cdot 10^{+20}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 2.65 \cdot 10^{+22}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 3.5 \cdot 10^{+24}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 5 \cdot 10^{+44}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 9 \cdot 10^{+59}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 3.6 \cdot 10^{+71}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 1.35 \cdot 10^{+82}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.4 \cdot 10^{+82}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+91}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 2.9 \cdot 10^{+103}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq 1.9 \cdot 10^{+110}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 7 \cdot 10^{+125}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq 1.8 \cdot 10^{+143}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 6 \cdot 10^{+147}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+241}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+241}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+250} \lor \neg \left(y.im \leq 7.8 \cdot 10^{+250}\right):\\
\;\;\;\;t\_1\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if y.im < -1.55000000000000006e-35 or -3.49999999999999978e-85 < y.im < -9.5e-87 or -1.55e-92 < y.im < -1.4e-92 or -1.5e-95 < y.im < -1.45000000000000001e-95 or -1.55000000000000008e-133 < y.im < -2.2e-135 or -2.50000000000000007e-140 < y.im < -2.39999999999999987e-140 or -4.3999999999999999e-167 < y.im < -4.2999999999999998e-167 or -1.6000000000000001e-172 < y.im < -1.5500000000000001e-172 or -2.35e-209 < y.im < -2.3e-209 or -1.05000000000000007e-247 < y.im < -1e-247 or -1.8500000000000001e-255 < y.im < -1.8000000000000001e-255 or -3.74999999999999999e-289 < y.im < -3.69999999999999989e-289 or 1.24999999999999991e-304 < y.im < 1.29999999999999998e-304 or 2.4499999999999999e-294 < y.im < 8.20000000000000015e-288 or 6.0000000000000001e-263 < y.im < 6.20000000000000008e-263 or 1.95000000000000014e-250 < y.im < 1.35000000000000005e-243 or 1.2e-194 < y.im < 8.8000000000000002e-185 or 2.1000000000000001e-143 < y.im < 2.19999999999999989e-143 or 1.1e-85 < y.im < 1.15e-85 or 7.6000000000000007e-52 < y.im < 1.0000000000000001e-33 or 3.1999999999999997e-20 < y.im < 9.5000000000000005e-15 or 3.5000000000000002e-13 < y.im < 5.6000000000000004e-12 or 8.59999999999999979e-4 < y.im < 0.0018 or 1.65e7 < y.im < 6e20 or 2.6499999999999999e22 < y.im < 3.5000000000000002e24 or 4.9999999999999996e44 < y.im < 8.99999999999999919e59 or 3.6e71 < y.im < 1.35e82 or 1.4e82 < y.im < 7.50000000000000033e91 or 2.8999999999999998e103 < y.im < 1.89999999999999994e110 or 7.00000000000000023e125 < y.im < 1.8e143 or 5.99999999999999987e147 < y.im < 7.5000000000000001e241 or 7.80000000000000052e241 < y.im < 7.4999999999999997e250 or 7.8e250 < y.im

    1. Initial program 58.5%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around 0 67.9%

      \[\leadsto \color{blue}{-1 \cdot \frac{x.re}{y.im}} \]
    4. Step-by-step derivation
      1. associate-*r/67.9%

        \[\leadsto \color{blue}{\frac{-1 \cdot x.re}{y.im}} \]
      2. neg-mul-167.9%

        \[\leadsto \frac{\color{blue}{-x.re}}{y.im} \]
    5. Simplified67.9%

      \[\leadsto \color{blue}{\frac{-x.re}{y.im}} \]

    if -1.55000000000000006e-35 < y.im < -1.3e-84 or -9.5e-87 < y.im < -1.55e-92 or -1.4e-92 < y.im < -1.5e-95 or -1.45000000000000001e-95 < y.im < -3.6000000000000004e-133 or -2.2e-135 < y.im < -2.50000000000000007e-140 or -2.39999999999999987e-140 < y.im < -4.3999999999999999e-167 or -4.2999999999999998e-167 < y.im < -1.6000000000000001e-172 or -1.5500000000000001e-172 < y.im < -2.35e-209 or -2.3e-209 < y.im < -1.05000000000000007e-247 or -1e-247 < y.im < -1.8500000000000001e-255 or -1.8000000000000001e-255 < y.im < -3.74999999999999999e-289 or -3.69999999999999989e-289 < y.im < 1.24999999999999991e-304 or 1.29999999999999998e-304 < y.im < 2.4499999999999999e-294 or 8.20000000000000015e-288 < y.im < 6.0000000000000001e-263 or 6.20000000000000008e-263 < y.im < 1.95000000000000014e-250 or 1.35000000000000005e-243 < y.im < 1.2e-194 or 8.8000000000000002e-185 < y.im < 2.1000000000000001e-143 or 2.19999999999999989e-143 < y.im < 1.1e-85 or 1.15e-85 < y.im < 7.6000000000000007e-52 or 1.0000000000000001e-33 < y.im < 3.1999999999999997e-20 or 9.5000000000000005e-15 < y.im < 3.5000000000000002e-13 or 5.6000000000000004e-12 < y.im < 8.59999999999999979e-4 or 0.0018 < y.im < 1.65e7 or 6e20 < y.im < 2.6499999999999999e22 or 3.5000000000000002e24 < y.im < 4.9999999999999996e44 or 8.99999999999999919e59 < y.im < 3.6e71 or 1.35e82 < y.im < 1.4e82 or 1.8e143 < y.im < 5.99999999999999987e147 or 7.5000000000000001e241 < y.im < 7.80000000000000052e241

    1. Initial program 62.1%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around inf 90.0%

      \[\leadsto \color{blue}{\frac{x.im}{y.re}} \]

    if -1.3e-84 < y.im < -3.49999999999999978e-85 or -3.6000000000000004e-133 < y.im < -1.55000000000000008e-133 or 7.50000000000000033e91 < y.im < 2.8999999999999998e103 or 1.89999999999999994e110 < y.im < 7.00000000000000023e125 or 7.4999999999999997e250 < y.im < 7.8e250

    1. Initial program 62.8%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub62.8%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative62.8%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt62.8%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac63.3%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg63.3%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define63.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define63.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*76.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt76.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow276.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define76.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr76.2%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 51.6%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/75.9%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified75.9%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 51.5%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/76.3%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified76.3%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    11. Step-by-step derivation
      1. associate-/l*64.3%

        \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]
    12. Applied egg-rr64.3%

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;y.im \leq -1.55 \cdot 10^{-35}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.3 \cdot 10^{-84}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -3.5 \cdot 10^{-85}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq -9.5 \cdot 10^{-87}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-92}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.4 \cdot 10^{-92}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.5 \cdot 10^{-95}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.45 \cdot 10^{-95}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -3.6 \cdot 10^{-133}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-133}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq -2.2 \cdot 10^{-135}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -2.5 \cdot 10^{-140}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -2.4 \cdot 10^{-140}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -4.4 \cdot 10^{-167}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -4.3 \cdot 10^{-167}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.6 \cdot 10^{-172}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-172}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -2.35 \cdot 10^{-209}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -2.3 \cdot 10^{-209}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.05 \cdot 10^{-247}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1 \cdot 10^{-247}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.85 \cdot 10^{-255}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.8 \cdot 10^{-255}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -3.75 \cdot 10^{-289}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -3.7 \cdot 10^{-289}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{-304}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.3 \cdot 10^{-304}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.45 \cdot 10^{-294}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 8.2 \cdot 10^{-288}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{-263}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 6.2 \cdot 10^{-263}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.95 \cdot 10^{-250}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.35 \cdot 10^{-243}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.2 \cdot 10^{-194}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 8.8 \cdot 10^{-185}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.1 \cdot 10^{-143}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 2.2 \cdot 10^{-143}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.1 \cdot 10^{-85}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.15 \cdot 10^{-85}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 7.6 \cdot 10^{-52}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 10^{-33}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 3.2 \cdot 10^{-20}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 9.5 \cdot 10^{-15}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 3.5 \cdot 10^{-13}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 5.6 \cdot 10^{-12}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 0.00086:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 0.0018:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 16500000:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{+20}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.65 \cdot 10^{+22}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 3.5 \cdot 10^{+24}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 5 \cdot 10^{+44}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 9 \cdot 10^{+59}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 3.6 \cdot 10^{+71}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.35 \cdot 10^{+82}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.4 \cdot 10^{+82}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+91}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.9 \cdot 10^{+103}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq 1.9 \cdot 10^{+110}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 7 \cdot 10^{+125}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq 1.8 \cdot 10^{+143}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{+147}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+241}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+241}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 7.5 \cdot 10^{+250} \lor \neg \left(y.im \leq 7.8 \cdot 10^{+250}\right):\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{else}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \end{array} \]
  5. Add Preprocessing

Alternative 13: 60.9% accurate, 0.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;y.im \leq -9.2 \cdot 10^{-34} \lor \neg \left(y.im \leq -1 \cdot 10^{-85}\right) \land \left(y.im \leq -9.5 \cdot 10^{-86} \lor \neg \left(y.im \leq -1.48 \cdot 10^{-92}\right) \land \left(y.im \leq -1.4 \cdot 10^{-92} \lor \neg \left(y.im \leq -1.5 \cdot 10^{-95}\right) \land \left(y.im \leq -1.45 \cdot 10^{-95} \lor \neg \left(y.im \leq -1.6 \cdot 10^{-133}\right) \land \left(y.im \leq -2.2 \cdot 10^{-135} \lor \neg \left(y.im \leq -2.5 \cdot 10^{-140}\right) \land \left(y.im \leq -2.4 \cdot 10^{-140} \lor \neg \left(y.im \leq -4.4 \cdot 10^{-167}\right) \land \left(y.im \leq -3.3 \cdot 10^{-167} \lor \neg \left(y.im \leq -1.6 \cdot 10^{-172}\right) \land \left(y.im \leq -1.55 \cdot 10^{-172} \lor \neg \left(y.im \leq -2.35 \cdot 10^{-209}\right) \land \left(y.im \leq -2.3 \cdot 10^{-209} \lor \neg \left(y.im \leq -1.05 \cdot 10^{-247}\right) \land \left(y.im \leq -1 \cdot 10^{-247} \lor \neg \left(y.im \leq -1.85 \cdot 10^{-255}\right) \land \left(y.im \leq -1.8 \cdot 10^{-255} \lor \neg \left(y.im \leq -3.75 \cdot 10^{-289}\right) \land \left(y.im \leq -3.7 \cdot 10^{-289} \lor \neg \left(y.im \leq 1.25 \cdot 10^{-304}\right) \land \left(y.im \leq 1.3 \cdot 10^{-304} \lor \neg \left(y.im \leq 2.45 \cdot 10^{-294}\right) \land \left(y.im \leq 8.2 \cdot 10^{-288} \lor \neg \left(y.im \leq 6 \cdot 10^{-263}\right) \land \left(y.im \leq 6.2 \cdot 10^{-263} \lor \neg \left(y.im \leq 1.95 \cdot 10^{-250}\right) \land \left(y.im \leq 1.35 \cdot 10^{-243} \lor \neg \left(y.im \leq 1.2 \cdot 10^{-194}\right) \land \left(y.im \leq 1.08 \cdot 10^{-184} \lor \neg \left(y.im \leq 2.1 \cdot 10^{-143}\right) \land \left(y.im \leq 2.2 \cdot 10^{-143} \lor \neg \left(y.im \leq 1.1 \cdot 10^{-85}\right) \land \left(y.im \leq 1.8 \cdot 10^{-75} \lor \neg \left(y.im \leq 5.5 \cdot 10^{-53}\right) \land \left(y.im \leq 5.5 \cdot 10^{-34} \lor \neg \left(y.im \leq 1.85 \cdot 10^{-19}\right) \land \left(y.im \leq 3.55 \cdot 10^{-17} \lor \neg \left(y.im \leq 9.4 \cdot 10^{-14}\right) \land \left(y.im \leq 7.2 \cdot 10^{-13} \lor \neg \left(y.im \leq 0.00082\right) \land \left(y.im \leq 0.0245 \lor \neg \left(y.im \leq 1800000000000\right) \land \left(y.im \leq 2.4 \cdot 10^{+20} \lor \neg \left(y.im \leq 3.7 \cdot 10^{+22}\right) \land \left(y.im \leq 7.6 \cdot 10^{+23} \lor \neg \left(y.im \leq 5.2 \cdot 10^{+43}\right) \land \left(y.im \leq 5 \cdot 10^{+64} \lor \neg \left(y.im \leq 1.3 \cdot 10^{+73}\right) \land \left(y.im \leq 1.3 \cdot 10^{+82} \lor \neg \left(y.im \leq 4.6 \cdot 10^{+83}\right) \land \left(y.im \leq 5.2 \cdot 10^{+102} \lor \neg \left(y.im \leq 3 \cdot 10^{+103}\right) \land \left(y.im \leq 1.9 \cdot 10^{+110} \lor \neg \left(y.im \leq 7 \cdot 10^{+125}\right) \land \left(y.im \leq 1.8 \cdot 10^{+143} \lor \neg \left(y.im \leq 6 \cdot 10^{+147}\right) \land \left(y.im \leq 7.5 \cdot 10^{+241} \lor \neg \left(y.im \leq 7.8 \cdot 10^{+241}\right) \land \left(y.im \leq 7.5 \cdot 10^{+250} \lor \neg \left(y.im \leq 7.8 \cdot 10^{+250}\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):\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{else}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \end{array} \end{array} \]
(FPCore (x.re x.im y.re y.im)
 :precision binary64
 (if (or (<= y.im -9.2e-34)
         (and (not (<= y.im -1e-85))
              (or (<= y.im -9.5e-86)
                  (and (not (<= y.im -1.48e-92))
                       (or (<= y.im -1.4e-92)
                           (and (not (<= y.im -1.5e-95))
                                (or (<= y.im -1.45e-95)
                                    (and (not (<= y.im -1.6e-133))
                                         (or (<= y.im -2.2e-135)
                                             (and (not (<= y.im -2.5e-140))
                                                  (or (<= y.im -2.4e-140)
                                                      (and (not
                                                            (<=
                                                             y.im
                                                             -4.4e-167))
                                                           (or (<=
                                                                y.im
                                                                -3.3e-167)
                                                               (and (not
                                                                     (<=
                                                                      y.im
                                                                      -1.6e-172))
                                                                    (or (<=
                                                                         y.im
                                                                         -1.55e-172)
                                                                        (and (not
                                                                              (<=
                                                                               y.im
                                                                               -2.35e-209))
                                                                             (or (<=
                                                                                  y.im
                                                                                  -2.3e-209)
                                                                                 (and (not
                                                                                       (<=
                                                                                        y.im
                                                                                        -1.05e-247))
                                                                                      (or (<=
                                                                                           y.im
                                                                                           -1e-247)
                                                                                          (and (not
                                                                                                (<=
                                                                                                 y.im
                                                                                                 -1.85e-255))
                                                                                               (or (<=
                                                                                                    y.im
                                                                                                    -1.8e-255)
                                                                                                   (and (not
                                                                                                         (<=
                                                                                                          y.im
                                                                                                          -3.75e-289))
                                                                                                        (or (<=
                                                                                                             y.im
                                                                                                             -3.7e-289)
                                                                                                            (and (not
                                                                                                                  (<=
                                                                                                                   y.im
                                                                                                                   1.25e-304))
                                                                                                                 (or (<=
                                                                                                                      y.im
                                                                                                                      1.3e-304)
                                                                                                                     (and (not
                                                                                                                           (<=
                                                                                                                            y.im
                                                                                                                            2.45e-294))
                                                                                                                          (or (<=
                                                                                                                               y.im
                                                                                                                               8.2e-288)
                                                                                                                              (and (not
                                                                                                                                    (<=
                                                                                                                                     y.im
                                                                                                                                     6e-263))
                                                                                                                                   (or (<=
                                                                                                                                        y.im
                                                                                                                                        6.2e-263)
                                                                                                                                       (and (not
                                                                                                                                             (<=
                                                                                                                                              y.im
                                                                                                                                              1.95e-250))
                                                                                                                                            (or (<=
                                                                                                                                                 y.im
                                                                                                                                                 1.35e-243)
                                                                                                                                                (and (not
                                                                                                                                                      (<=
                                                                                                                                                       y.im
                                                                                                                                                       1.2e-194))
                                                                                                                                                     (or (<=
                                                                                                                                                          y.im
                                                                                                                                                          1.08e-184)
                                                                                                                                                         (and (not
                                                                                                                                                               (<=
                                                                                                                                                                y.im
                                                                                                                                                                2.1e-143))
                                                                                                                                                              (or (<=
                                                                                                                                                                   y.im
                                                                                                                                                                   2.2e-143)
                                                                                                                                                                  (and (not
                                                                                                                                                                        (<=
                                                                                                                                                                         y.im
                                                                                                                                                                         1.1e-85))
                                                                                                                                                                       (or (<=
                                                                                                                                                                            y.im
                                                                                                                                                                            1.8e-75)
                                                                                                                                                                           (and (not
                                                                                                                                                                                 (<=
                                                                                                                                                                                  y.im
                                                                                                                                                                                  5.5e-53))
                                                                                                                                                                                (or (<=
                                                                                                                                                                                     y.im
                                                                                                                                                                                     5.5e-34)
                                                                                                                                                                                    (and (not
                                                                                                                                                                                          (<=
                                                                                                                                                                                           y.im
                                                                                                                                                                                           1.85e-19))
                                                                                                                                                                                         (or (<=
                                                                                                                                                                                              y.im
                                                                                                                                                                                              3.55e-17)
                                                                                                                                                                                             (and (not
                                                                                                                                                                                                   (<=
                                                                                                                                                                                                    y.im
                                                                                                                                                                                                    9.4e-14))
                                                                                                                                                                                                  (or (<=
                                                                                                                                                                                                       y.im
                                                                                                                                                                                                       7.2e-13)
                                                                                                                                                                                                      (and (not
                                                                                                                                                                                                            (<=
                                                                                                                                                                                                             y.im
                                                                                                                                                                                                             0.00082))
                                                                                                                                                                                                           (or (<=
                                                                                                                                                                                                                y.im
                                                                                                                                                                                                                0.0245)
                                                                                                                                                                                                               (and (not
                                                                                                                                                                                                                     (<=
                                                                                                                                                                                                                      y.im
                                                                                                                                                                                                                      1800000000000.0))
                                                                                                                                                                                                                    (or (<=
                                                                                                                                                                                                                         y.im
                                                                                                                                                                                                                         2.4e+20)
                                                                                                                                                                                                                        (and (not
                                                                                                                                                                                                                              (<=
                                                                                                                                                                                                                               y.im
                                                                                                                                                                                                                               3.7e+22))
                                                                                                                                                                                                                             (or (<=
                                                                                                                                                                                                                                  y.im
                                                                                                                                                                                                                                  7.6e+23)
                                                                                                                                                                                                                                 (and (not
                                                                                                                                                                                                                                       (<=
                                                                                                                                                                                                                                        y.im
                                                                                                                                                                                                                                        5.2e+43))
                                                                                                                                                                                                                                      (or (<=
                                                                                                                                                                                                                                           y.im
                                                                                                                                                                                                                                           5e+64)
                                                                                                                                                                                                                                          (and (not
                                                                                                                                                                                                                                                (<=
                                                                                                                                                                                                                                                 y.im
                                                                                                                                                                                                                                                 1.3e+73))
                                                                                                                                                                                                                                               (or (<=
                                                                                                                                                                                                                                                    y.im
                                                                                                                                                                                                                                                    1.3e+82)
                                                                                                                                                                                                                                                   (and (not
                                                                                                                                                                                                                                                         (<=
                                                                                                                                                                                                                                                          y.im
                                                                                                                                                                                                                                                          4.6e+83))
                                                                                                                                                                                                                                                        (or (<=
                                                                                                                                                                                                                                                             y.im
                                                                                                                                                                                                                                                             5.2e+102)
                                                                                                                                                                                                                                                            (and (not
                                                                                                                                                                                                                                                                  (<=
                                                                                                                                                                                                                                                                   y.im
                                                                                                                                                                                                                                                                   3e+103))
                                                                                                                                                                                                                                                                 (or (<=
                                                                                                                                                                                                                                                                      y.im
                                                                                                                                                                                                                                                                      1.9e+110)
                                                                                                                                                                                                                                                                     (and (not
                                                                                                                                                                                                                                                                           (<=
                                                                                                                                                                                                                                                                            y.im
                                                                                                                                                                                                                                                                            7e+125))
                                                                                                                                                                                                                                                                          (or (<=
                                                                                                                                                                                                                                                                               y.im
                                                                                                                                                                                                                                                                               1.8e+143)
                                                                                                                                                                                                                                                                              (and (not
                                                                                                                                                                                                                                                                                    (<=
                                                                                                                                                                                                                                                                                     y.im
                                                                                                                                                                                                                                                                                     6e+147))
                                                                                                                                                                                                                                                                                   (or (<=
                                                                                                                                                                                                                                                                                        y.im
                                                                                                                                                                                                                                                                                        7.5e+241)
                                                                                                                                                                                                                                                                                       (and (not
                                                                                                                                                                                                                                                                                             (<=
                                                                                                                                                                                                                                                                                              y.im
                                                                                                                                                                                                                                                                                              7.8e+241))
                                                                                                                                                                                                                                                                                            (or (<=
                                                                                                                                                                                                                                                                                                 y.im
                                                                                                                                                                                                                                                                                                 7.5e+250)
                                                                                                                                                                                                                                                                                                (not
                                                                                                                                                                                                                                                                                                 (<=
                                                                                                                                                                                                                                                                                                  y.im
                                                                                                                                                                                                                                                                                                  7.8e+250)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
   (/ x.re (- y.im))
   (/ x.im y.re)))
double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double tmp;
	if ((y_46_im <= -9.2e-34) || (!(y_46_im <= -1e-85) && ((y_46_im <= -9.5e-86) || (!(y_46_im <= -1.48e-92) && ((y_46_im <= -1.4e-92) || (!(y_46_im <= -1.5e-95) && ((y_46_im <= -1.45e-95) || (!(y_46_im <= -1.6e-133) && ((y_46_im <= -2.2e-135) || (!(y_46_im <= -2.5e-140) && ((y_46_im <= -2.4e-140) || (!(y_46_im <= -4.4e-167) && ((y_46_im <= -3.3e-167) || (!(y_46_im <= -1.6e-172) && ((y_46_im <= -1.55e-172) || (!(y_46_im <= -2.35e-209) && ((y_46_im <= -2.3e-209) || (!(y_46_im <= -1.05e-247) && ((y_46_im <= -1e-247) || (!(y_46_im <= -1.85e-255) && ((y_46_im <= -1.8e-255) || (!(y_46_im <= -3.75e-289) && ((y_46_im <= -3.7e-289) || (!(y_46_im <= 1.25e-304) && ((y_46_im <= 1.3e-304) || (!(y_46_im <= 2.45e-294) && ((y_46_im <= 8.2e-288) || (!(y_46_im <= 6e-263) && ((y_46_im <= 6.2e-263) || (!(y_46_im <= 1.95e-250) && ((y_46_im <= 1.35e-243) || (!(y_46_im <= 1.2e-194) && ((y_46_im <= 1.08e-184) || (!(y_46_im <= 2.1e-143) && ((y_46_im <= 2.2e-143) || (!(y_46_im <= 1.1e-85) && ((y_46_im <= 1.8e-75) || (!(y_46_im <= 5.5e-53) && ((y_46_im <= 5.5e-34) || (!(y_46_im <= 1.85e-19) && ((y_46_im <= 3.55e-17) || (!(y_46_im <= 9.4e-14) && ((y_46_im <= 7.2e-13) || (!(y_46_im <= 0.00082) && ((y_46_im <= 0.0245) || (!(y_46_im <= 1800000000000.0) && ((y_46_im <= 2.4e+20) || (!(y_46_im <= 3.7e+22) && ((y_46_im <= 7.6e+23) || (!(y_46_im <= 5.2e+43) && ((y_46_im <= 5e+64) || (!(y_46_im <= 1.3e+73) && ((y_46_im <= 1.3e+82) || (!(y_46_im <= 4.6e+83) && ((y_46_im <= 5.2e+102) || (!(y_46_im <= 3e+103) && ((y_46_im <= 1.9e+110) || (!(y_46_im <= 7e+125) && ((y_46_im <= 1.8e+143) || (!(y_46_im <= 6e+147) && ((y_46_im <= 7.5e+241) || (!(y_46_im <= 7.8e+241) && ((y_46_im <= 7.5e+250) || !(y_46_im <= 7.8e+250)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) {
		tmp = x_46_re / -y_46_im;
	} else {
		tmp = x_46_im / y_46_re;
	}
	return tmp;
}
real(8) function code(x_46re, x_46im, y_46re, y_46im)
    real(8), intent (in) :: x_46re
    real(8), intent (in) :: x_46im
    real(8), intent (in) :: y_46re
    real(8), intent (in) :: y_46im
    real(8) :: tmp
    if ((y_46im <= (-9.2d-34)) .or. (.not. (y_46im <= (-1d-85))) .and. (y_46im <= (-9.5d-86)) .or. (.not. (y_46im <= (-1.48d-92))) .and. (y_46im <= (-1.4d-92)) .or. (.not. (y_46im <= (-1.5d-95))) .and. (y_46im <= (-1.45d-95)) .or. (.not. (y_46im <= (-1.6d-133))) .and. (y_46im <= (-2.2d-135)) .or. (.not. (y_46im <= (-2.5d-140))) .and. (y_46im <= (-2.4d-140)) .or. (.not. (y_46im <= (-4.4d-167))) .and. (y_46im <= (-3.3d-167)) .or. (.not. (y_46im <= (-1.6d-172))) .and. (y_46im <= (-1.55d-172)) .or. (.not. (y_46im <= (-2.35d-209))) .and. (y_46im <= (-2.3d-209)) .or. (.not. (y_46im <= (-1.05d-247))) .and. (y_46im <= (-1d-247)) .or. (.not. (y_46im <= (-1.85d-255))) .and. (y_46im <= (-1.8d-255)) .or. (.not. (y_46im <= (-3.75d-289))) .and. (y_46im <= (-3.7d-289)) .or. (.not. (y_46im <= 1.25d-304)) .and. (y_46im <= 1.3d-304) .or. (.not. (y_46im <= 2.45d-294)) .and. (y_46im <= 8.2d-288) .or. (.not. (y_46im <= 6d-263)) .and. (y_46im <= 6.2d-263) .or. (.not. (y_46im <= 1.95d-250)) .and. (y_46im <= 1.35d-243) .or. (.not. (y_46im <= 1.2d-194)) .and. (y_46im <= 1.08d-184) .or. (.not. (y_46im <= 2.1d-143)) .and. (y_46im <= 2.2d-143) .or. (.not. (y_46im <= 1.1d-85)) .and. (y_46im <= 1.8d-75) .or. (.not. (y_46im <= 5.5d-53)) .and. (y_46im <= 5.5d-34) .or. (.not. (y_46im <= 1.85d-19)) .and. (y_46im <= 3.55d-17) .or. (.not. (y_46im <= 9.4d-14)) .and. (y_46im <= 7.2d-13) .or. (.not. (y_46im <= 0.00082d0)) .and. (y_46im <= 0.0245d0) .or. (.not. (y_46im <= 1800000000000.0d0)) .and. (y_46im <= 2.4d+20) .or. (.not. (y_46im <= 3.7d+22)) .and. (y_46im <= 7.6d+23) .or. (.not. (y_46im <= 5.2d+43)) .and. (y_46im <= 5d+64) .or. (.not. (y_46im <= 1.3d+73)) .and. (y_46im <= 1.3d+82) .or. (.not. (y_46im <= 4.6d+83)) .and. (y_46im <= 5.2d+102) .or. (.not. (y_46im <= 3d+103)) .and. (y_46im <= 1.9d+110) .or. (.not. (y_46im <= 7d+125)) .and. (y_46im <= 1.8d+143) .or. (.not. (y_46im <= 6d+147)) .and. (y_46im <= 7.5d+241) .or. (.not. (y_46im <= 7.8d+241)) .and. (y_46im <= 7.5d+250) .or. (.not. (y_46im <= 7.8d+250))) then
        tmp = x_46re / -y_46im
    else
        tmp = x_46im / y_46re
    end if
    code = tmp
end function
public static double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double tmp;
	if ((y_46_im <= -9.2e-34) || (!(y_46_im <= -1e-85) && ((y_46_im <= -9.5e-86) || (!(y_46_im <= -1.48e-92) && ((y_46_im <= -1.4e-92) || (!(y_46_im <= -1.5e-95) && ((y_46_im <= -1.45e-95) || (!(y_46_im <= -1.6e-133) && ((y_46_im <= -2.2e-135) || (!(y_46_im <= -2.5e-140) && ((y_46_im <= -2.4e-140) || (!(y_46_im <= -4.4e-167) && ((y_46_im <= -3.3e-167) || (!(y_46_im <= -1.6e-172) && ((y_46_im <= -1.55e-172) || (!(y_46_im <= -2.35e-209) && ((y_46_im <= -2.3e-209) || (!(y_46_im <= -1.05e-247) && ((y_46_im <= -1e-247) || (!(y_46_im <= -1.85e-255) && ((y_46_im <= -1.8e-255) || (!(y_46_im <= -3.75e-289) && ((y_46_im <= -3.7e-289) || (!(y_46_im <= 1.25e-304) && ((y_46_im <= 1.3e-304) || (!(y_46_im <= 2.45e-294) && ((y_46_im <= 8.2e-288) || (!(y_46_im <= 6e-263) && ((y_46_im <= 6.2e-263) || (!(y_46_im <= 1.95e-250) && ((y_46_im <= 1.35e-243) || (!(y_46_im <= 1.2e-194) && ((y_46_im <= 1.08e-184) || (!(y_46_im <= 2.1e-143) && ((y_46_im <= 2.2e-143) || (!(y_46_im <= 1.1e-85) && ((y_46_im <= 1.8e-75) || (!(y_46_im <= 5.5e-53) && ((y_46_im <= 5.5e-34) || (!(y_46_im <= 1.85e-19) && ((y_46_im <= 3.55e-17) || (!(y_46_im <= 9.4e-14) && ((y_46_im <= 7.2e-13) || (!(y_46_im <= 0.00082) && ((y_46_im <= 0.0245) || (!(y_46_im <= 1800000000000.0) && ((y_46_im <= 2.4e+20) || (!(y_46_im <= 3.7e+22) && ((y_46_im <= 7.6e+23) || (!(y_46_im <= 5.2e+43) && ((y_46_im <= 5e+64) || (!(y_46_im <= 1.3e+73) && ((y_46_im <= 1.3e+82) || (!(y_46_im <= 4.6e+83) && ((y_46_im <= 5.2e+102) || (!(y_46_im <= 3e+103) && ((y_46_im <= 1.9e+110) || (!(y_46_im <= 7e+125) && ((y_46_im <= 1.8e+143) || (!(y_46_im <= 6e+147) && ((y_46_im <= 7.5e+241) || (!(y_46_im <= 7.8e+241) && ((y_46_im <= 7.5e+250) || !(y_46_im <= 7.8e+250)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) {
		tmp = x_46_re / -y_46_im;
	} else {
		tmp = x_46_im / y_46_re;
	}
	return tmp;
}
def code(x_46_re, x_46_im, y_46_re, y_46_im):
	tmp = 0
	if (y_46_im <= -9.2e-34) or (not (y_46_im <= -1e-85) and ((y_46_im <= -9.5e-86) or (not (y_46_im <= -1.48e-92) and ((y_46_im <= -1.4e-92) or (not (y_46_im <= -1.5e-95) and ((y_46_im <= -1.45e-95) or (not (y_46_im <= -1.6e-133) and ((y_46_im <= -2.2e-135) or (not (y_46_im <= -2.5e-140) and ((y_46_im <= -2.4e-140) or (not (y_46_im <= -4.4e-167) and ((y_46_im <= -3.3e-167) or (not (y_46_im <= -1.6e-172) and ((y_46_im <= -1.55e-172) or (not (y_46_im <= -2.35e-209) and ((y_46_im <= -2.3e-209) or (not (y_46_im <= -1.05e-247) and ((y_46_im <= -1e-247) or (not (y_46_im <= -1.85e-255) and ((y_46_im <= -1.8e-255) or (not (y_46_im <= -3.75e-289) and ((y_46_im <= -3.7e-289) or (not (y_46_im <= 1.25e-304) and ((y_46_im <= 1.3e-304) or (not (y_46_im <= 2.45e-294) and ((y_46_im <= 8.2e-288) or (not (y_46_im <= 6e-263) and ((y_46_im <= 6.2e-263) or (not (y_46_im <= 1.95e-250) and ((y_46_im <= 1.35e-243) or (not (y_46_im <= 1.2e-194) and ((y_46_im <= 1.08e-184) or (not (y_46_im <= 2.1e-143) and ((y_46_im <= 2.2e-143) or (not (y_46_im <= 1.1e-85) and ((y_46_im <= 1.8e-75) or (not (y_46_im <= 5.5e-53) and ((y_46_im <= 5.5e-34) or (not (y_46_im <= 1.85e-19) and ((y_46_im <= 3.55e-17) or (not (y_46_im <= 9.4e-14) and ((y_46_im <= 7.2e-13) or (not (y_46_im <= 0.00082) and ((y_46_im <= 0.0245) or (not (y_46_im <= 1800000000000.0) and ((y_46_im <= 2.4e+20) or (not (y_46_im <= 3.7e+22) and ((y_46_im <= 7.6e+23) or (not (y_46_im <= 5.2e+43) and ((y_46_im <= 5e+64) or (not (y_46_im <= 1.3e+73) and ((y_46_im <= 1.3e+82) or (not (y_46_im <= 4.6e+83) and ((y_46_im <= 5.2e+102) or (not (y_46_im <= 3e+103) and ((y_46_im <= 1.9e+110) or (not (y_46_im <= 7e+125) and ((y_46_im <= 1.8e+143) or (not (y_46_im <= 6e+147) and ((y_46_im <= 7.5e+241) or (not (y_46_im <= 7.8e+241) and ((y_46_im <= 7.5e+250) or not (y_46_im <= 7.8e+250))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))):
		tmp = x_46_re / -y_46_im
	else:
		tmp = x_46_im / y_46_re
	return tmp
function code(x_46_re, x_46_im, y_46_re, y_46_im)
	tmp = 0.0
	if ((y_46_im <= -9.2e-34) || (!(y_46_im <= -1e-85) && ((y_46_im <= -9.5e-86) || (!(y_46_im <= -1.48e-92) && ((y_46_im <= -1.4e-92) || (!(y_46_im <= -1.5e-95) && ((y_46_im <= -1.45e-95) || (!(y_46_im <= -1.6e-133) && ((y_46_im <= -2.2e-135) || (!(y_46_im <= -2.5e-140) && ((y_46_im <= -2.4e-140) || (!(y_46_im <= -4.4e-167) && ((y_46_im <= -3.3e-167) || (!(y_46_im <= -1.6e-172) && ((y_46_im <= -1.55e-172) || (!(y_46_im <= -2.35e-209) && ((y_46_im <= -2.3e-209) || (!(y_46_im <= -1.05e-247) && ((y_46_im <= -1e-247) || (!(y_46_im <= -1.85e-255) && ((y_46_im <= -1.8e-255) || (!(y_46_im <= -3.75e-289) && ((y_46_im <= -3.7e-289) || (!(y_46_im <= 1.25e-304) && ((y_46_im <= 1.3e-304) || (!(y_46_im <= 2.45e-294) && ((y_46_im <= 8.2e-288) || (!(y_46_im <= 6e-263) && ((y_46_im <= 6.2e-263) || (!(y_46_im <= 1.95e-250) && ((y_46_im <= 1.35e-243) || (!(y_46_im <= 1.2e-194) && ((y_46_im <= 1.08e-184) || (!(y_46_im <= 2.1e-143) && ((y_46_im <= 2.2e-143) || (!(y_46_im <= 1.1e-85) && ((y_46_im <= 1.8e-75) || (!(y_46_im <= 5.5e-53) && ((y_46_im <= 5.5e-34) || (!(y_46_im <= 1.85e-19) && ((y_46_im <= 3.55e-17) || (!(y_46_im <= 9.4e-14) && ((y_46_im <= 7.2e-13) || (!(y_46_im <= 0.00082) && ((y_46_im <= 0.0245) || (!(y_46_im <= 1800000000000.0) && ((y_46_im <= 2.4e+20) || (!(y_46_im <= 3.7e+22) && ((y_46_im <= 7.6e+23) || (!(y_46_im <= 5.2e+43) && ((y_46_im <= 5e+64) || (!(y_46_im <= 1.3e+73) && ((y_46_im <= 1.3e+82) || (!(y_46_im <= 4.6e+83) && ((y_46_im <= 5.2e+102) || (!(y_46_im <= 3e+103) && ((y_46_im <= 1.9e+110) || (!(y_46_im <= 7e+125) && ((y_46_im <= 1.8e+143) || (!(y_46_im <= 6e+147) && ((y_46_im <= 7.5e+241) || (!(y_46_im <= 7.8e+241) && ((y_46_im <= 7.5e+250) || !(y_46_im <= 7.8e+250))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
		tmp = Float64(x_46_re / Float64(-y_46_im));
	else
		tmp = Float64(x_46_im / y_46_re);
	end
	return tmp
end
function tmp_2 = code(x_46_re, x_46_im, y_46_re, y_46_im)
	tmp = 0.0;
	if ((y_46_im <= -9.2e-34) || (~((y_46_im <= -1e-85)) && ((y_46_im <= -9.5e-86) || (~((y_46_im <= -1.48e-92)) && ((y_46_im <= -1.4e-92) || (~((y_46_im <= -1.5e-95)) && ((y_46_im <= -1.45e-95) || (~((y_46_im <= -1.6e-133)) && ((y_46_im <= -2.2e-135) || (~((y_46_im <= -2.5e-140)) && ((y_46_im <= -2.4e-140) || (~((y_46_im <= -4.4e-167)) && ((y_46_im <= -3.3e-167) || (~((y_46_im <= -1.6e-172)) && ((y_46_im <= -1.55e-172) || (~((y_46_im <= -2.35e-209)) && ((y_46_im <= -2.3e-209) || (~((y_46_im <= -1.05e-247)) && ((y_46_im <= -1e-247) || (~((y_46_im <= -1.85e-255)) && ((y_46_im <= -1.8e-255) || (~((y_46_im <= -3.75e-289)) && ((y_46_im <= -3.7e-289) || (~((y_46_im <= 1.25e-304)) && ((y_46_im <= 1.3e-304) || (~((y_46_im <= 2.45e-294)) && ((y_46_im <= 8.2e-288) || (~((y_46_im <= 6e-263)) && ((y_46_im <= 6.2e-263) || (~((y_46_im <= 1.95e-250)) && ((y_46_im <= 1.35e-243) || (~((y_46_im <= 1.2e-194)) && ((y_46_im <= 1.08e-184) || (~((y_46_im <= 2.1e-143)) && ((y_46_im <= 2.2e-143) || (~((y_46_im <= 1.1e-85)) && ((y_46_im <= 1.8e-75) || (~((y_46_im <= 5.5e-53)) && ((y_46_im <= 5.5e-34) || (~((y_46_im <= 1.85e-19)) && ((y_46_im <= 3.55e-17) || (~((y_46_im <= 9.4e-14)) && ((y_46_im <= 7.2e-13) || (~((y_46_im <= 0.00082)) && ((y_46_im <= 0.0245) || (~((y_46_im <= 1800000000000.0)) && ((y_46_im <= 2.4e+20) || (~((y_46_im <= 3.7e+22)) && ((y_46_im <= 7.6e+23) || (~((y_46_im <= 5.2e+43)) && ((y_46_im <= 5e+64) || (~((y_46_im <= 1.3e+73)) && ((y_46_im <= 1.3e+82) || (~((y_46_im <= 4.6e+83)) && ((y_46_im <= 5.2e+102) || (~((y_46_im <= 3e+103)) && ((y_46_im <= 1.9e+110) || (~((y_46_im <= 7e+125)) && ((y_46_im <= 1.8e+143) || (~((y_46_im <= 6e+147)) && ((y_46_im <= 7.5e+241) || (~((y_46_im <= 7.8e+241)) && ((y_46_im <= 7.5e+250) || ~((y_46_im <= 7.8e+250)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
		tmp = x_46_re / -y_46_im;
	else
		tmp = x_46_im / y_46_re;
	end
	tmp_2 = tmp;
end
code[x$46$re_, x$46$im_, y$46$re_, y$46$im_] := If[Or[LessEqual[y$46$im, -9.2e-34], And[N[Not[LessEqual[y$46$im, -1e-85]], $MachinePrecision], Or[LessEqual[y$46$im, -9.5e-86], And[N[Not[LessEqual[y$46$im, -1.48e-92]], $MachinePrecision], Or[LessEqual[y$46$im, -1.4e-92], And[N[Not[LessEqual[y$46$im, -1.5e-95]], $MachinePrecision], Or[LessEqual[y$46$im, -1.45e-95], And[N[Not[LessEqual[y$46$im, -1.6e-133]], $MachinePrecision], Or[LessEqual[y$46$im, -2.2e-135], And[N[Not[LessEqual[y$46$im, -2.5e-140]], $MachinePrecision], Or[LessEqual[y$46$im, -2.4e-140], And[N[Not[LessEqual[y$46$im, -4.4e-167]], $MachinePrecision], Or[LessEqual[y$46$im, -3.3e-167], And[N[Not[LessEqual[y$46$im, -1.6e-172]], $MachinePrecision], Or[LessEqual[y$46$im, -1.55e-172], And[N[Not[LessEqual[y$46$im, -2.35e-209]], $MachinePrecision], Or[LessEqual[y$46$im, -2.3e-209], And[N[Not[LessEqual[y$46$im, -1.05e-247]], $MachinePrecision], Or[LessEqual[y$46$im, -1e-247], And[N[Not[LessEqual[y$46$im, -1.85e-255]], $MachinePrecision], Or[LessEqual[y$46$im, -1.8e-255], And[N[Not[LessEqual[y$46$im, -3.75e-289]], $MachinePrecision], Or[LessEqual[y$46$im, -3.7e-289], And[N[Not[LessEqual[y$46$im, 1.25e-304]], $MachinePrecision], Or[LessEqual[y$46$im, 1.3e-304], And[N[Not[LessEqual[y$46$im, 2.45e-294]], $MachinePrecision], Or[LessEqual[y$46$im, 8.2e-288], And[N[Not[LessEqual[y$46$im, 6e-263]], $MachinePrecision], Or[LessEqual[y$46$im, 6.2e-263], And[N[Not[LessEqual[y$46$im, 1.95e-250]], $MachinePrecision], Or[LessEqual[y$46$im, 1.35e-243], And[N[Not[LessEqual[y$46$im, 1.2e-194]], $MachinePrecision], Or[LessEqual[y$46$im, 1.08e-184], And[N[Not[LessEqual[y$46$im, 2.1e-143]], $MachinePrecision], Or[LessEqual[y$46$im, 2.2e-143], And[N[Not[LessEqual[y$46$im, 1.1e-85]], $MachinePrecision], Or[LessEqual[y$46$im, 1.8e-75], And[N[Not[LessEqual[y$46$im, 5.5e-53]], $MachinePrecision], Or[LessEqual[y$46$im, 5.5e-34], And[N[Not[LessEqual[y$46$im, 1.85e-19]], $MachinePrecision], Or[LessEqual[y$46$im, 3.55e-17], And[N[Not[LessEqual[y$46$im, 9.4e-14]], $MachinePrecision], Or[LessEqual[y$46$im, 7.2e-13], And[N[Not[LessEqual[y$46$im, 0.00082]], $MachinePrecision], Or[LessEqual[y$46$im, 0.0245], And[N[Not[LessEqual[y$46$im, 1800000000000.0]], $MachinePrecision], Or[LessEqual[y$46$im, 2.4e+20], And[N[Not[LessEqual[y$46$im, 3.7e+22]], $MachinePrecision], Or[LessEqual[y$46$im, 7.6e+23], And[N[Not[LessEqual[y$46$im, 5.2e+43]], $MachinePrecision], Or[LessEqual[y$46$im, 5e+64], And[N[Not[LessEqual[y$46$im, 1.3e+73]], $MachinePrecision], Or[LessEqual[y$46$im, 1.3e+82], And[N[Not[LessEqual[y$46$im, 4.6e+83]], $MachinePrecision], Or[LessEqual[y$46$im, 5.2e+102], And[N[Not[LessEqual[y$46$im, 3e+103]], $MachinePrecision], Or[LessEqual[y$46$im, 1.9e+110], And[N[Not[LessEqual[y$46$im, 7e+125]], $MachinePrecision], Or[LessEqual[y$46$im, 1.8e+143], And[N[Not[LessEqual[y$46$im, 6e+147]], $MachinePrecision], Or[LessEqual[y$46$im, 7.5e+241], And[N[Not[LessEqual[y$46$im, 7.8e+241]], $MachinePrecision], Or[LessEqual[y$46$im, 7.5e+250], N[Not[LessEqual[y$46$im, 7.8e+250]], $MachinePrecision]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]], N[(x$46$re / (-y$46$im)), $MachinePrecision], N[(x$46$im / y$46$re), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;y.im \leq -9.2 \cdot 10^{-34} \lor \neg \left(y.im \leq -1 \cdot 10^{-85}\right) \land \left(y.im \leq -9.5 \cdot 10^{-86} \lor \neg \left(y.im \leq -1.48 \cdot 10^{-92}\right) \land \left(y.im \leq -1.4 \cdot 10^{-92} \lor \neg \left(y.im \leq -1.5 \cdot 10^{-95}\right) \land \left(y.im \leq -1.45 \cdot 10^{-95} \lor \neg \left(y.im \leq -1.6 \cdot 10^{-133}\right) \land \left(y.im \leq -2.2 \cdot 10^{-135} \lor \neg \left(y.im \leq -2.5 \cdot 10^{-140}\right) \land \left(y.im \leq -2.4 \cdot 10^{-140} \lor \neg \left(y.im \leq -4.4 \cdot 10^{-167}\right) \land \left(y.im \leq -3.3 \cdot 10^{-167} \lor \neg \left(y.im \leq -1.6 \cdot 10^{-172}\right) \land \left(y.im \leq -1.55 \cdot 10^{-172} \lor \neg \left(y.im \leq -2.35 \cdot 10^{-209}\right) \land \left(y.im \leq -2.3 \cdot 10^{-209} \lor \neg \left(y.im \leq -1.05 \cdot 10^{-247}\right) \land \left(y.im \leq -1 \cdot 10^{-247} \lor \neg \left(y.im \leq -1.85 \cdot 10^{-255}\right) \land \left(y.im \leq -1.8 \cdot 10^{-255} \lor \neg \left(y.im \leq -3.75 \cdot 10^{-289}\right) \land \left(y.im \leq -3.7 \cdot 10^{-289} \lor \neg \left(y.im \leq 1.25 \cdot 10^{-304}\right) \land \left(y.im \leq 1.3 \cdot 10^{-304} \lor \neg \left(y.im \leq 2.45 \cdot 10^{-294}\right) \land \left(y.im \leq 8.2 \cdot 10^{-288} \lor \neg \left(y.im \leq 6 \cdot 10^{-263}\right) \land \left(y.im \leq 6.2 \cdot 10^{-263} \lor \neg \left(y.im \leq 1.95 \cdot 10^{-250}\right) \land \left(y.im \leq 1.35 \cdot 10^{-243} \lor \neg \left(y.im \leq 1.2 \cdot 10^{-194}\right) \land \left(y.im \leq 1.08 \cdot 10^{-184} \lor \neg \left(y.im \leq 2.1 \cdot 10^{-143}\right) \land \left(y.im \leq 2.2 \cdot 10^{-143} \lor \neg \left(y.im \leq 1.1 \cdot 10^{-85}\right) \land \left(y.im \leq 1.8 \cdot 10^{-75} \lor \neg \left(y.im \leq 5.5 \cdot 10^{-53}\right) \land \left(y.im \leq 5.5 \cdot 10^{-34} \lor \neg \left(y.im \leq 1.85 \cdot 10^{-19}\right) \land \left(y.im \leq 3.55 \cdot 10^{-17} \lor \neg \left(y.im \leq 9.4 \cdot 10^{-14}\right) \land \left(y.im \leq 7.2 \cdot 10^{-13} \lor \neg \left(y.im \leq 0.00082\right) \land \left(y.im \leq 0.0245 \lor \neg \left(y.im \leq 1800000000000\right) \land \left(y.im \leq 2.4 \cdot 10^{+20} \lor \neg \left(y.im \leq 3.7 \cdot 10^{+22}\right) \land \left(y.im \leq 7.6 \cdot 10^{+23} \lor \neg \left(y.im \leq 5.2 \cdot 10^{+43}\right) \land \left(y.im \leq 5 \cdot 10^{+64} \lor \neg \left(y.im \leq 1.3 \cdot 10^{+73}\right) \land \left(y.im \leq 1.3 \cdot 10^{+82} \lor \neg \left(y.im \leq 4.6 \cdot 10^{+83}\right) \land \left(y.im \leq 5.2 \cdot 10^{+102} \lor \neg \left(y.im \leq 3 \cdot 10^{+103}\right) \land \left(y.im \leq 1.9 \cdot 10^{+110} \lor \neg \left(y.im \leq 7 \cdot 10^{+125}\right) \land \left(y.im \leq 1.8 \cdot 10^{+143} \lor \neg \left(y.im \leq 6 \cdot 10^{+147}\right) \land \left(y.im \leq 7.5 \cdot 10^{+241} \lor \neg \left(y.im \leq 7.8 \cdot 10^{+241}\right) \land \left(y.im \leq 7.5 \cdot 10^{+250} \lor \neg \left(y.im \leq 7.8 \cdot 10^{+250}\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):\\
\;\;\;\;\frac{x.re}{-y.im}\\

\mathbf{else}:\\
\;\;\;\;\frac{x.im}{y.re}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if y.im < -9.20000000000000045e-34 or -9.9999999999999998e-86 < y.im < -9.4999999999999996e-86 or -1.48000000000000001e-92 < y.im < -1.4e-92 or -1.5e-95 < y.im < -1.45000000000000001e-95 or -1.60000000000000006e-133 < y.im < -2.2e-135 or -2.50000000000000007e-140 < y.im < -2.39999999999999987e-140 or -4.3999999999999999e-167 < y.im < -3.29999999999999995e-167 or -1.6000000000000001e-172 < y.im < -1.5500000000000001e-172 or -2.35e-209 < y.im < -2.3e-209 or -1.05000000000000007e-247 < y.im < -1e-247 or -1.8500000000000001e-255 < y.im < -1.8000000000000001e-255 or -3.74999999999999999e-289 < y.im < -3.69999999999999989e-289 or 1.24999999999999991e-304 < y.im < 1.29999999999999998e-304 or 2.4499999999999999e-294 < y.im < 8.20000000000000015e-288 or 6.0000000000000001e-263 < y.im < 6.20000000000000008e-263 or 1.95000000000000014e-250 < y.im < 1.35000000000000005e-243 or 1.2e-194 < y.im < 1.07999999999999995e-184 or 2.1000000000000001e-143 < y.im < 2.19999999999999989e-143 or 1.1e-85 < y.im < 1.8e-75 or 5.50000000000000023e-53 < y.im < 5.50000000000000014e-34 or 1.85000000000000003e-19 < y.im < 3.5499999999999998e-17 or 9.4000000000000003e-14 < y.im < 7.1999999999999996e-13 or 8.1999999999999998e-4 < y.im < 0.024500000000000001 or 1.8e12 < y.im < 2.4e20 or 3.6999999999999998e22 < y.im < 7.5999999999999995e23 or 5.20000000000000042e43 < y.im < 5e64 or 1.3e73 < y.im < 1.2999999999999999e82 or 4.5999999999999999e83 < y.im < 5.20000000000000013e102 or 3e103 < y.im < 1.89999999999999994e110 or 7.00000000000000023e125 < y.im < 1.8e143 or 5.99999999999999987e147 < y.im < 7.5000000000000001e241 or 7.80000000000000052e241 < y.im < 7.4999999999999997e250 or 7.8e250 < y.im

    1. Initial program 59.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around 0 67.0%

      \[\leadsto \color{blue}{-1 \cdot \frac{x.re}{y.im}} \]
    4. Step-by-step derivation
      1. associate-*r/67.0%

        \[\leadsto \color{blue}{\frac{-1 \cdot x.re}{y.im}} \]
      2. neg-mul-167.0%

        \[\leadsto \frac{\color{blue}{-x.re}}{y.im} \]
    5. Simplified67.0%

      \[\leadsto \color{blue}{\frac{-x.re}{y.im}} \]

    if -9.20000000000000045e-34 < y.im < -9.9999999999999998e-86 or -9.4999999999999996e-86 < y.im < -1.48000000000000001e-92 or -1.4e-92 < y.im < -1.5e-95 or -1.45000000000000001e-95 < y.im < -1.60000000000000006e-133 or -2.2e-135 < y.im < -2.50000000000000007e-140 or -2.39999999999999987e-140 < y.im < -4.3999999999999999e-167 or -3.29999999999999995e-167 < y.im < -1.6000000000000001e-172 or -1.5500000000000001e-172 < y.im < -2.35e-209 or -2.3e-209 < y.im < -1.05000000000000007e-247 or -1e-247 < y.im < -1.8500000000000001e-255 or -1.8000000000000001e-255 < y.im < -3.74999999999999999e-289 or -3.69999999999999989e-289 < y.im < 1.24999999999999991e-304 or 1.29999999999999998e-304 < y.im < 2.4499999999999999e-294 or 8.20000000000000015e-288 < y.im < 6.0000000000000001e-263 or 6.20000000000000008e-263 < y.im < 1.95000000000000014e-250 or 1.35000000000000005e-243 < y.im < 1.2e-194 or 1.07999999999999995e-184 < y.im < 2.1000000000000001e-143 or 2.19999999999999989e-143 < y.im < 1.1e-85 or 1.8e-75 < y.im < 5.50000000000000023e-53 or 5.50000000000000014e-34 < y.im < 1.85000000000000003e-19 or 3.5499999999999998e-17 < y.im < 9.4000000000000003e-14 or 7.1999999999999996e-13 < y.im < 8.1999999999999998e-4 or 0.024500000000000001 < y.im < 1.8e12 or 2.4e20 < y.im < 3.6999999999999998e22 or 7.5999999999999995e23 < y.im < 5.20000000000000042e43 or 5e64 < y.im < 1.3e73 or 1.2999999999999999e82 < y.im < 4.5999999999999999e83 or 5.20000000000000013e102 < y.im < 3e103 or 1.89999999999999994e110 < y.im < 7.00000000000000023e125 or 1.8e143 < y.im < 5.99999999999999987e147 or 7.5000000000000001e241 < y.im < 7.80000000000000052e241 or 7.4999999999999997e250 < y.im < 7.8e250

    1. Initial program 61.5%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around inf 85.5%

      \[\leadsto \color{blue}{\frac{x.im}{y.re}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification75.2%

    \[\leadsto \begin{array}{l} \mathbf{if}\;y.im \leq -9.2 \cdot 10^{-34} \lor \neg \left(y.im \leq -1 \cdot 10^{-85}\right) \land \left(y.im \leq -9.5 \cdot 10^{-86} \lor \neg \left(y.im \leq -1.48 \cdot 10^{-92}\right) \land \left(y.im \leq -1.4 \cdot 10^{-92} \lor \neg \left(y.im \leq -1.5 \cdot 10^{-95}\right) \land \left(y.im \leq -1.45 \cdot 10^{-95} \lor \neg \left(y.im \leq -1.6 \cdot 10^{-133}\right) \land \left(y.im \leq -2.2 \cdot 10^{-135} \lor \neg \left(y.im \leq -2.5 \cdot 10^{-140}\right) \land \left(y.im \leq -2.4 \cdot 10^{-140} \lor \neg \left(y.im \leq -4.4 \cdot 10^{-167}\right) \land \left(y.im \leq -3.3 \cdot 10^{-167} \lor \neg \left(y.im \leq -1.6 \cdot 10^{-172}\right) \land \left(y.im \leq -1.55 \cdot 10^{-172} \lor \neg \left(y.im \leq -2.35 \cdot 10^{-209}\right) \land \left(y.im \leq -2.3 \cdot 10^{-209} \lor \neg \left(y.im \leq -1.05 \cdot 10^{-247}\right) \land \left(y.im \leq -1 \cdot 10^{-247} \lor \neg \left(y.im \leq -1.85 \cdot 10^{-255}\right) \land \left(y.im \leq -1.8 \cdot 10^{-255} \lor \neg \left(y.im \leq -3.75 \cdot 10^{-289}\right) \land \left(y.im \leq -3.7 \cdot 10^{-289} \lor \neg \left(y.im \leq 1.25 \cdot 10^{-304}\right) \land \left(y.im \leq 1.3 \cdot 10^{-304} \lor \neg \left(y.im \leq 2.45 \cdot 10^{-294}\right) \land \left(y.im \leq 8.2 \cdot 10^{-288} \lor \neg \left(y.im \leq 6 \cdot 10^{-263}\right) \land \left(y.im \leq 6.2 \cdot 10^{-263} \lor \neg \left(y.im \leq 1.95 \cdot 10^{-250}\right) \land \left(y.im \leq 1.35 \cdot 10^{-243} \lor \neg \left(y.im \leq 1.2 \cdot 10^{-194}\right) \land \left(y.im \leq 1.08 \cdot 10^{-184} \lor \neg \left(y.im \leq 2.1 \cdot 10^{-143}\right) \land \left(y.im \leq 2.2 \cdot 10^{-143} \lor \neg \left(y.im \leq 1.1 \cdot 10^{-85}\right) \land \left(y.im \leq 1.8 \cdot 10^{-75} \lor \neg \left(y.im \leq 5.5 \cdot 10^{-53}\right) \land \left(y.im \leq 5.5 \cdot 10^{-34} \lor \neg \left(y.im \leq 1.85 \cdot 10^{-19}\right) \land \left(y.im \leq 3.55 \cdot 10^{-17} \lor \neg \left(y.im \leq 9.4 \cdot 10^{-14}\right) \land \left(y.im \leq 7.2 \cdot 10^{-13} \lor \neg \left(y.im \leq 0.00082\right) \land \left(y.im \leq 0.0245 \lor \neg \left(y.im \leq 1800000000000\right) \land \left(y.im \leq 2.4 \cdot 10^{+20} \lor \neg \left(y.im \leq 3.7 \cdot 10^{+22}\right) \land \left(y.im \leq 7.6 \cdot 10^{+23} \lor \neg \left(y.im \leq 5.2 \cdot 10^{+43}\right) \land \left(y.im \leq 5 \cdot 10^{+64} \lor \neg \left(y.im \leq 1.3 \cdot 10^{+73}\right) \land \left(y.im \leq 1.3 \cdot 10^{+82} \lor \neg \left(y.im \leq 4.6 \cdot 10^{+83}\right) \land \left(y.im \leq 5.2 \cdot 10^{+102} \lor \neg \left(y.im \leq 3 \cdot 10^{+103}\right) \land \left(y.im \leq 1.9 \cdot 10^{+110} \lor \neg \left(y.im \leq 7 \cdot 10^{+125}\right) \land \left(y.im \leq 1.8 \cdot 10^{+143} \lor \neg \left(y.im \leq 6 \cdot 10^{+147}\right) \land \left(y.im \leq 7.5 \cdot 10^{+241} \lor \neg \left(y.im \leq 7.8 \cdot 10^{+241}\right) \land \left(y.im \leq 7.5 \cdot 10^{+250} \lor \neg \left(y.im \leq 7.8 \cdot 10^{+250}\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):\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{else}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \end{array} \]
  5. Add Preprocessing

Alternative 14: 71.9% accurate, 0.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ t_1 := \frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ t_2 := \frac{x.re}{-y.im}\\ t_3 := x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ t_4 := x.im \cdot \frac{y.re}{y.im}\\ t_5 := \frac{t\_4 - x.re}{y.im}\\ t_6 := \frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{if}\;y.im \leq -3.45 \cdot 10^{+108}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.im \leq -4.8 \cdot 10^{+81}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -5.4 \cdot 10^{+72}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.im \leq -3.6 \cdot 10^{+59}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.im \leq -2.8 \cdot 10^{+49}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq -1.2 \cdot 10^{+39}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -3.3 \cdot 10^{+35}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq -4.7 \cdot 10^{+27}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -310000:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq -300000:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq -520:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -215:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq -2.3 \cdot 10^{-5}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -2.25 \cdot 10^{-17}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq -1.15 \cdot 10^{-31}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1 \cdot 10^{-33}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.im \leq -6.2 \cdot 10^{-39}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -6 \cdot 10^{-39}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq -1.3 \cdot 10^{-84}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -1.25 \cdot 10^{-84}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq -1.44 \cdot 10^{-92}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -1.4 \cdot 10^{-92}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq -1.5 \cdot 10^{-95}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.45 \cdot 10^{-95}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq -3.6 \cdot 10^{-133}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -3.5 \cdot 10^{-133}:\\ \;\;\;\;\frac{t\_4}{y.im}\\ \mathbf{elif}\;y.im \leq -1.6 \cdot 10^{-172}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-172}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq -5 \cdot 10^{-210}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq 5 \cdot 10^{-282}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.im \leq 1.2 \cdot 10^{-194}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{-194}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq 2.1 \cdot 10^{-143}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 2.2 \cdot 10^{-143}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq 1.1 \cdot 10^{-85}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq 4.6 \cdot 10^{-85}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq 7.6 \cdot 10^{-52}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 5.2 \cdot 10^{-34}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq 105000:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.im \leq 2 \cdot 10^{+17}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq 2.55 \cdot 10^{+18}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.08 \cdot 10^{+21}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq 2.85 \cdot 10^{+22}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 4.2 \cdot 10^{+24}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq 1.45 \cdot 10^{+30}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{+63}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq 1.7 \cdot 10^{+75}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.35 \cdot 10^{+82}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq 8 \cdot 10^{+84}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 6.8 \cdot 10^{+99}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.im \leq 3.1 \cdot 10^{+103}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq 6.5 \cdot 10^{+142}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{+147}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.3 \cdot 10^{+174}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{+175}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 4.7 \cdot 10^{+235}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+241}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.9 \cdot 10^{+271}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.im \leq 1.95 \cdot 10^{+271}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 5.8 \cdot 10^{+297}:\\ \;\;\;\;t\_2\\ \mathbf{else}:\\ \;\;\;\;\frac{y.re}{y.im} \cdot \frac{x.im}{y.im}\\ \end{array} \end{array} \]
(FPCore (x.re x.im y.re y.im)
 :precision binary64
 (let* ((t_0 (/ (- x.im (* y.im (/ x.re y.re))) y.re))
        (t_1 (/ (- x.im (* x.re (/ y.im y.re))) y.re))
        (t_2 (/ x.re (- y.im)))
        (t_3 (* x.im (/ (/ y.re y.im) y.im)))
        (t_4 (* x.im (/ y.re y.im)))
        (t_5 (/ (- t_4 x.re) y.im))
        (t_6 (/ (- x.im (/ (* y.im x.re) y.re)) y.re)))
   (if (<= y.im -3.45e+108)
     t_5
     (if (<= y.im -4.8e+81)
       t_1
       (if (<= y.im -5.4e+72)
         t_5
         (if (<= y.im -3.6e+59)
           t_6
           (if (<= y.im -2.8e+49)
             t_2
             (if (<= y.im -1.2e+39)
               (/ x.im y.re)
               (if (<= y.im -3.3e+35)
                 t_2
                 (if (<= y.im -4.7e+27)
                   t_1
                   (if (<= y.im -310000.0)
                     t_2
                     (if (<= y.im -300000.0)
                       t_3
                       (if (<= y.im -520.0)
                         (/ x.im y.re)
                         (if (<= y.im -215.0)
                           t_2
                           (if (<= y.im -2.3e-5)
                             t_1
                             (if (<= y.im -2.25e-17)
                               t_2
                               (if (<= y.im -1.15e-31)
                                 (/ x.im y.re)
                                 (if (<= y.im -1e-33)
                                   t_5
                                   (if (<= y.im -6.2e-39)
                                     t_1
                                     (if (<= y.im -6e-39)
                                       t_3
                                       (if (<= y.im -1.3e-84)
                                         t_1
                                         (if (<= y.im -1.25e-84)
                                           t_3
                                           (if (<= y.im -1.44e-92)
                                             t_1
                                             (if (<= y.im -1.4e-92)
                                               t_2
                                               (if (<= y.im -1.5e-95)
                                                 (/ x.im y.re)
                                                 (if (<= y.im -1.45e-95)
                                                   t_2
                                                   (if (<= y.im -3.6e-133)
                                                     (/ x.im y.re)
                                                     (if (<= y.im -3.5e-133)
                                                       (/ t_4 y.im)
                                                       (if (<= y.im -1.6e-172)
                                                         t_6
                                                         (if (<=
                                                              y.im
                                                              -1.55e-172)
                                                           t_2
                                                           (if (<=
                                                                y.im
                                                                -5e-210)
                                                             t_0
                                                             (if (<=
                                                                  y.im
                                                                  5e-282)
                                                               t_6
                                                               (if (<=
                                                                    y.im
                                                                    1.2e-194)
                                                                 t_0
                                                                 (if (<=
                                                                      y.im
                                                                      1.25e-194)
                                                                   t_2
                                                                   (if (<=
                                                                        y.im
                                                                        2.1e-143)
                                                                     t_1
                                                                     (if (<=
                                                                          y.im
                                                                          2.2e-143)
                                                                       t_2
                                                                       (if (<=
                                                                            y.im
                                                                            1.1e-85)
                                                                         t_0
                                                                         (if (<=
                                                                              y.im
                                                                              4.6e-85)
                                                                           t_2
                                                                           (if (<=
                                                                                y.im
                                                                                7.6e-52)
                                                                             (/
                                                                              x.im
                                                                              y.re)
                                                                             (if (<=
                                                                                  y.im
                                                                                  5.2e-34)
                                                                               t_2
                                                                               (if (<=
                                                                                    y.im
                                                                                    105000.0)
                                                                                 t_6
                                                                                 (if (<=
                                                                                      y.im
                                                                                      2e+17)
                                                                                   t_2
                                                                                   (if (<=
                                                                                        y.im
                                                                                        2.55e+18)
                                                                                     t_1
                                                                                     (if (<=
                                                                                          y.im
                                                                                          1.08e+21)
                                                                                       t_2
                                                                                       (if (<=
                                                                                            y.im
                                                                                            2.85e+22)
                                                                                         (/
                                                                                          x.im
                                                                                          y.re)
                                                                                         (if (<=
                                                                                              y.im
                                                                                              4.2e+24)
                                                                                           t_2
                                                                                           (if (<=
                                                                                                y.im
                                                                                                1.45e+30)
                                                                                             (/
                                                                                              x.im
                                                                                              y.re)
                                                                                             (if (<=
                                                                                                  y.im
                                                                                                  1.25e+63)
                                                                                               t_2
                                                                                               (if (<=
                                                                                                    y.im
                                                                                                    1.7e+75)
                                                                                                 t_1
                                                                                                 (if (<=
                                                                                                      y.im
                                                                                                      1.35e+82)
                                                                                                   t_2
                                                                                                   (if (<=
                                                                                                        y.im
                                                                                                        8e+84)
                                                                                                     (/
                                                                                                      x.im
                                                                                                      y.re)
                                                                                                     (if (<=
                                                                                                          y.im
                                                                                                          6.8e+99)
                                                                                                       t_5
                                                                                                       (if (<=
                                                                                                            y.im
                                                                                                            3.1e+103)
                                                                                                         t_0
                                                                                                         (if (<=
                                                                                                              y.im
                                                                                                              6.5e+142)
                                                                                                           t_5
                                                                                                           (if (<=
                                                                                                                y.im
                                                                                                                6e+147)
                                                                                                             (/
                                                                                                              x.im
                                                                                                              y.re)
                                                                                                             (if (<=
                                                                                                                  y.im
                                                                                                                  1.3e+174)
                                                                                                               t_2
                                                                                                               (if (<=
                                                                                                                    y.im
                                                                                                                    1.25e+175)
                                                                                                                 t_1
                                                                                                                 (if (<=
                                                                                                                      y.im
                                                                                                                      4.7e+235)
                                                                                                                   t_2
                                                                                                                   (if (<=
                                                                                                                        y.im
                                                                                                                        7.8e+241)
                                                                                                                     t_1
                                                                                                                     (if (<=
                                                                                                                          y.im
                                                                                                                          1.9e+271)
                                                                                                                       t_5
                                                                                                                       (if (<=
                                                                                                                            y.im
                                                                                                                            1.95e+271)
                                                                                                                         t_1
                                                                                                                         (if (<=
                                                                                                                              y.im
                                                                                                                              5.8e+297)
                                                                                                                           t_2
                                                                                                                           (*
                                                                                                                            (/
                                                                                                                             y.re
                                                                                                                             y.im)
                                                                                                                            (/
                                                                                                                             x.im
                                                                                                                             y.im))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double t_0 = (x_46_im - (y_46_im * (x_46_re / y_46_re))) / y_46_re;
	double t_1 = (x_46_im - (x_46_re * (y_46_im / y_46_re))) / y_46_re;
	double t_2 = x_46_re / -y_46_im;
	double t_3 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	double t_4 = x_46_im * (y_46_re / y_46_im);
	double t_5 = (t_4 - x_46_re) / y_46_im;
	double t_6 = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re;
	double tmp;
	if (y_46_im <= -3.45e+108) {
		tmp = t_5;
	} else if (y_46_im <= -4.8e+81) {
		tmp = t_1;
	} else if (y_46_im <= -5.4e+72) {
		tmp = t_5;
	} else if (y_46_im <= -3.6e+59) {
		tmp = t_6;
	} else if (y_46_im <= -2.8e+49) {
		tmp = t_2;
	} else if (y_46_im <= -1.2e+39) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -3.3e+35) {
		tmp = t_2;
	} else if (y_46_im <= -4.7e+27) {
		tmp = t_1;
	} else if (y_46_im <= -310000.0) {
		tmp = t_2;
	} else if (y_46_im <= -300000.0) {
		tmp = t_3;
	} else if (y_46_im <= -520.0) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -215.0) {
		tmp = t_2;
	} else if (y_46_im <= -2.3e-5) {
		tmp = t_1;
	} else if (y_46_im <= -2.25e-17) {
		tmp = t_2;
	} else if (y_46_im <= -1.15e-31) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1e-33) {
		tmp = t_5;
	} else if (y_46_im <= -6.2e-39) {
		tmp = t_1;
	} else if (y_46_im <= -6e-39) {
		tmp = t_3;
	} else if (y_46_im <= -1.3e-84) {
		tmp = t_1;
	} else if (y_46_im <= -1.25e-84) {
		tmp = t_3;
	} else if (y_46_im <= -1.44e-92) {
		tmp = t_1;
	} else if (y_46_im <= -1.4e-92) {
		tmp = t_2;
	} else if (y_46_im <= -1.5e-95) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.45e-95) {
		tmp = t_2;
	} else if (y_46_im <= -3.6e-133) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -3.5e-133) {
		tmp = t_4 / y_46_im;
	} else if (y_46_im <= -1.6e-172) {
		tmp = t_6;
	} else if (y_46_im <= -1.55e-172) {
		tmp = t_2;
	} else if (y_46_im <= -5e-210) {
		tmp = t_0;
	} else if (y_46_im <= 5e-282) {
		tmp = t_6;
	} else if (y_46_im <= 1.2e-194) {
		tmp = t_0;
	} else if (y_46_im <= 1.25e-194) {
		tmp = t_2;
	} else if (y_46_im <= 2.1e-143) {
		tmp = t_1;
	} else if (y_46_im <= 2.2e-143) {
		tmp = t_2;
	} else if (y_46_im <= 1.1e-85) {
		tmp = t_0;
	} else if (y_46_im <= 4.6e-85) {
		tmp = t_2;
	} else if (y_46_im <= 7.6e-52) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 5.2e-34) {
		tmp = t_2;
	} else if (y_46_im <= 105000.0) {
		tmp = t_6;
	} else if (y_46_im <= 2e+17) {
		tmp = t_2;
	} else if (y_46_im <= 2.55e+18) {
		tmp = t_1;
	} else if (y_46_im <= 1.08e+21) {
		tmp = t_2;
	} else if (y_46_im <= 2.85e+22) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 4.2e+24) {
		tmp = t_2;
	} else if (y_46_im <= 1.45e+30) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.25e+63) {
		tmp = t_2;
	} else if (y_46_im <= 1.7e+75) {
		tmp = t_1;
	} else if (y_46_im <= 1.35e+82) {
		tmp = t_2;
	} else if (y_46_im <= 8e+84) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 6.8e+99) {
		tmp = t_5;
	} else if (y_46_im <= 3.1e+103) {
		tmp = t_0;
	} else if (y_46_im <= 6.5e+142) {
		tmp = t_5;
	} else if (y_46_im <= 6e+147) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.3e+174) {
		tmp = t_2;
	} else if (y_46_im <= 1.25e+175) {
		tmp = t_1;
	} else if (y_46_im <= 4.7e+235) {
		tmp = t_2;
	} else if (y_46_im <= 7.8e+241) {
		tmp = t_1;
	} else if (y_46_im <= 1.9e+271) {
		tmp = t_5;
	} else if (y_46_im <= 1.95e+271) {
		tmp = t_1;
	} else if (y_46_im <= 5.8e+297) {
		tmp = t_2;
	} else {
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im);
	}
	return tmp;
}
real(8) function code(x_46re, x_46im, y_46re, y_46im)
    real(8), intent (in) :: x_46re
    real(8), intent (in) :: x_46im
    real(8), intent (in) :: y_46re
    real(8), intent (in) :: y_46im
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: t_2
    real(8) :: t_3
    real(8) :: t_4
    real(8) :: t_5
    real(8) :: t_6
    real(8) :: tmp
    t_0 = (x_46im - (y_46im * (x_46re / y_46re))) / y_46re
    t_1 = (x_46im - (x_46re * (y_46im / y_46re))) / y_46re
    t_2 = x_46re / -y_46im
    t_3 = x_46im * ((y_46re / y_46im) / y_46im)
    t_4 = x_46im * (y_46re / y_46im)
    t_5 = (t_4 - x_46re) / y_46im
    t_6 = (x_46im - ((y_46im * x_46re) / y_46re)) / y_46re
    if (y_46im <= (-3.45d+108)) then
        tmp = t_5
    else if (y_46im <= (-4.8d+81)) then
        tmp = t_1
    else if (y_46im <= (-5.4d+72)) then
        tmp = t_5
    else if (y_46im <= (-3.6d+59)) then
        tmp = t_6
    else if (y_46im <= (-2.8d+49)) then
        tmp = t_2
    else if (y_46im <= (-1.2d+39)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-3.3d+35)) then
        tmp = t_2
    else if (y_46im <= (-4.7d+27)) then
        tmp = t_1
    else if (y_46im <= (-310000.0d0)) then
        tmp = t_2
    else if (y_46im <= (-300000.0d0)) then
        tmp = t_3
    else if (y_46im <= (-520.0d0)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-215.0d0)) then
        tmp = t_2
    else if (y_46im <= (-2.3d-5)) then
        tmp = t_1
    else if (y_46im <= (-2.25d-17)) then
        tmp = t_2
    else if (y_46im <= (-1.15d-31)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1d-33)) then
        tmp = t_5
    else if (y_46im <= (-6.2d-39)) then
        tmp = t_1
    else if (y_46im <= (-6d-39)) then
        tmp = t_3
    else if (y_46im <= (-1.3d-84)) then
        tmp = t_1
    else if (y_46im <= (-1.25d-84)) then
        tmp = t_3
    else if (y_46im <= (-1.44d-92)) then
        tmp = t_1
    else if (y_46im <= (-1.4d-92)) then
        tmp = t_2
    else if (y_46im <= (-1.5d-95)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1.45d-95)) then
        tmp = t_2
    else if (y_46im <= (-3.6d-133)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-3.5d-133)) then
        tmp = t_4 / y_46im
    else if (y_46im <= (-1.6d-172)) then
        tmp = t_6
    else if (y_46im <= (-1.55d-172)) then
        tmp = t_2
    else if (y_46im <= (-5d-210)) then
        tmp = t_0
    else if (y_46im <= 5d-282) then
        tmp = t_6
    else if (y_46im <= 1.2d-194) then
        tmp = t_0
    else if (y_46im <= 1.25d-194) then
        tmp = t_2
    else if (y_46im <= 2.1d-143) then
        tmp = t_1
    else if (y_46im <= 2.2d-143) then
        tmp = t_2
    else if (y_46im <= 1.1d-85) then
        tmp = t_0
    else if (y_46im <= 4.6d-85) then
        tmp = t_2
    else if (y_46im <= 7.6d-52) then
        tmp = x_46im / y_46re
    else if (y_46im <= 5.2d-34) then
        tmp = t_2
    else if (y_46im <= 105000.0d0) then
        tmp = t_6
    else if (y_46im <= 2d+17) then
        tmp = t_2
    else if (y_46im <= 2.55d+18) then
        tmp = t_1
    else if (y_46im <= 1.08d+21) then
        tmp = t_2
    else if (y_46im <= 2.85d+22) then
        tmp = x_46im / y_46re
    else if (y_46im <= 4.2d+24) then
        tmp = t_2
    else if (y_46im <= 1.45d+30) then
        tmp = x_46im / y_46re
    else if (y_46im <= 1.25d+63) then
        tmp = t_2
    else if (y_46im <= 1.7d+75) then
        tmp = t_1
    else if (y_46im <= 1.35d+82) then
        tmp = t_2
    else if (y_46im <= 8d+84) then
        tmp = x_46im / y_46re
    else if (y_46im <= 6.8d+99) then
        tmp = t_5
    else if (y_46im <= 3.1d+103) then
        tmp = t_0
    else if (y_46im <= 6.5d+142) then
        tmp = t_5
    else if (y_46im <= 6d+147) then
        tmp = x_46im / y_46re
    else if (y_46im <= 1.3d+174) then
        tmp = t_2
    else if (y_46im <= 1.25d+175) then
        tmp = t_1
    else if (y_46im <= 4.7d+235) then
        tmp = t_2
    else if (y_46im <= 7.8d+241) then
        tmp = t_1
    else if (y_46im <= 1.9d+271) then
        tmp = t_5
    else if (y_46im <= 1.95d+271) then
        tmp = t_1
    else if (y_46im <= 5.8d+297) then
        tmp = t_2
    else
        tmp = (y_46re / y_46im) * (x_46im / y_46im)
    end if
    code = tmp
end function
public static double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double t_0 = (x_46_im - (y_46_im * (x_46_re / y_46_re))) / y_46_re;
	double t_1 = (x_46_im - (x_46_re * (y_46_im / y_46_re))) / y_46_re;
	double t_2 = x_46_re / -y_46_im;
	double t_3 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	double t_4 = x_46_im * (y_46_re / y_46_im);
	double t_5 = (t_4 - x_46_re) / y_46_im;
	double t_6 = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re;
	double tmp;
	if (y_46_im <= -3.45e+108) {
		tmp = t_5;
	} else if (y_46_im <= -4.8e+81) {
		tmp = t_1;
	} else if (y_46_im <= -5.4e+72) {
		tmp = t_5;
	} else if (y_46_im <= -3.6e+59) {
		tmp = t_6;
	} else if (y_46_im <= -2.8e+49) {
		tmp = t_2;
	} else if (y_46_im <= -1.2e+39) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -3.3e+35) {
		tmp = t_2;
	} else if (y_46_im <= -4.7e+27) {
		tmp = t_1;
	} else if (y_46_im <= -310000.0) {
		tmp = t_2;
	} else if (y_46_im <= -300000.0) {
		tmp = t_3;
	} else if (y_46_im <= -520.0) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -215.0) {
		tmp = t_2;
	} else if (y_46_im <= -2.3e-5) {
		tmp = t_1;
	} else if (y_46_im <= -2.25e-17) {
		tmp = t_2;
	} else if (y_46_im <= -1.15e-31) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1e-33) {
		tmp = t_5;
	} else if (y_46_im <= -6.2e-39) {
		tmp = t_1;
	} else if (y_46_im <= -6e-39) {
		tmp = t_3;
	} else if (y_46_im <= -1.3e-84) {
		tmp = t_1;
	} else if (y_46_im <= -1.25e-84) {
		tmp = t_3;
	} else if (y_46_im <= -1.44e-92) {
		tmp = t_1;
	} else if (y_46_im <= -1.4e-92) {
		tmp = t_2;
	} else if (y_46_im <= -1.5e-95) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.45e-95) {
		tmp = t_2;
	} else if (y_46_im <= -3.6e-133) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -3.5e-133) {
		tmp = t_4 / y_46_im;
	} else if (y_46_im <= -1.6e-172) {
		tmp = t_6;
	} else if (y_46_im <= -1.55e-172) {
		tmp = t_2;
	} else if (y_46_im <= -5e-210) {
		tmp = t_0;
	} else if (y_46_im <= 5e-282) {
		tmp = t_6;
	} else if (y_46_im <= 1.2e-194) {
		tmp = t_0;
	} else if (y_46_im <= 1.25e-194) {
		tmp = t_2;
	} else if (y_46_im <= 2.1e-143) {
		tmp = t_1;
	} else if (y_46_im <= 2.2e-143) {
		tmp = t_2;
	} else if (y_46_im <= 1.1e-85) {
		tmp = t_0;
	} else if (y_46_im <= 4.6e-85) {
		tmp = t_2;
	} else if (y_46_im <= 7.6e-52) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 5.2e-34) {
		tmp = t_2;
	} else if (y_46_im <= 105000.0) {
		tmp = t_6;
	} else if (y_46_im <= 2e+17) {
		tmp = t_2;
	} else if (y_46_im <= 2.55e+18) {
		tmp = t_1;
	} else if (y_46_im <= 1.08e+21) {
		tmp = t_2;
	} else if (y_46_im <= 2.85e+22) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 4.2e+24) {
		tmp = t_2;
	} else if (y_46_im <= 1.45e+30) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.25e+63) {
		tmp = t_2;
	} else if (y_46_im <= 1.7e+75) {
		tmp = t_1;
	} else if (y_46_im <= 1.35e+82) {
		tmp = t_2;
	} else if (y_46_im <= 8e+84) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 6.8e+99) {
		tmp = t_5;
	} else if (y_46_im <= 3.1e+103) {
		tmp = t_0;
	} else if (y_46_im <= 6.5e+142) {
		tmp = t_5;
	} else if (y_46_im <= 6e+147) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.3e+174) {
		tmp = t_2;
	} else if (y_46_im <= 1.25e+175) {
		tmp = t_1;
	} else if (y_46_im <= 4.7e+235) {
		tmp = t_2;
	} else if (y_46_im <= 7.8e+241) {
		tmp = t_1;
	} else if (y_46_im <= 1.9e+271) {
		tmp = t_5;
	} else if (y_46_im <= 1.95e+271) {
		tmp = t_1;
	} else if (y_46_im <= 5.8e+297) {
		tmp = t_2;
	} else {
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im);
	}
	return tmp;
}
def code(x_46_re, x_46_im, y_46_re, y_46_im):
	t_0 = (x_46_im - (y_46_im * (x_46_re / y_46_re))) / y_46_re
	t_1 = (x_46_im - (x_46_re * (y_46_im / y_46_re))) / y_46_re
	t_2 = x_46_re / -y_46_im
	t_3 = x_46_im * ((y_46_re / y_46_im) / y_46_im)
	t_4 = x_46_im * (y_46_re / y_46_im)
	t_5 = (t_4 - x_46_re) / y_46_im
	t_6 = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re
	tmp = 0
	if y_46_im <= -3.45e+108:
		tmp = t_5
	elif y_46_im <= -4.8e+81:
		tmp = t_1
	elif y_46_im <= -5.4e+72:
		tmp = t_5
	elif y_46_im <= -3.6e+59:
		tmp = t_6
	elif y_46_im <= -2.8e+49:
		tmp = t_2
	elif y_46_im <= -1.2e+39:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -3.3e+35:
		tmp = t_2
	elif y_46_im <= -4.7e+27:
		tmp = t_1
	elif y_46_im <= -310000.0:
		tmp = t_2
	elif y_46_im <= -300000.0:
		tmp = t_3
	elif y_46_im <= -520.0:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -215.0:
		tmp = t_2
	elif y_46_im <= -2.3e-5:
		tmp = t_1
	elif y_46_im <= -2.25e-17:
		tmp = t_2
	elif y_46_im <= -1.15e-31:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1e-33:
		tmp = t_5
	elif y_46_im <= -6.2e-39:
		tmp = t_1
	elif y_46_im <= -6e-39:
		tmp = t_3
	elif y_46_im <= -1.3e-84:
		tmp = t_1
	elif y_46_im <= -1.25e-84:
		tmp = t_3
	elif y_46_im <= -1.44e-92:
		tmp = t_1
	elif y_46_im <= -1.4e-92:
		tmp = t_2
	elif y_46_im <= -1.5e-95:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1.45e-95:
		tmp = t_2
	elif y_46_im <= -3.6e-133:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -3.5e-133:
		tmp = t_4 / y_46_im
	elif y_46_im <= -1.6e-172:
		tmp = t_6
	elif y_46_im <= -1.55e-172:
		tmp = t_2
	elif y_46_im <= -5e-210:
		tmp = t_0
	elif y_46_im <= 5e-282:
		tmp = t_6
	elif y_46_im <= 1.2e-194:
		tmp = t_0
	elif y_46_im <= 1.25e-194:
		tmp = t_2
	elif y_46_im <= 2.1e-143:
		tmp = t_1
	elif y_46_im <= 2.2e-143:
		tmp = t_2
	elif y_46_im <= 1.1e-85:
		tmp = t_0
	elif y_46_im <= 4.6e-85:
		tmp = t_2
	elif y_46_im <= 7.6e-52:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 5.2e-34:
		tmp = t_2
	elif y_46_im <= 105000.0:
		tmp = t_6
	elif y_46_im <= 2e+17:
		tmp = t_2
	elif y_46_im <= 2.55e+18:
		tmp = t_1
	elif y_46_im <= 1.08e+21:
		tmp = t_2
	elif y_46_im <= 2.85e+22:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 4.2e+24:
		tmp = t_2
	elif y_46_im <= 1.45e+30:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 1.25e+63:
		tmp = t_2
	elif y_46_im <= 1.7e+75:
		tmp = t_1
	elif y_46_im <= 1.35e+82:
		tmp = t_2
	elif y_46_im <= 8e+84:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 6.8e+99:
		tmp = t_5
	elif y_46_im <= 3.1e+103:
		tmp = t_0
	elif y_46_im <= 6.5e+142:
		tmp = t_5
	elif y_46_im <= 6e+147:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 1.3e+174:
		tmp = t_2
	elif y_46_im <= 1.25e+175:
		tmp = t_1
	elif y_46_im <= 4.7e+235:
		tmp = t_2
	elif y_46_im <= 7.8e+241:
		tmp = t_1
	elif y_46_im <= 1.9e+271:
		tmp = t_5
	elif y_46_im <= 1.95e+271:
		tmp = t_1
	elif y_46_im <= 5.8e+297:
		tmp = t_2
	else:
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im)
	return tmp
function code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = Float64(Float64(x_46_im - Float64(y_46_im * Float64(x_46_re / y_46_re))) / y_46_re)
	t_1 = Float64(Float64(x_46_im - Float64(x_46_re * Float64(y_46_im / y_46_re))) / y_46_re)
	t_2 = Float64(x_46_re / Float64(-y_46_im))
	t_3 = Float64(x_46_im * Float64(Float64(y_46_re / y_46_im) / y_46_im))
	t_4 = Float64(x_46_im * Float64(y_46_re / y_46_im))
	t_5 = Float64(Float64(t_4 - x_46_re) / y_46_im)
	t_6 = Float64(Float64(x_46_im - Float64(Float64(y_46_im * x_46_re) / y_46_re)) / y_46_re)
	tmp = 0.0
	if (y_46_im <= -3.45e+108)
		tmp = t_5;
	elseif (y_46_im <= -4.8e+81)
		tmp = t_1;
	elseif (y_46_im <= -5.4e+72)
		tmp = t_5;
	elseif (y_46_im <= -3.6e+59)
		tmp = t_6;
	elseif (y_46_im <= -2.8e+49)
		tmp = t_2;
	elseif (y_46_im <= -1.2e+39)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -3.3e+35)
		tmp = t_2;
	elseif (y_46_im <= -4.7e+27)
		tmp = t_1;
	elseif (y_46_im <= -310000.0)
		tmp = t_2;
	elseif (y_46_im <= -300000.0)
		tmp = t_3;
	elseif (y_46_im <= -520.0)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -215.0)
		tmp = t_2;
	elseif (y_46_im <= -2.3e-5)
		tmp = t_1;
	elseif (y_46_im <= -2.25e-17)
		tmp = t_2;
	elseif (y_46_im <= -1.15e-31)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1e-33)
		tmp = t_5;
	elseif (y_46_im <= -6.2e-39)
		tmp = t_1;
	elseif (y_46_im <= -6e-39)
		tmp = t_3;
	elseif (y_46_im <= -1.3e-84)
		tmp = t_1;
	elseif (y_46_im <= -1.25e-84)
		tmp = t_3;
	elseif (y_46_im <= -1.44e-92)
		tmp = t_1;
	elseif (y_46_im <= -1.4e-92)
		tmp = t_2;
	elseif (y_46_im <= -1.5e-95)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1.45e-95)
		tmp = t_2;
	elseif (y_46_im <= -3.6e-133)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -3.5e-133)
		tmp = Float64(t_4 / y_46_im);
	elseif (y_46_im <= -1.6e-172)
		tmp = t_6;
	elseif (y_46_im <= -1.55e-172)
		tmp = t_2;
	elseif (y_46_im <= -5e-210)
		tmp = t_0;
	elseif (y_46_im <= 5e-282)
		tmp = t_6;
	elseif (y_46_im <= 1.2e-194)
		tmp = t_0;
	elseif (y_46_im <= 1.25e-194)
		tmp = t_2;
	elseif (y_46_im <= 2.1e-143)
		tmp = t_1;
	elseif (y_46_im <= 2.2e-143)
		tmp = t_2;
	elseif (y_46_im <= 1.1e-85)
		tmp = t_0;
	elseif (y_46_im <= 4.6e-85)
		tmp = t_2;
	elseif (y_46_im <= 7.6e-52)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 5.2e-34)
		tmp = t_2;
	elseif (y_46_im <= 105000.0)
		tmp = t_6;
	elseif (y_46_im <= 2e+17)
		tmp = t_2;
	elseif (y_46_im <= 2.55e+18)
		tmp = t_1;
	elseif (y_46_im <= 1.08e+21)
		tmp = t_2;
	elseif (y_46_im <= 2.85e+22)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 4.2e+24)
		tmp = t_2;
	elseif (y_46_im <= 1.45e+30)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 1.25e+63)
		tmp = t_2;
	elseif (y_46_im <= 1.7e+75)
		tmp = t_1;
	elseif (y_46_im <= 1.35e+82)
		tmp = t_2;
	elseif (y_46_im <= 8e+84)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 6.8e+99)
		tmp = t_5;
	elseif (y_46_im <= 3.1e+103)
		tmp = t_0;
	elseif (y_46_im <= 6.5e+142)
		tmp = t_5;
	elseif (y_46_im <= 6e+147)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 1.3e+174)
		tmp = t_2;
	elseif (y_46_im <= 1.25e+175)
		tmp = t_1;
	elseif (y_46_im <= 4.7e+235)
		tmp = t_2;
	elseif (y_46_im <= 7.8e+241)
		tmp = t_1;
	elseif (y_46_im <= 1.9e+271)
		tmp = t_5;
	elseif (y_46_im <= 1.95e+271)
		tmp = t_1;
	elseif (y_46_im <= 5.8e+297)
		tmp = t_2;
	else
		tmp = Float64(Float64(y_46_re / y_46_im) * Float64(x_46_im / y_46_im));
	end
	return tmp
end
function tmp_2 = code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = (x_46_im - (y_46_im * (x_46_re / y_46_re))) / y_46_re;
	t_1 = (x_46_im - (x_46_re * (y_46_im / y_46_re))) / y_46_re;
	t_2 = x_46_re / -y_46_im;
	t_3 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	t_4 = x_46_im * (y_46_re / y_46_im);
	t_5 = (t_4 - x_46_re) / y_46_im;
	t_6 = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re;
	tmp = 0.0;
	if (y_46_im <= -3.45e+108)
		tmp = t_5;
	elseif (y_46_im <= -4.8e+81)
		tmp = t_1;
	elseif (y_46_im <= -5.4e+72)
		tmp = t_5;
	elseif (y_46_im <= -3.6e+59)
		tmp = t_6;
	elseif (y_46_im <= -2.8e+49)
		tmp = t_2;
	elseif (y_46_im <= -1.2e+39)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -3.3e+35)
		tmp = t_2;
	elseif (y_46_im <= -4.7e+27)
		tmp = t_1;
	elseif (y_46_im <= -310000.0)
		tmp = t_2;
	elseif (y_46_im <= -300000.0)
		tmp = t_3;
	elseif (y_46_im <= -520.0)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -215.0)
		tmp = t_2;
	elseif (y_46_im <= -2.3e-5)
		tmp = t_1;
	elseif (y_46_im <= -2.25e-17)
		tmp = t_2;
	elseif (y_46_im <= -1.15e-31)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1e-33)
		tmp = t_5;
	elseif (y_46_im <= -6.2e-39)
		tmp = t_1;
	elseif (y_46_im <= -6e-39)
		tmp = t_3;
	elseif (y_46_im <= -1.3e-84)
		tmp = t_1;
	elseif (y_46_im <= -1.25e-84)
		tmp = t_3;
	elseif (y_46_im <= -1.44e-92)
		tmp = t_1;
	elseif (y_46_im <= -1.4e-92)
		tmp = t_2;
	elseif (y_46_im <= -1.5e-95)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1.45e-95)
		tmp = t_2;
	elseif (y_46_im <= -3.6e-133)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -3.5e-133)
		tmp = t_4 / y_46_im;
	elseif (y_46_im <= -1.6e-172)
		tmp = t_6;
	elseif (y_46_im <= -1.55e-172)
		tmp = t_2;
	elseif (y_46_im <= -5e-210)
		tmp = t_0;
	elseif (y_46_im <= 5e-282)
		tmp = t_6;
	elseif (y_46_im <= 1.2e-194)
		tmp = t_0;
	elseif (y_46_im <= 1.25e-194)
		tmp = t_2;
	elseif (y_46_im <= 2.1e-143)
		tmp = t_1;
	elseif (y_46_im <= 2.2e-143)
		tmp = t_2;
	elseif (y_46_im <= 1.1e-85)
		tmp = t_0;
	elseif (y_46_im <= 4.6e-85)
		tmp = t_2;
	elseif (y_46_im <= 7.6e-52)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 5.2e-34)
		tmp = t_2;
	elseif (y_46_im <= 105000.0)
		tmp = t_6;
	elseif (y_46_im <= 2e+17)
		tmp = t_2;
	elseif (y_46_im <= 2.55e+18)
		tmp = t_1;
	elseif (y_46_im <= 1.08e+21)
		tmp = t_2;
	elseif (y_46_im <= 2.85e+22)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 4.2e+24)
		tmp = t_2;
	elseif (y_46_im <= 1.45e+30)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 1.25e+63)
		tmp = t_2;
	elseif (y_46_im <= 1.7e+75)
		tmp = t_1;
	elseif (y_46_im <= 1.35e+82)
		tmp = t_2;
	elseif (y_46_im <= 8e+84)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 6.8e+99)
		tmp = t_5;
	elseif (y_46_im <= 3.1e+103)
		tmp = t_0;
	elseif (y_46_im <= 6.5e+142)
		tmp = t_5;
	elseif (y_46_im <= 6e+147)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 1.3e+174)
		tmp = t_2;
	elseif (y_46_im <= 1.25e+175)
		tmp = t_1;
	elseif (y_46_im <= 4.7e+235)
		tmp = t_2;
	elseif (y_46_im <= 7.8e+241)
		tmp = t_1;
	elseif (y_46_im <= 1.9e+271)
		tmp = t_5;
	elseif (y_46_im <= 1.95e+271)
		tmp = t_1;
	elseif (y_46_im <= 5.8e+297)
		tmp = t_2;
	else
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im);
	end
	tmp_2 = tmp;
end
code[x$46$re_, x$46$im_, y$46$re_, y$46$im_] := Block[{t$95$0 = N[(N[(x$46$im - N[(y$46$im * N[(x$46$re / y$46$re), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y$46$re), $MachinePrecision]}, Block[{t$95$1 = N[(N[(x$46$im - N[(x$46$re * N[(y$46$im / y$46$re), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y$46$re), $MachinePrecision]}, Block[{t$95$2 = N[(x$46$re / (-y$46$im)), $MachinePrecision]}, Block[{t$95$3 = N[(x$46$im * N[(N[(y$46$re / y$46$im), $MachinePrecision] / y$46$im), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[(x$46$im * N[(y$46$re / y$46$im), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$5 = N[(N[(t$95$4 - x$46$re), $MachinePrecision] / y$46$im), $MachinePrecision]}, Block[{t$95$6 = N[(N[(x$46$im - N[(N[(y$46$im * x$46$re), $MachinePrecision] / y$46$re), $MachinePrecision]), $MachinePrecision] / y$46$re), $MachinePrecision]}, If[LessEqual[y$46$im, -3.45e+108], t$95$5, If[LessEqual[y$46$im, -4.8e+81], t$95$1, If[LessEqual[y$46$im, -5.4e+72], t$95$5, If[LessEqual[y$46$im, -3.6e+59], t$95$6, If[LessEqual[y$46$im, -2.8e+49], t$95$2, If[LessEqual[y$46$im, -1.2e+39], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -3.3e+35], t$95$2, If[LessEqual[y$46$im, -4.7e+27], t$95$1, If[LessEqual[y$46$im, -310000.0], t$95$2, If[LessEqual[y$46$im, -300000.0], t$95$3, If[LessEqual[y$46$im, -520.0], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -215.0], t$95$2, If[LessEqual[y$46$im, -2.3e-5], t$95$1, If[LessEqual[y$46$im, -2.25e-17], t$95$2, If[LessEqual[y$46$im, -1.15e-31], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1e-33], t$95$5, If[LessEqual[y$46$im, -6.2e-39], t$95$1, If[LessEqual[y$46$im, -6e-39], t$95$3, If[LessEqual[y$46$im, -1.3e-84], t$95$1, If[LessEqual[y$46$im, -1.25e-84], t$95$3, If[LessEqual[y$46$im, -1.44e-92], t$95$1, If[LessEqual[y$46$im, -1.4e-92], t$95$2, If[LessEqual[y$46$im, -1.5e-95], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1.45e-95], t$95$2, If[LessEqual[y$46$im, -3.6e-133], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -3.5e-133], N[(t$95$4 / y$46$im), $MachinePrecision], If[LessEqual[y$46$im, -1.6e-172], t$95$6, If[LessEqual[y$46$im, -1.55e-172], t$95$2, If[LessEqual[y$46$im, -5e-210], t$95$0, If[LessEqual[y$46$im, 5e-282], t$95$6, If[LessEqual[y$46$im, 1.2e-194], t$95$0, If[LessEqual[y$46$im, 1.25e-194], t$95$2, If[LessEqual[y$46$im, 2.1e-143], t$95$1, If[LessEqual[y$46$im, 2.2e-143], t$95$2, If[LessEqual[y$46$im, 1.1e-85], t$95$0, If[LessEqual[y$46$im, 4.6e-85], t$95$2, If[LessEqual[y$46$im, 7.6e-52], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 5.2e-34], t$95$2, If[LessEqual[y$46$im, 105000.0], t$95$6, If[LessEqual[y$46$im, 2e+17], t$95$2, If[LessEqual[y$46$im, 2.55e+18], t$95$1, If[LessEqual[y$46$im, 1.08e+21], t$95$2, If[LessEqual[y$46$im, 2.85e+22], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 4.2e+24], t$95$2, If[LessEqual[y$46$im, 1.45e+30], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 1.25e+63], t$95$2, If[LessEqual[y$46$im, 1.7e+75], t$95$1, If[LessEqual[y$46$im, 1.35e+82], t$95$2, If[LessEqual[y$46$im, 8e+84], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 6.8e+99], t$95$5, If[LessEqual[y$46$im, 3.1e+103], t$95$0, If[LessEqual[y$46$im, 6.5e+142], t$95$5, If[LessEqual[y$46$im, 6e+147], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 1.3e+174], t$95$2, If[LessEqual[y$46$im, 1.25e+175], t$95$1, If[LessEqual[y$46$im, 4.7e+235], t$95$2, If[LessEqual[y$46$im, 7.8e+241], t$95$1, If[LessEqual[y$46$im, 1.9e+271], t$95$5, If[LessEqual[y$46$im, 1.95e+271], t$95$1, If[LessEqual[y$46$im, 5.8e+297], t$95$2, N[(N[(y$46$re / y$46$im), $MachinePrecision] * N[(x$46$im / y$46$im), $MachinePrecision]), $MachinePrecision]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\
t_1 := \frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\
t_2 := \frac{x.re}{-y.im}\\
t_3 := x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\
t_4 := x.im \cdot \frac{y.re}{y.im}\\
t_5 := \frac{t\_4 - x.re}{y.im}\\
t_6 := \frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\
\mathbf{if}\;y.im \leq -3.45 \cdot 10^{+108}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.im \leq -4.8 \cdot 10^{+81}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -5.4 \cdot 10^{+72}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.im \leq -3.6 \cdot 10^{+59}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.im \leq -2.8 \cdot 10^{+49}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq -1.2 \cdot 10^{+39}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -3.3 \cdot 10^{+35}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq -4.7 \cdot 10^{+27}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -310000:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq -300000:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq -520:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -215:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq -2.3 \cdot 10^{-5}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -2.25 \cdot 10^{-17}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq -1.15 \cdot 10^{-31}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1 \cdot 10^{-33}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.im \leq -6.2 \cdot 10^{-39}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -6 \cdot 10^{-39}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq -1.3 \cdot 10^{-84}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -1.25 \cdot 10^{-84}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq -1.44 \cdot 10^{-92}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -1.4 \cdot 10^{-92}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq -1.5 \cdot 10^{-95}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1.45 \cdot 10^{-95}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq -3.6 \cdot 10^{-133}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -3.5 \cdot 10^{-133}:\\
\;\;\;\;\frac{t\_4}{y.im}\\

\mathbf{elif}\;y.im \leq -1.6 \cdot 10^{-172}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-172}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq -5 \cdot 10^{-210}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq 5 \cdot 10^{-282}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.im \leq 1.2 \cdot 10^{-194}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq 1.25 \cdot 10^{-194}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq 2.1 \cdot 10^{-143}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 2.2 \cdot 10^{-143}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq 1.1 \cdot 10^{-85}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq 4.6 \cdot 10^{-85}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq 7.6 \cdot 10^{-52}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 5.2 \cdot 10^{-34}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq 105000:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.im \leq 2 \cdot 10^{+17}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq 2.55 \cdot 10^{+18}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.08 \cdot 10^{+21}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq 2.85 \cdot 10^{+22}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 4.2 \cdot 10^{+24}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq 1.45 \cdot 10^{+30}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 1.25 \cdot 10^{+63}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq 1.7 \cdot 10^{+75}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.35 \cdot 10^{+82}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq 8 \cdot 10^{+84}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 6.8 \cdot 10^{+99}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.im \leq 3.1 \cdot 10^{+103}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq 6.5 \cdot 10^{+142}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.im \leq 6 \cdot 10^{+147}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 1.3 \cdot 10^{+174}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq 1.25 \cdot 10^{+175}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 4.7 \cdot 10^{+235}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+241}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.9 \cdot 10^{+271}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.im \leq 1.95 \cdot 10^{+271}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 5.8 \cdot 10^{+297}:\\
\;\;\;\;t\_2\\

\mathbf{else}:\\
\;\;\;\;\frac{y.re}{y.im} \cdot \frac{x.im}{y.im}\\


\end{array}
\end{array}
Derivation
  1. Split input into 9 regimes
  2. if y.im < -3.44999999999999984e108 or -4.79999999999999979e81 < y.im < -5.4000000000000001e72 or -1.1499999999999999e-31 < y.im < -1.0000000000000001e-33 or 8.00000000000000046e84 < y.im < 6.79999999999999968e99 or 3.1000000000000002e103 < y.im < 6.4999999999999997e142 or 7.80000000000000052e241 < y.im < 1.8999999999999999e271

    1. Initial program 44.8%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub44.8%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative44.8%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt44.8%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac46.8%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg46.8%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define46.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define60.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*72.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt72.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow272.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define72.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr72.8%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 84.7%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/92.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified92.0%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]

    if -3.44999999999999984e108 < y.im < -4.79999999999999979e81 or -3.3000000000000002e35 < y.im < -4.69999999999999976e27 or -215 < y.im < -2.3e-5 or -1.0000000000000001e-33 < y.im < -6.1999999999999994e-39 or -6.00000000000000055e-39 < y.im < -1.3e-84 or -1.25e-84 < y.im < -1.4400000000000001e-92 or 1.2500000000000001e-194 < y.im < 2.1000000000000001e-143 or 2e17 < y.im < 2.55e18 or 1.25000000000000003e63 < y.im < 1.70000000000000006e75 or 1.2999999999999999e174 < y.im < 1.25e175 or 4.6999999999999999e235 < y.im < 7.80000000000000052e241 or 1.8999999999999999e271 < y.im < 1.95e271

    1. Initial program 61.4%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around inf 93.2%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    4. Step-by-step derivation
      1. remove-double-neg93.2%

        \[\leadsto \frac{\color{blue}{\left(-\left(-x.im\right)\right)} + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      2. mul-1-neg93.2%

        \[\leadsto \frac{\left(-\color{blue}{-1 \cdot x.im}\right) + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      3. neg-mul-193.2%

        \[\leadsto \frac{\color{blue}{-1 \cdot \left(-1 \cdot x.im\right)} + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      4. distribute-lft-in93.2%

        \[\leadsto \frac{\color{blue}{-1 \cdot \left(-1 \cdot x.im + \frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      5. mul-1-neg93.2%

        \[\leadsto \frac{\color{blue}{-\left(-1 \cdot x.im + \frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      6. distribute-neg-in93.2%

        \[\leadsto \frac{\color{blue}{\left(--1 \cdot x.im\right) + \left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      7. mul-1-neg93.2%

        \[\leadsto \frac{\left(-\color{blue}{\left(-x.im\right)}\right) + \left(-\frac{x.re \cdot y.im}{y.re}\right)}{y.re} \]
      8. remove-double-neg93.2%

        \[\leadsto \frac{\color{blue}{x.im} + \left(-\frac{x.re \cdot y.im}{y.re}\right)}{y.re} \]
      9. unsub-neg93.2%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      10. associate-/l*100.0%

        \[\leadsto \frac{x.im - \color{blue}{x.re \cdot \frac{y.im}{y.re}}}{y.re} \]
    5. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}} \]

    if -5.4000000000000001e72 < y.im < -3.5999999999999999e59 or -3.50000000000000003e-133 < y.im < -1.6000000000000001e-172 or -5.0000000000000002e-210 < y.im < 5.0000000000000001e-282 or 5.1999999999999999e-34 < y.im < 105000

    1. Initial program 68.4%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub64.3%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative64.3%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt64.3%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac70.1%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg70.1%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define70.1%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define85.9%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*85.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt85.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow285.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define85.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr85.8%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 100.0%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg100.0%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg100.0%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative100.0%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]

    if -3.5999999999999999e59 < y.im < -2.7999999999999998e49 or -1.2e39 < y.im < -3.3000000000000002e35 or -4.69999999999999976e27 < y.im < -3.1e5 or -520 < y.im < -215 or -2.3e-5 < y.im < -2.24999999999999989e-17 or -1.4400000000000001e-92 < y.im < -1.4e-92 or -1.5e-95 < y.im < -1.45000000000000001e-95 or -1.6000000000000001e-172 < y.im < -1.5500000000000001e-172 or 1.2e-194 < y.im < 1.2500000000000001e-194 or 2.1000000000000001e-143 < y.im < 2.19999999999999989e-143 or 1.1e-85 < y.im < 4.6000000000000001e-85 or 7.6000000000000007e-52 < y.im < 5.1999999999999999e-34 or 105000 < y.im < 2e17 or 2.55e18 < y.im < 1.08e21 or 2.8499999999999999e22 < y.im < 4.2000000000000003e24 or 1.4499999999999999e30 < y.im < 1.25000000000000003e63 or 1.70000000000000006e75 < y.im < 1.35e82 or 5.99999999999999987e147 < y.im < 1.2999999999999999e174 or 1.25e175 < y.im < 4.6999999999999999e235 or 1.95e271 < y.im < 5.8000000000000005e297

    1. Initial program 71.2%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around 0 100.0%

      \[\leadsto \color{blue}{-1 \cdot \frac{x.re}{y.im}} \]
    4. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \color{blue}{\frac{-1 \cdot x.re}{y.im}} \]
      2. neg-mul-1100.0%

        \[\leadsto \frac{\color{blue}{-x.re}}{y.im} \]
    5. Simplified100.0%

      \[\leadsto \color{blue}{\frac{-x.re}{y.im}} \]

    if -2.7999999999999998e49 < y.im < -1.2e39 or -3e5 < y.im < -520 or -2.24999999999999989e-17 < y.im < -1.1499999999999999e-31 or -1.4e-92 < y.im < -1.5e-95 or -1.45000000000000001e-95 < y.im < -3.6000000000000004e-133 or 4.6000000000000001e-85 < y.im < 7.6000000000000007e-52 or 1.08e21 < y.im < 2.8499999999999999e22 or 4.2000000000000003e24 < y.im < 1.4499999999999999e30 or 1.35e82 < y.im < 8.00000000000000046e84 or 6.4999999999999997e142 < y.im < 5.99999999999999987e147

    1. Initial program 53.6%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around inf 100.0%

      \[\leadsto \color{blue}{\frac{x.im}{y.re}} \]

    if -3.1e5 < y.im < -3e5 or -6.1999999999999994e-39 < y.im < -6.00000000000000055e-39 or -1.3e-84 < y.im < -1.25e-84

    1. Initial program 99.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub99.0%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative99.0%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt99.0%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac99.5%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg99.5%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define99.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define99.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*99.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt99.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow299.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define99.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr99.5%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 99.0%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/99.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified99.0%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 99.0%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/99.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified99.0%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    11. Step-by-step derivation
      1. associate-/l*100.0%

        \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]
    12. Applied egg-rr100.0%

      \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]

    if -3.6000000000000004e-133 < y.im < -3.50000000000000003e-133

    1. Initial program 100.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub100.0%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative100.0%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt100.0%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac7.8%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg7.8%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define7.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define7.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*7.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt7.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow27.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define7.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr7.8%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 100.0%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 100.0%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified100.0%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]

    if -1.5500000000000001e-172 < y.im < -5.0000000000000002e-210 or 5.0000000000000001e-282 < y.im < 1.2e-194 or 2.19999999999999989e-143 < y.im < 1.1e-85 or 6.79999999999999968e99 < y.im < 3.1000000000000002e103

    1. Initial program 56.5%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub52.7%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative52.7%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt52.7%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac53.4%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg53.4%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define53.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define87.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*87.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt87.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow287.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define87.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr87.3%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 93.3%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg93.3%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg93.3%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative93.3%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified93.3%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]
    8. Step-by-step derivation
      1. associate-/l*99.9%

        \[\leadsto \frac{x.im - \color{blue}{y.im \cdot \frac{x.re}{y.re}}}{y.re} \]
    9. Applied egg-rr99.9%

      \[\leadsto \frac{x.im - \color{blue}{y.im \cdot \frac{x.re}{y.re}}}{y.re} \]

    if 5.8000000000000005e297 < y.im

    1. Initial program 54.8%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub54.8%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative54.8%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt54.8%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac54.8%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg54.8%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define54.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow2100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 99.2%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/99.2%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified99.2%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 99.2%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/99.2%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified99.2%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    11. Step-by-step derivation
      1. *-commutative99.2%

        \[\leadsto \frac{\color{blue}{\frac{y.re}{y.im} \cdot x.im}}{y.im} \]
      2. *-un-lft-identity99.2%

        \[\leadsto \frac{\frac{y.re}{y.im} \cdot x.im}{\color{blue}{1 \cdot y.im}} \]
      3. times-frac100.0%

        \[\leadsto \color{blue}{\frac{\frac{y.re}{y.im}}{1} \cdot \frac{x.im}{y.im}} \]
    12. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\frac{\frac{y.re}{y.im}}{1} \cdot \frac{x.im}{y.im}} \]
  3. Recombined 9 regimes into one program.
  4. Final simplification98.2%

    \[\leadsto \begin{array}{l} \mathbf{if}\;y.im \leq -3.45 \cdot 10^{+108}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.im \leq -4.8 \cdot 10^{+81}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -5.4 \cdot 10^{+72}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.im \leq -3.6 \cdot 10^{+59}:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -2.8 \cdot 10^{+49}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.2 \cdot 10^{+39}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -3.3 \cdot 10^{+35}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -4.7 \cdot 10^{+27}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -310000:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -300000:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq -520:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -215:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -2.3 \cdot 10^{-5}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -2.25 \cdot 10^{-17}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.15 \cdot 10^{-31}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1 \cdot 10^{-33}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.im \leq -6.2 \cdot 10^{-39}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -6 \cdot 10^{-39}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq -1.3 \cdot 10^{-84}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -1.25 \cdot 10^{-84}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq -1.44 \cdot 10^{-92}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -1.4 \cdot 10^{-92}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.5 \cdot 10^{-95}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.45 \cdot 10^{-95}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -3.6 \cdot 10^{-133}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -3.5 \cdot 10^{-133}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq -1.6 \cdot 10^{-172}:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-172}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -5 \cdot 10^{-210}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 5 \cdot 10^{-282}:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.2 \cdot 10^{-194}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{-194}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.1 \cdot 10^{-143}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 2.2 \cdot 10^{-143}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.1 \cdot 10^{-85}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 4.6 \cdot 10^{-85}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 7.6 \cdot 10^{-52}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 5.2 \cdot 10^{-34}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 105000:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 2 \cdot 10^{+17}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.55 \cdot 10^{+18}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.08 \cdot 10^{+21}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.85 \cdot 10^{+22}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 4.2 \cdot 10^{+24}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.45 \cdot 10^{+30}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{+63}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.7 \cdot 10^{+75}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.35 \cdot 10^{+82}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 8 \cdot 10^{+84}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 6.8 \cdot 10^{+99}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.im \leq 3.1 \cdot 10^{+103}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 6.5 \cdot 10^{+142}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{+147}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.3 \cdot 10^{+174}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{+175}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 4.7 \cdot 10^{+235}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+241}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.9 \cdot 10^{+271}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.im \leq 1.95 \cdot 10^{+271}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 5.8 \cdot 10^{+297}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{else}:\\ \;\;\;\;\frac{y.re}{y.im} \cdot \frac{x.im}{y.im}\\ \end{array} \]
  5. Add Preprocessing

Alternative 15: 71.5% accurate, 0.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ t_1 := \frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ t_2 := y.im \cdot \frac{x.re}{y.re}\\ t_3 := \frac{x.re}{-y.im}\\ t_4 := \frac{y.re \cdot \frac{x.im}{y.im} - x.re}{y.im}\\ t_5 := x.im \cdot \frac{y.re}{y.im}\\ t_6 := \frac{t\_5 - x.re}{y.im}\\ t_7 := \frac{x.im - t\_2}{y.re}\\ t_8 := x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{if}\;y.im \leq -1.05 \cdot 10^{+108}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;y.im \leq -6.2 \cdot 10^{+83}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -4.9 \cdot 10^{+72}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.im \leq -1.1 \cdot 10^{+59}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq -5.8 \cdot 10^{+51}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq -5 \cdot 10^{+39}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -6.1 \cdot 10^{+35}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq -4.9 \cdot 10^{+26}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -210000:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;y.im \leq -680:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -160:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq -8.5 \cdot 10^{-5}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -8 \cdot 10^{-12}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq -4.8 \cdot 10^{-29}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -2.6 \cdot 10^{-35}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.im \leq -6.2 \cdot 10^{-39}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -6 \cdot 10^{-39}:\\ \;\;\;\;t\_8\\ \mathbf{elif}\;y.im \leq -1.3 \cdot 10^{-84}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -1.25 \cdot 10^{-84}:\\ \;\;\;\;t\_8\\ \mathbf{elif}\;y.im \leq -1.44 \cdot 10^{-92}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -1.4 \cdot 10^{-92}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq -1.85 \cdot 10^{-95}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.45 \cdot 10^{-95}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq -3.6 \cdot 10^{-133}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -3.5 \cdot 10^{-133}:\\ \;\;\;\;\frac{t\_5}{y.im}\\ \mathbf{elif}\;y.im \leq -1.6 \cdot 10^{-172}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-172}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq -4 \cdot 10^{-228}:\\ \;\;\;\;\frac{x.im}{y.re} - \frac{t\_2}{y.re}\\ \mathbf{elif}\;y.im \leq 5 \cdot 10^{-284}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq 1.2 \cdot 10^{-194}:\\ \;\;\;\;t\_7\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{-194}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 2.1 \cdot 10^{-143}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 3.1 \cdot 10^{-143}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 1.1 \cdot 10^{-85}:\\ \;\;\;\;t\_7\\ \mathbf{elif}\;y.im \leq 7.2 \cdot 10^{-81}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 2.55 \cdot 10^{-57}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 5.2 \cdot 10^{-34}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 42000000000:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq 1.6 \cdot 10^{+17}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 2.85 \cdot 10^{+18}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 2.3 \cdot 10^{+20}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 3.05 \cdot 10^{+22}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 3.1 \cdot 10^{+25}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 5.5 \cdot 10^{+45}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 3 \cdot 10^{+61}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 9 \cdot 10^{+74}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.35 \cdot 10^{+82}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 1.4 \cdot 10^{+82}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 2.55 \cdot 10^{+103}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.im \leq 5.3 \cdot 10^{+104}:\\ \;\;\;\;t\_7\\ \mathbf{elif}\;y.im \leq 1.8 \cdot 10^{+143}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{+147}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 9 \cdot 10^{+173}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 2.35 \cdot 10^{+181}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 4.7 \cdot 10^{+235}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+241}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.9 \cdot 10^{+271}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.im \leq 1.95 \cdot 10^{+271}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 5.8 \cdot 10^{+297}:\\ \;\;\;\;t\_3\\ \mathbf{else}:\\ \;\;\;\;\frac{y.re}{y.im} \cdot \frac{x.im}{y.im}\\ \end{array} \end{array} \]
(FPCore (x.re x.im y.re y.im)
 :precision binary64
 (let* ((t_0 (/ (- x.im (/ (* y.im x.re) y.re)) y.re))
        (t_1 (/ (- x.im (* x.re (/ y.im y.re))) y.re))
        (t_2 (* y.im (/ x.re y.re)))
        (t_3 (/ x.re (- y.im)))
        (t_4 (/ (- (* y.re (/ x.im y.im)) x.re) y.im))
        (t_5 (* x.im (/ y.re y.im)))
        (t_6 (/ (- t_5 x.re) y.im))
        (t_7 (/ (- x.im t_2) y.re))
        (t_8 (* x.im (/ (/ y.re y.im) y.im))))
   (if (<= y.im -1.05e+108)
     t_4
     (if (<= y.im -6.2e+83)
       t_1
       (if (<= y.im -4.9e+72)
         t_6
         (if (<= y.im -1.1e+59)
           t_0
           (if (<= y.im -5.8e+51)
             t_3
             (if (<= y.im -5e+39)
               (/ x.im y.re)
               (if (<= y.im -6.1e+35)
                 t_3
                 (if (<= y.im -4.9e+26)
                   t_1
                   (if (<= y.im -210000.0)
                     t_4
                     (if (<= y.im -680.0)
                       (/ x.im y.re)
                       (if (<= y.im -160.0)
                         t_3
                         (if (<= y.im -8.5e-5)
                           t_1
                           (if (<= y.im -8e-12)
                             t_3
                             (if (<= y.im -4.8e-29)
                               (/ x.im y.re)
                               (if (<= y.im -2.6e-35)
                                 t_6
                                 (if (<= y.im -6.2e-39)
                                   t_1
                                   (if (<= y.im -6e-39)
                                     t_8
                                     (if (<= y.im -1.3e-84)
                                       t_1
                                       (if (<= y.im -1.25e-84)
                                         t_8
                                         (if (<= y.im -1.44e-92)
                                           t_1
                                           (if (<= y.im -1.4e-92)
                                             t_3
                                             (if (<= y.im -1.85e-95)
                                               (/ x.im y.re)
                                               (if (<= y.im -1.45e-95)
                                                 t_3
                                                 (if (<= y.im -3.6e-133)
                                                   (/ x.im y.re)
                                                   (if (<= y.im -3.5e-133)
                                                     (/ t_5 y.im)
                                                     (if (<= y.im -1.6e-172)
                                                       t_0
                                                       (if (<= y.im -1.55e-172)
                                                         t_3
                                                         (if (<= y.im -4e-228)
                                                           (-
                                                            (/ x.im y.re)
                                                            (/ t_2 y.re))
                                                           (if (<= y.im 5e-284)
                                                             t_0
                                                             (if (<=
                                                                  y.im
                                                                  1.2e-194)
                                                               t_7
                                                               (if (<=
                                                                    y.im
                                                                    1.25e-194)
                                                                 t_3
                                                                 (if (<=
                                                                      y.im
                                                                      2.1e-143)
                                                                   t_1
                                                                   (if (<=
                                                                        y.im
                                                                        3.1e-143)
                                                                     t_3
                                                                     (if (<=
                                                                          y.im
                                                                          1.1e-85)
                                                                       t_7
                                                                       (if (<=
                                                                            y.im
                                                                            7.2e-81)
                                                                         t_3
                                                                         (if (<=
                                                                              y.im
                                                                              2.55e-57)
                                                                           (/
                                                                            x.im
                                                                            y.re)
                                                                           (if (<=
                                                                                y.im
                                                                                5.2e-34)
                                                                             t_3
                                                                             (if (<=
                                                                                  y.im
                                                                                  42000000000.0)
                                                                               t_0
                                                                               (if (<=
                                                                                    y.im
                                                                                    1.6e+17)
                                                                                 t_3
                                                                                 (if (<=
                                                                                      y.im
                                                                                      2.85e+18)
                                                                                   t_1
                                                                                   (if (<=
                                                                                        y.im
                                                                                        2.3e+20)
                                                                                     t_3
                                                                                     (if (<=
                                                                                          y.im
                                                                                          3.05e+22)
                                                                                       (/
                                                                                        x.im
                                                                                        y.re)
                                                                                       (if (<=
                                                                                            y.im
                                                                                            3.1e+25)
                                                                                         t_3
                                                                                         (if (<=
                                                                                              y.im
                                                                                              5.5e+45)
                                                                                           (/
                                                                                            x.im
                                                                                            y.re)
                                                                                           (if (<=
                                                                                                y.im
                                                                                                3e+61)
                                                                                             t_3
                                                                                             (if (<=
                                                                                                  y.im
                                                                                                  9e+74)
                                                                                               t_1
                                                                                               (if (<=
                                                                                                    y.im
                                                                                                    1.35e+82)
                                                                                                 t_3
                                                                                                 (if (<=
                                                                                                      y.im
                                                                                                      1.4e+82)
                                                                                                   (/
                                                                                                    x.im
                                                                                                    y.re)
                                                                                                   (if (<=
                                                                                                        y.im
                                                                                                        2.55e+103)
                                                                                                     t_6
                                                                                                     (if (<=
                                                                                                          y.im
                                                                                                          5.3e+104)
                                                                                                       t_7
                                                                                                       (if (<=
                                                                                                            y.im
                                                                                                            1.8e+143)
                                                                                                         t_6
                                                                                                         (if (<=
                                                                                                              y.im
                                                                                                              6e+147)
                                                                                                           (/
                                                                                                            x.im
                                                                                                            y.re)
                                                                                                           (if (<=
                                                                                                                y.im
                                                                                                                9e+173)
                                                                                                             t_3
                                                                                                             (if (<=
                                                                                                                  y.im
                                                                                                                  2.35e+181)
                                                                                                               t_1
                                                                                                               (if (<=
                                                                                                                    y.im
                                                                                                                    4.7e+235)
                                                                                                                 t_3
                                                                                                                 (if (<=
                                                                                                                      y.im
                                                                                                                      7.8e+241)
                                                                                                                   t_1
                                                                                                                   (if (<=
                                                                                                                        y.im
                                                                                                                        1.9e+271)
                                                                                                                     t_6
                                                                                                                     (if (<=
                                                                                                                          y.im
                                                                                                                          1.95e+271)
                                                                                                                       t_1
                                                                                                                       (if (<=
                                                                                                                            y.im
                                                                                                                            5.8e+297)
                                                                                                                         t_3
                                                                                                                         (*
                                                                                                                          (/
                                                                                                                           y.re
                                                                                                                           y.im)
                                                                                                                          (/
                                                                                                                           x.im
                                                                                                                           y.im)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double t_0 = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re;
	double t_1 = (x_46_im - (x_46_re * (y_46_im / y_46_re))) / y_46_re;
	double t_2 = y_46_im * (x_46_re / y_46_re);
	double t_3 = x_46_re / -y_46_im;
	double t_4 = ((y_46_re * (x_46_im / y_46_im)) - x_46_re) / y_46_im;
	double t_5 = x_46_im * (y_46_re / y_46_im);
	double t_6 = (t_5 - x_46_re) / y_46_im;
	double t_7 = (x_46_im - t_2) / y_46_re;
	double t_8 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	double tmp;
	if (y_46_im <= -1.05e+108) {
		tmp = t_4;
	} else if (y_46_im <= -6.2e+83) {
		tmp = t_1;
	} else if (y_46_im <= -4.9e+72) {
		tmp = t_6;
	} else if (y_46_im <= -1.1e+59) {
		tmp = t_0;
	} else if (y_46_im <= -5.8e+51) {
		tmp = t_3;
	} else if (y_46_im <= -5e+39) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -6.1e+35) {
		tmp = t_3;
	} else if (y_46_im <= -4.9e+26) {
		tmp = t_1;
	} else if (y_46_im <= -210000.0) {
		tmp = t_4;
	} else if (y_46_im <= -680.0) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -160.0) {
		tmp = t_3;
	} else if (y_46_im <= -8.5e-5) {
		tmp = t_1;
	} else if (y_46_im <= -8e-12) {
		tmp = t_3;
	} else if (y_46_im <= -4.8e-29) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -2.6e-35) {
		tmp = t_6;
	} else if (y_46_im <= -6.2e-39) {
		tmp = t_1;
	} else if (y_46_im <= -6e-39) {
		tmp = t_8;
	} else if (y_46_im <= -1.3e-84) {
		tmp = t_1;
	} else if (y_46_im <= -1.25e-84) {
		tmp = t_8;
	} else if (y_46_im <= -1.44e-92) {
		tmp = t_1;
	} else if (y_46_im <= -1.4e-92) {
		tmp = t_3;
	} else if (y_46_im <= -1.85e-95) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.45e-95) {
		tmp = t_3;
	} else if (y_46_im <= -3.6e-133) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -3.5e-133) {
		tmp = t_5 / y_46_im;
	} else if (y_46_im <= -1.6e-172) {
		tmp = t_0;
	} else if (y_46_im <= -1.55e-172) {
		tmp = t_3;
	} else if (y_46_im <= -4e-228) {
		tmp = (x_46_im / y_46_re) - (t_2 / y_46_re);
	} else if (y_46_im <= 5e-284) {
		tmp = t_0;
	} else if (y_46_im <= 1.2e-194) {
		tmp = t_7;
	} else if (y_46_im <= 1.25e-194) {
		tmp = t_3;
	} else if (y_46_im <= 2.1e-143) {
		tmp = t_1;
	} else if (y_46_im <= 3.1e-143) {
		tmp = t_3;
	} else if (y_46_im <= 1.1e-85) {
		tmp = t_7;
	} else if (y_46_im <= 7.2e-81) {
		tmp = t_3;
	} else if (y_46_im <= 2.55e-57) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 5.2e-34) {
		tmp = t_3;
	} else if (y_46_im <= 42000000000.0) {
		tmp = t_0;
	} else if (y_46_im <= 1.6e+17) {
		tmp = t_3;
	} else if (y_46_im <= 2.85e+18) {
		tmp = t_1;
	} else if (y_46_im <= 2.3e+20) {
		tmp = t_3;
	} else if (y_46_im <= 3.05e+22) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 3.1e+25) {
		tmp = t_3;
	} else if (y_46_im <= 5.5e+45) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 3e+61) {
		tmp = t_3;
	} else if (y_46_im <= 9e+74) {
		tmp = t_1;
	} else if (y_46_im <= 1.35e+82) {
		tmp = t_3;
	} else if (y_46_im <= 1.4e+82) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 2.55e+103) {
		tmp = t_6;
	} else if (y_46_im <= 5.3e+104) {
		tmp = t_7;
	} else if (y_46_im <= 1.8e+143) {
		tmp = t_6;
	} else if (y_46_im <= 6e+147) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 9e+173) {
		tmp = t_3;
	} else if (y_46_im <= 2.35e+181) {
		tmp = t_1;
	} else if (y_46_im <= 4.7e+235) {
		tmp = t_3;
	} else if (y_46_im <= 7.8e+241) {
		tmp = t_1;
	} else if (y_46_im <= 1.9e+271) {
		tmp = t_6;
	} else if (y_46_im <= 1.95e+271) {
		tmp = t_1;
	} else if (y_46_im <= 5.8e+297) {
		tmp = t_3;
	} else {
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im);
	}
	return tmp;
}
real(8) function code(x_46re, x_46im, y_46re, y_46im)
    real(8), intent (in) :: x_46re
    real(8), intent (in) :: x_46im
    real(8), intent (in) :: y_46re
    real(8), intent (in) :: y_46im
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: t_2
    real(8) :: t_3
    real(8) :: t_4
    real(8) :: t_5
    real(8) :: t_6
    real(8) :: t_7
    real(8) :: t_8
    real(8) :: tmp
    t_0 = (x_46im - ((y_46im * x_46re) / y_46re)) / y_46re
    t_1 = (x_46im - (x_46re * (y_46im / y_46re))) / y_46re
    t_2 = y_46im * (x_46re / y_46re)
    t_3 = x_46re / -y_46im
    t_4 = ((y_46re * (x_46im / y_46im)) - x_46re) / y_46im
    t_5 = x_46im * (y_46re / y_46im)
    t_6 = (t_5 - x_46re) / y_46im
    t_7 = (x_46im - t_2) / y_46re
    t_8 = x_46im * ((y_46re / y_46im) / y_46im)
    if (y_46im <= (-1.05d+108)) then
        tmp = t_4
    else if (y_46im <= (-6.2d+83)) then
        tmp = t_1
    else if (y_46im <= (-4.9d+72)) then
        tmp = t_6
    else if (y_46im <= (-1.1d+59)) then
        tmp = t_0
    else if (y_46im <= (-5.8d+51)) then
        tmp = t_3
    else if (y_46im <= (-5d+39)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-6.1d+35)) then
        tmp = t_3
    else if (y_46im <= (-4.9d+26)) then
        tmp = t_1
    else if (y_46im <= (-210000.0d0)) then
        tmp = t_4
    else if (y_46im <= (-680.0d0)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-160.0d0)) then
        tmp = t_3
    else if (y_46im <= (-8.5d-5)) then
        tmp = t_1
    else if (y_46im <= (-8d-12)) then
        tmp = t_3
    else if (y_46im <= (-4.8d-29)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-2.6d-35)) then
        tmp = t_6
    else if (y_46im <= (-6.2d-39)) then
        tmp = t_1
    else if (y_46im <= (-6d-39)) then
        tmp = t_8
    else if (y_46im <= (-1.3d-84)) then
        tmp = t_1
    else if (y_46im <= (-1.25d-84)) then
        tmp = t_8
    else if (y_46im <= (-1.44d-92)) then
        tmp = t_1
    else if (y_46im <= (-1.4d-92)) then
        tmp = t_3
    else if (y_46im <= (-1.85d-95)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1.45d-95)) then
        tmp = t_3
    else if (y_46im <= (-3.6d-133)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-3.5d-133)) then
        tmp = t_5 / y_46im
    else if (y_46im <= (-1.6d-172)) then
        tmp = t_0
    else if (y_46im <= (-1.55d-172)) then
        tmp = t_3
    else if (y_46im <= (-4d-228)) then
        tmp = (x_46im / y_46re) - (t_2 / y_46re)
    else if (y_46im <= 5d-284) then
        tmp = t_0
    else if (y_46im <= 1.2d-194) then
        tmp = t_7
    else if (y_46im <= 1.25d-194) then
        tmp = t_3
    else if (y_46im <= 2.1d-143) then
        tmp = t_1
    else if (y_46im <= 3.1d-143) then
        tmp = t_3
    else if (y_46im <= 1.1d-85) then
        tmp = t_7
    else if (y_46im <= 7.2d-81) then
        tmp = t_3
    else if (y_46im <= 2.55d-57) then
        tmp = x_46im / y_46re
    else if (y_46im <= 5.2d-34) then
        tmp = t_3
    else if (y_46im <= 42000000000.0d0) then
        tmp = t_0
    else if (y_46im <= 1.6d+17) then
        tmp = t_3
    else if (y_46im <= 2.85d+18) then
        tmp = t_1
    else if (y_46im <= 2.3d+20) then
        tmp = t_3
    else if (y_46im <= 3.05d+22) then
        tmp = x_46im / y_46re
    else if (y_46im <= 3.1d+25) then
        tmp = t_3
    else if (y_46im <= 5.5d+45) then
        tmp = x_46im / y_46re
    else if (y_46im <= 3d+61) then
        tmp = t_3
    else if (y_46im <= 9d+74) then
        tmp = t_1
    else if (y_46im <= 1.35d+82) then
        tmp = t_3
    else if (y_46im <= 1.4d+82) then
        tmp = x_46im / y_46re
    else if (y_46im <= 2.55d+103) then
        tmp = t_6
    else if (y_46im <= 5.3d+104) then
        tmp = t_7
    else if (y_46im <= 1.8d+143) then
        tmp = t_6
    else if (y_46im <= 6d+147) then
        tmp = x_46im / y_46re
    else if (y_46im <= 9d+173) then
        tmp = t_3
    else if (y_46im <= 2.35d+181) then
        tmp = t_1
    else if (y_46im <= 4.7d+235) then
        tmp = t_3
    else if (y_46im <= 7.8d+241) then
        tmp = t_1
    else if (y_46im <= 1.9d+271) then
        tmp = t_6
    else if (y_46im <= 1.95d+271) then
        tmp = t_1
    else if (y_46im <= 5.8d+297) then
        tmp = t_3
    else
        tmp = (y_46re / y_46im) * (x_46im / y_46im)
    end if
    code = tmp
end function
public static double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double t_0 = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re;
	double t_1 = (x_46_im - (x_46_re * (y_46_im / y_46_re))) / y_46_re;
	double t_2 = y_46_im * (x_46_re / y_46_re);
	double t_3 = x_46_re / -y_46_im;
	double t_4 = ((y_46_re * (x_46_im / y_46_im)) - x_46_re) / y_46_im;
	double t_5 = x_46_im * (y_46_re / y_46_im);
	double t_6 = (t_5 - x_46_re) / y_46_im;
	double t_7 = (x_46_im - t_2) / y_46_re;
	double t_8 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	double tmp;
	if (y_46_im <= -1.05e+108) {
		tmp = t_4;
	} else if (y_46_im <= -6.2e+83) {
		tmp = t_1;
	} else if (y_46_im <= -4.9e+72) {
		tmp = t_6;
	} else if (y_46_im <= -1.1e+59) {
		tmp = t_0;
	} else if (y_46_im <= -5.8e+51) {
		tmp = t_3;
	} else if (y_46_im <= -5e+39) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -6.1e+35) {
		tmp = t_3;
	} else if (y_46_im <= -4.9e+26) {
		tmp = t_1;
	} else if (y_46_im <= -210000.0) {
		tmp = t_4;
	} else if (y_46_im <= -680.0) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -160.0) {
		tmp = t_3;
	} else if (y_46_im <= -8.5e-5) {
		tmp = t_1;
	} else if (y_46_im <= -8e-12) {
		tmp = t_3;
	} else if (y_46_im <= -4.8e-29) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -2.6e-35) {
		tmp = t_6;
	} else if (y_46_im <= -6.2e-39) {
		tmp = t_1;
	} else if (y_46_im <= -6e-39) {
		tmp = t_8;
	} else if (y_46_im <= -1.3e-84) {
		tmp = t_1;
	} else if (y_46_im <= -1.25e-84) {
		tmp = t_8;
	} else if (y_46_im <= -1.44e-92) {
		tmp = t_1;
	} else if (y_46_im <= -1.4e-92) {
		tmp = t_3;
	} else if (y_46_im <= -1.85e-95) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.45e-95) {
		tmp = t_3;
	} else if (y_46_im <= -3.6e-133) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -3.5e-133) {
		tmp = t_5 / y_46_im;
	} else if (y_46_im <= -1.6e-172) {
		tmp = t_0;
	} else if (y_46_im <= -1.55e-172) {
		tmp = t_3;
	} else if (y_46_im <= -4e-228) {
		tmp = (x_46_im / y_46_re) - (t_2 / y_46_re);
	} else if (y_46_im <= 5e-284) {
		tmp = t_0;
	} else if (y_46_im <= 1.2e-194) {
		tmp = t_7;
	} else if (y_46_im <= 1.25e-194) {
		tmp = t_3;
	} else if (y_46_im <= 2.1e-143) {
		tmp = t_1;
	} else if (y_46_im <= 3.1e-143) {
		tmp = t_3;
	} else if (y_46_im <= 1.1e-85) {
		tmp = t_7;
	} else if (y_46_im <= 7.2e-81) {
		tmp = t_3;
	} else if (y_46_im <= 2.55e-57) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 5.2e-34) {
		tmp = t_3;
	} else if (y_46_im <= 42000000000.0) {
		tmp = t_0;
	} else if (y_46_im <= 1.6e+17) {
		tmp = t_3;
	} else if (y_46_im <= 2.85e+18) {
		tmp = t_1;
	} else if (y_46_im <= 2.3e+20) {
		tmp = t_3;
	} else if (y_46_im <= 3.05e+22) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 3.1e+25) {
		tmp = t_3;
	} else if (y_46_im <= 5.5e+45) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 3e+61) {
		tmp = t_3;
	} else if (y_46_im <= 9e+74) {
		tmp = t_1;
	} else if (y_46_im <= 1.35e+82) {
		tmp = t_3;
	} else if (y_46_im <= 1.4e+82) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 2.55e+103) {
		tmp = t_6;
	} else if (y_46_im <= 5.3e+104) {
		tmp = t_7;
	} else if (y_46_im <= 1.8e+143) {
		tmp = t_6;
	} else if (y_46_im <= 6e+147) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 9e+173) {
		tmp = t_3;
	} else if (y_46_im <= 2.35e+181) {
		tmp = t_1;
	} else if (y_46_im <= 4.7e+235) {
		tmp = t_3;
	} else if (y_46_im <= 7.8e+241) {
		tmp = t_1;
	} else if (y_46_im <= 1.9e+271) {
		tmp = t_6;
	} else if (y_46_im <= 1.95e+271) {
		tmp = t_1;
	} else if (y_46_im <= 5.8e+297) {
		tmp = t_3;
	} else {
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im);
	}
	return tmp;
}
def code(x_46_re, x_46_im, y_46_re, y_46_im):
	t_0 = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re
	t_1 = (x_46_im - (x_46_re * (y_46_im / y_46_re))) / y_46_re
	t_2 = y_46_im * (x_46_re / y_46_re)
	t_3 = x_46_re / -y_46_im
	t_4 = ((y_46_re * (x_46_im / y_46_im)) - x_46_re) / y_46_im
	t_5 = x_46_im * (y_46_re / y_46_im)
	t_6 = (t_5 - x_46_re) / y_46_im
	t_7 = (x_46_im - t_2) / y_46_re
	t_8 = x_46_im * ((y_46_re / y_46_im) / y_46_im)
	tmp = 0
	if y_46_im <= -1.05e+108:
		tmp = t_4
	elif y_46_im <= -6.2e+83:
		tmp = t_1
	elif y_46_im <= -4.9e+72:
		tmp = t_6
	elif y_46_im <= -1.1e+59:
		tmp = t_0
	elif y_46_im <= -5.8e+51:
		tmp = t_3
	elif y_46_im <= -5e+39:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -6.1e+35:
		tmp = t_3
	elif y_46_im <= -4.9e+26:
		tmp = t_1
	elif y_46_im <= -210000.0:
		tmp = t_4
	elif y_46_im <= -680.0:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -160.0:
		tmp = t_3
	elif y_46_im <= -8.5e-5:
		tmp = t_1
	elif y_46_im <= -8e-12:
		tmp = t_3
	elif y_46_im <= -4.8e-29:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -2.6e-35:
		tmp = t_6
	elif y_46_im <= -6.2e-39:
		tmp = t_1
	elif y_46_im <= -6e-39:
		tmp = t_8
	elif y_46_im <= -1.3e-84:
		tmp = t_1
	elif y_46_im <= -1.25e-84:
		tmp = t_8
	elif y_46_im <= -1.44e-92:
		tmp = t_1
	elif y_46_im <= -1.4e-92:
		tmp = t_3
	elif y_46_im <= -1.85e-95:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1.45e-95:
		tmp = t_3
	elif y_46_im <= -3.6e-133:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -3.5e-133:
		tmp = t_5 / y_46_im
	elif y_46_im <= -1.6e-172:
		tmp = t_0
	elif y_46_im <= -1.55e-172:
		tmp = t_3
	elif y_46_im <= -4e-228:
		tmp = (x_46_im / y_46_re) - (t_2 / y_46_re)
	elif y_46_im <= 5e-284:
		tmp = t_0
	elif y_46_im <= 1.2e-194:
		tmp = t_7
	elif y_46_im <= 1.25e-194:
		tmp = t_3
	elif y_46_im <= 2.1e-143:
		tmp = t_1
	elif y_46_im <= 3.1e-143:
		tmp = t_3
	elif y_46_im <= 1.1e-85:
		tmp = t_7
	elif y_46_im <= 7.2e-81:
		tmp = t_3
	elif y_46_im <= 2.55e-57:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 5.2e-34:
		tmp = t_3
	elif y_46_im <= 42000000000.0:
		tmp = t_0
	elif y_46_im <= 1.6e+17:
		tmp = t_3
	elif y_46_im <= 2.85e+18:
		tmp = t_1
	elif y_46_im <= 2.3e+20:
		tmp = t_3
	elif y_46_im <= 3.05e+22:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 3.1e+25:
		tmp = t_3
	elif y_46_im <= 5.5e+45:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 3e+61:
		tmp = t_3
	elif y_46_im <= 9e+74:
		tmp = t_1
	elif y_46_im <= 1.35e+82:
		tmp = t_3
	elif y_46_im <= 1.4e+82:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 2.55e+103:
		tmp = t_6
	elif y_46_im <= 5.3e+104:
		tmp = t_7
	elif y_46_im <= 1.8e+143:
		tmp = t_6
	elif y_46_im <= 6e+147:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 9e+173:
		tmp = t_3
	elif y_46_im <= 2.35e+181:
		tmp = t_1
	elif y_46_im <= 4.7e+235:
		tmp = t_3
	elif y_46_im <= 7.8e+241:
		tmp = t_1
	elif y_46_im <= 1.9e+271:
		tmp = t_6
	elif y_46_im <= 1.95e+271:
		tmp = t_1
	elif y_46_im <= 5.8e+297:
		tmp = t_3
	else:
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im)
	return tmp
function code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = Float64(Float64(x_46_im - Float64(Float64(y_46_im * x_46_re) / y_46_re)) / y_46_re)
	t_1 = Float64(Float64(x_46_im - Float64(x_46_re * Float64(y_46_im / y_46_re))) / y_46_re)
	t_2 = Float64(y_46_im * Float64(x_46_re / y_46_re))
	t_3 = Float64(x_46_re / Float64(-y_46_im))
	t_4 = Float64(Float64(Float64(y_46_re * Float64(x_46_im / y_46_im)) - x_46_re) / y_46_im)
	t_5 = Float64(x_46_im * Float64(y_46_re / y_46_im))
	t_6 = Float64(Float64(t_5 - x_46_re) / y_46_im)
	t_7 = Float64(Float64(x_46_im - t_2) / y_46_re)
	t_8 = Float64(x_46_im * Float64(Float64(y_46_re / y_46_im) / y_46_im))
	tmp = 0.0
	if (y_46_im <= -1.05e+108)
		tmp = t_4;
	elseif (y_46_im <= -6.2e+83)
		tmp = t_1;
	elseif (y_46_im <= -4.9e+72)
		tmp = t_6;
	elseif (y_46_im <= -1.1e+59)
		tmp = t_0;
	elseif (y_46_im <= -5.8e+51)
		tmp = t_3;
	elseif (y_46_im <= -5e+39)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -6.1e+35)
		tmp = t_3;
	elseif (y_46_im <= -4.9e+26)
		tmp = t_1;
	elseif (y_46_im <= -210000.0)
		tmp = t_4;
	elseif (y_46_im <= -680.0)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -160.0)
		tmp = t_3;
	elseif (y_46_im <= -8.5e-5)
		tmp = t_1;
	elseif (y_46_im <= -8e-12)
		tmp = t_3;
	elseif (y_46_im <= -4.8e-29)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -2.6e-35)
		tmp = t_6;
	elseif (y_46_im <= -6.2e-39)
		tmp = t_1;
	elseif (y_46_im <= -6e-39)
		tmp = t_8;
	elseif (y_46_im <= -1.3e-84)
		tmp = t_1;
	elseif (y_46_im <= -1.25e-84)
		tmp = t_8;
	elseif (y_46_im <= -1.44e-92)
		tmp = t_1;
	elseif (y_46_im <= -1.4e-92)
		tmp = t_3;
	elseif (y_46_im <= -1.85e-95)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1.45e-95)
		tmp = t_3;
	elseif (y_46_im <= -3.6e-133)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -3.5e-133)
		tmp = Float64(t_5 / y_46_im);
	elseif (y_46_im <= -1.6e-172)
		tmp = t_0;
	elseif (y_46_im <= -1.55e-172)
		tmp = t_3;
	elseif (y_46_im <= -4e-228)
		tmp = Float64(Float64(x_46_im / y_46_re) - Float64(t_2 / y_46_re));
	elseif (y_46_im <= 5e-284)
		tmp = t_0;
	elseif (y_46_im <= 1.2e-194)
		tmp = t_7;
	elseif (y_46_im <= 1.25e-194)
		tmp = t_3;
	elseif (y_46_im <= 2.1e-143)
		tmp = t_1;
	elseif (y_46_im <= 3.1e-143)
		tmp = t_3;
	elseif (y_46_im <= 1.1e-85)
		tmp = t_7;
	elseif (y_46_im <= 7.2e-81)
		tmp = t_3;
	elseif (y_46_im <= 2.55e-57)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 5.2e-34)
		tmp = t_3;
	elseif (y_46_im <= 42000000000.0)
		tmp = t_0;
	elseif (y_46_im <= 1.6e+17)
		tmp = t_3;
	elseif (y_46_im <= 2.85e+18)
		tmp = t_1;
	elseif (y_46_im <= 2.3e+20)
		tmp = t_3;
	elseif (y_46_im <= 3.05e+22)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 3.1e+25)
		tmp = t_3;
	elseif (y_46_im <= 5.5e+45)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 3e+61)
		tmp = t_3;
	elseif (y_46_im <= 9e+74)
		tmp = t_1;
	elseif (y_46_im <= 1.35e+82)
		tmp = t_3;
	elseif (y_46_im <= 1.4e+82)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 2.55e+103)
		tmp = t_6;
	elseif (y_46_im <= 5.3e+104)
		tmp = t_7;
	elseif (y_46_im <= 1.8e+143)
		tmp = t_6;
	elseif (y_46_im <= 6e+147)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 9e+173)
		tmp = t_3;
	elseif (y_46_im <= 2.35e+181)
		tmp = t_1;
	elseif (y_46_im <= 4.7e+235)
		tmp = t_3;
	elseif (y_46_im <= 7.8e+241)
		tmp = t_1;
	elseif (y_46_im <= 1.9e+271)
		tmp = t_6;
	elseif (y_46_im <= 1.95e+271)
		tmp = t_1;
	elseif (y_46_im <= 5.8e+297)
		tmp = t_3;
	else
		tmp = Float64(Float64(y_46_re / y_46_im) * Float64(x_46_im / y_46_im));
	end
	return tmp
end
function tmp_2 = code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re;
	t_1 = (x_46_im - (x_46_re * (y_46_im / y_46_re))) / y_46_re;
	t_2 = y_46_im * (x_46_re / y_46_re);
	t_3 = x_46_re / -y_46_im;
	t_4 = ((y_46_re * (x_46_im / y_46_im)) - x_46_re) / y_46_im;
	t_5 = x_46_im * (y_46_re / y_46_im);
	t_6 = (t_5 - x_46_re) / y_46_im;
	t_7 = (x_46_im - t_2) / y_46_re;
	t_8 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	tmp = 0.0;
	if (y_46_im <= -1.05e+108)
		tmp = t_4;
	elseif (y_46_im <= -6.2e+83)
		tmp = t_1;
	elseif (y_46_im <= -4.9e+72)
		tmp = t_6;
	elseif (y_46_im <= -1.1e+59)
		tmp = t_0;
	elseif (y_46_im <= -5.8e+51)
		tmp = t_3;
	elseif (y_46_im <= -5e+39)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -6.1e+35)
		tmp = t_3;
	elseif (y_46_im <= -4.9e+26)
		tmp = t_1;
	elseif (y_46_im <= -210000.0)
		tmp = t_4;
	elseif (y_46_im <= -680.0)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -160.0)
		tmp = t_3;
	elseif (y_46_im <= -8.5e-5)
		tmp = t_1;
	elseif (y_46_im <= -8e-12)
		tmp = t_3;
	elseif (y_46_im <= -4.8e-29)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -2.6e-35)
		tmp = t_6;
	elseif (y_46_im <= -6.2e-39)
		tmp = t_1;
	elseif (y_46_im <= -6e-39)
		tmp = t_8;
	elseif (y_46_im <= -1.3e-84)
		tmp = t_1;
	elseif (y_46_im <= -1.25e-84)
		tmp = t_8;
	elseif (y_46_im <= -1.44e-92)
		tmp = t_1;
	elseif (y_46_im <= -1.4e-92)
		tmp = t_3;
	elseif (y_46_im <= -1.85e-95)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1.45e-95)
		tmp = t_3;
	elseif (y_46_im <= -3.6e-133)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -3.5e-133)
		tmp = t_5 / y_46_im;
	elseif (y_46_im <= -1.6e-172)
		tmp = t_0;
	elseif (y_46_im <= -1.55e-172)
		tmp = t_3;
	elseif (y_46_im <= -4e-228)
		tmp = (x_46_im / y_46_re) - (t_2 / y_46_re);
	elseif (y_46_im <= 5e-284)
		tmp = t_0;
	elseif (y_46_im <= 1.2e-194)
		tmp = t_7;
	elseif (y_46_im <= 1.25e-194)
		tmp = t_3;
	elseif (y_46_im <= 2.1e-143)
		tmp = t_1;
	elseif (y_46_im <= 3.1e-143)
		tmp = t_3;
	elseif (y_46_im <= 1.1e-85)
		tmp = t_7;
	elseif (y_46_im <= 7.2e-81)
		tmp = t_3;
	elseif (y_46_im <= 2.55e-57)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 5.2e-34)
		tmp = t_3;
	elseif (y_46_im <= 42000000000.0)
		tmp = t_0;
	elseif (y_46_im <= 1.6e+17)
		tmp = t_3;
	elseif (y_46_im <= 2.85e+18)
		tmp = t_1;
	elseif (y_46_im <= 2.3e+20)
		tmp = t_3;
	elseif (y_46_im <= 3.05e+22)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 3.1e+25)
		tmp = t_3;
	elseif (y_46_im <= 5.5e+45)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 3e+61)
		tmp = t_3;
	elseif (y_46_im <= 9e+74)
		tmp = t_1;
	elseif (y_46_im <= 1.35e+82)
		tmp = t_3;
	elseif (y_46_im <= 1.4e+82)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 2.55e+103)
		tmp = t_6;
	elseif (y_46_im <= 5.3e+104)
		tmp = t_7;
	elseif (y_46_im <= 1.8e+143)
		tmp = t_6;
	elseif (y_46_im <= 6e+147)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 9e+173)
		tmp = t_3;
	elseif (y_46_im <= 2.35e+181)
		tmp = t_1;
	elseif (y_46_im <= 4.7e+235)
		tmp = t_3;
	elseif (y_46_im <= 7.8e+241)
		tmp = t_1;
	elseif (y_46_im <= 1.9e+271)
		tmp = t_6;
	elseif (y_46_im <= 1.95e+271)
		tmp = t_1;
	elseif (y_46_im <= 5.8e+297)
		tmp = t_3;
	else
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im);
	end
	tmp_2 = tmp;
end
code[x$46$re_, x$46$im_, y$46$re_, y$46$im_] := Block[{t$95$0 = N[(N[(x$46$im - N[(N[(y$46$im * x$46$re), $MachinePrecision] / y$46$re), $MachinePrecision]), $MachinePrecision] / y$46$re), $MachinePrecision]}, Block[{t$95$1 = N[(N[(x$46$im - N[(x$46$re * N[(y$46$im / y$46$re), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y$46$re), $MachinePrecision]}, Block[{t$95$2 = N[(y$46$im * N[(x$46$re / y$46$re), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(x$46$re / (-y$46$im)), $MachinePrecision]}, Block[{t$95$4 = N[(N[(N[(y$46$re * N[(x$46$im / y$46$im), $MachinePrecision]), $MachinePrecision] - x$46$re), $MachinePrecision] / y$46$im), $MachinePrecision]}, Block[{t$95$5 = N[(x$46$im * N[(y$46$re / y$46$im), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$6 = N[(N[(t$95$5 - x$46$re), $MachinePrecision] / y$46$im), $MachinePrecision]}, Block[{t$95$7 = N[(N[(x$46$im - t$95$2), $MachinePrecision] / y$46$re), $MachinePrecision]}, Block[{t$95$8 = N[(x$46$im * N[(N[(y$46$re / y$46$im), $MachinePrecision] / y$46$im), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y$46$im, -1.05e+108], t$95$4, If[LessEqual[y$46$im, -6.2e+83], t$95$1, If[LessEqual[y$46$im, -4.9e+72], t$95$6, If[LessEqual[y$46$im, -1.1e+59], t$95$0, If[LessEqual[y$46$im, -5.8e+51], t$95$3, If[LessEqual[y$46$im, -5e+39], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -6.1e+35], t$95$3, If[LessEqual[y$46$im, -4.9e+26], t$95$1, If[LessEqual[y$46$im, -210000.0], t$95$4, If[LessEqual[y$46$im, -680.0], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -160.0], t$95$3, If[LessEqual[y$46$im, -8.5e-5], t$95$1, If[LessEqual[y$46$im, -8e-12], t$95$3, If[LessEqual[y$46$im, -4.8e-29], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -2.6e-35], t$95$6, If[LessEqual[y$46$im, -6.2e-39], t$95$1, If[LessEqual[y$46$im, -6e-39], t$95$8, If[LessEqual[y$46$im, -1.3e-84], t$95$1, If[LessEqual[y$46$im, -1.25e-84], t$95$8, If[LessEqual[y$46$im, -1.44e-92], t$95$1, If[LessEqual[y$46$im, -1.4e-92], t$95$3, If[LessEqual[y$46$im, -1.85e-95], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1.45e-95], t$95$3, If[LessEqual[y$46$im, -3.6e-133], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -3.5e-133], N[(t$95$5 / y$46$im), $MachinePrecision], If[LessEqual[y$46$im, -1.6e-172], t$95$0, If[LessEqual[y$46$im, -1.55e-172], t$95$3, If[LessEqual[y$46$im, -4e-228], N[(N[(x$46$im / y$46$re), $MachinePrecision] - N[(t$95$2 / y$46$re), $MachinePrecision]), $MachinePrecision], If[LessEqual[y$46$im, 5e-284], t$95$0, If[LessEqual[y$46$im, 1.2e-194], t$95$7, If[LessEqual[y$46$im, 1.25e-194], t$95$3, If[LessEqual[y$46$im, 2.1e-143], t$95$1, If[LessEqual[y$46$im, 3.1e-143], t$95$3, If[LessEqual[y$46$im, 1.1e-85], t$95$7, If[LessEqual[y$46$im, 7.2e-81], t$95$3, If[LessEqual[y$46$im, 2.55e-57], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 5.2e-34], t$95$3, If[LessEqual[y$46$im, 42000000000.0], t$95$0, If[LessEqual[y$46$im, 1.6e+17], t$95$3, If[LessEqual[y$46$im, 2.85e+18], t$95$1, If[LessEqual[y$46$im, 2.3e+20], t$95$3, If[LessEqual[y$46$im, 3.05e+22], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 3.1e+25], t$95$3, If[LessEqual[y$46$im, 5.5e+45], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 3e+61], t$95$3, If[LessEqual[y$46$im, 9e+74], t$95$1, If[LessEqual[y$46$im, 1.35e+82], t$95$3, If[LessEqual[y$46$im, 1.4e+82], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 2.55e+103], t$95$6, If[LessEqual[y$46$im, 5.3e+104], t$95$7, If[LessEqual[y$46$im, 1.8e+143], t$95$6, If[LessEqual[y$46$im, 6e+147], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 9e+173], t$95$3, If[LessEqual[y$46$im, 2.35e+181], t$95$1, If[LessEqual[y$46$im, 4.7e+235], t$95$3, If[LessEqual[y$46$im, 7.8e+241], t$95$1, If[LessEqual[y$46$im, 1.9e+271], t$95$6, If[LessEqual[y$46$im, 1.95e+271], t$95$1, If[LessEqual[y$46$im, 5.8e+297], t$95$3, N[(N[(y$46$re / y$46$im), $MachinePrecision] * N[(x$46$im / y$46$im), $MachinePrecision]), $MachinePrecision]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\
t_1 := \frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\
t_2 := y.im \cdot \frac{x.re}{y.re}\\
t_3 := \frac{x.re}{-y.im}\\
t_4 := \frac{y.re \cdot \frac{x.im}{y.im} - x.re}{y.im}\\
t_5 := x.im \cdot \frac{y.re}{y.im}\\
t_6 := \frac{t\_5 - x.re}{y.im}\\
t_7 := \frac{x.im - t\_2}{y.re}\\
t_8 := x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\
\mathbf{if}\;y.im \leq -1.05 \cdot 10^{+108}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;y.im \leq -6.2 \cdot 10^{+83}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -4.9 \cdot 10^{+72}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.im \leq -1.1 \cdot 10^{+59}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq -5.8 \cdot 10^{+51}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq -5 \cdot 10^{+39}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -6.1 \cdot 10^{+35}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq -4.9 \cdot 10^{+26}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -210000:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;y.im \leq -680:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -160:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq -8.5 \cdot 10^{-5}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -8 \cdot 10^{-12}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq -4.8 \cdot 10^{-29}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -2.6 \cdot 10^{-35}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.im \leq -6.2 \cdot 10^{-39}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -6 \cdot 10^{-39}:\\
\;\;\;\;t\_8\\

\mathbf{elif}\;y.im \leq -1.3 \cdot 10^{-84}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -1.25 \cdot 10^{-84}:\\
\;\;\;\;t\_8\\

\mathbf{elif}\;y.im \leq -1.44 \cdot 10^{-92}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -1.4 \cdot 10^{-92}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq -1.85 \cdot 10^{-95}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1.45 \cdot 10^{-95}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq -3.6 \cdot 10^{-133}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -3.5 \cdot 10^{-133}:\\
\;\;\;\;\frac{t\_5}{y.im}\\

\mathbf{elif}\;y.im \leq -1.6 \cdot 10^{-172}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-172}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq -4 \cdot 10^{-228}:\\
\;\;\;\;\frac{x.im}{y.re} - \frac{t\_2}{y.re}\\

\mathbf{elif}\;y.im \leq 5 \cdot 10^{-284}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq 1.2 \cdot 10^{-194}:\\
\;\;\;\;t\_7\\

\mathbf{elif}\;y.im \leq 1.25 \cdot 10^{-194}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 2.1 \cdot 10^{-143}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 3.1 \cdot 10^{-143}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 1.1 \cdot 10^{-85}:\\
\;\;\;\;t\_7\\

\mathbf{elif}\;y.im \leq 7.2 \cdot 10^{-81}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 2.55 \cdot 10^{-57}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 5.2 \cdot 10^{-34}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 42000000000:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq 1.6 \cdot 10^{+17}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 2.85 \cdot 10^{+18}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 2.3 \cdot 10^{+20}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 3.05 \cdot 10^{+22}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 3.1 \cdot 10^{+25}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 5.5 \cdot 10^{+45}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 3 \cdot 10^{+61}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 9 \cdot 10^{+74}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.35 \cdot 10^{+82}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 1.4 \cdot 10^{+82}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 2.55 \cdot 10^{+103}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.im \leq 5.3 \cdot 10^{+104}:\\
\;\;\;\;t\_7\\

\mathbf{elif}\;y.im \leq 1.8 \cdot 10^{+143}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.im \leq 6 \cdot 10^{+147}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 9 \cdot 10^{+173}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 2.35 \cdot 10^{+181}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 4.7 \cdot 10^{+235}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+241}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.9 \cdot 10^{+271}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.im \leq 1.95 \cdot 10^{+271}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 5.8 \cdot 10^{+297}:\\
\;\;\;\;t\_3\\

\mathbf{else}:\\
\;\;\;\;\frac{y.re}{y.im} \cdot \frac{x.im}{y.im}\\


\end{array}
\end{array}
Derivation
  1. Split input into 11 regimes
  2. if y.im < -1.05000000000000005e108 or -4.89999999999999974e26 < y.im < -2.1e5

    1. Initial program 37.9%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around 0 75.0%

      \[\leadsto \color{blue}{-1 \cdot \frac{x.re}{y.im} + \frac{x.im \cdot y.re}{{y.im}^{2}}} \]
    4. Step-by-step derivation
      1. +-commutative75.0%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{{y.im}^{2}} + -1 \cdot \frac{x.re}{y.im}} \]
      2. mul-1-neg75.0%

        \[\leadsto \frac{x.im \cdot y.re}{{y.im}^{2}} + \color{blue}{\left(-\frac{x.re}{y.im}\right)} \]
      3. unsub-neg75.0%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{{y.im}^{2}} - \frac{x.re}{y.im}} \]
      4. unpow275.0%

        \[\leadsto \frac{x.im \cdot y.re}{\color{blue}{y.im \cdot y.im}} - \frac{x.re}{y.im} \]
      5. associate-/r*82.2%

        \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im}}{y.im}} - \frac{x.re}{y.im} \]
      6. div-sub82.2%

        \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
      7. *-commutative82.2%

        \[\leadsto \frac{\frac{\color{blue}{y.re \cdot x.im}}{y.im} - x.re}{y.im} \]
      8. associate-/l*90.6%

        \[\leadsto \frac{\color{blue}{y.re \cdot \frac{x.im}{y.im}} - x.re}{y.im} \]
    5. Simplified90.6%

      \[\leadsto \color{blue}{\frac{y.re \cdot \frac{x.im}{y.im} - x.re}{y.im}} \]

    if -1.05000000000000005e108 < y.im < -6.19999999999999984e83 or -6.09999999999999977e35 < y.im < -4.89999999999999974e26 or -160 < y.im < -8.500000000000001e-5 or -2.60000000000000005e-35 < y.im < -6.1999999999999994e-39 or -6.00000000000000055e-39 < y.im < -1.3e-84 or -1.25e-84 < y.im < -1.4400000000000001e-92 or 1.2500000000000001e-194 < y.im < 2.1000000000000001e-143 or 1.6e17 < y.im < 2.85e18 or 3e61 < y.im < 8.9999999999999999e74 or 9.0000000000000004e173 < y.im < 2.35000000000000014e181 or 4.6999999999999999e235 < y.im < 7.80000000000000052e241 or 1.8999999999999999e271 < y.im < 1.95e271

    1. Initial program 61.4%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around inf 93.2%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    4. Step-by-step derivation
      1. remove-double-neg93.2%

        \[\leadsto \frac{\color{blue}{\left(-\left(-x.im\right)\right)} + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      2. mul-1-neg93.2%

        \[\leadsto \frac{\left(-\color{blue}{-1 \cdot x.im}\right) + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      3. neg-mul-193.2%

        \[\leadsto \frac{\color{blue}{-1 \cdot \left(-1 \cdot x.im\right)} + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      4. distribute-lft-in93.2%

        \[\leadsto \frac{\color{blue}{-1 \cdot \left(-1 \cdot x.im + \frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      5. mul-1-neg93.2%

        \[\leadsto \frac{\color{blue}{-\left(-1 \cdot x.im + \frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      6. distribute-neg-in93.2%

        \[\leadsto \frac{\color{blue}{\left(--1 \cdot x.im\right) + \left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      7. mul-1-neg93.2%

        \[\leadsto \frac{\left(-\color{blue}{\left(-x.im\right)}\right) + \left(-\frac{x.re \cdot y.im}{y.re}\right)}{y.re} \]
      8. remove-double-neg93.2%

        \[\leadsto \frac{\color{blue}{x.im} + \left(-\frac{x.re \cdot y.im}{y.re}\right)}{y.re} \]
      9. unsub-neg93.2%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      10. associate-/l*100.0%

        \[\leadsto \frac{x.im - \color{blue}{x.re \cdot \frac{y.im}{y.re}}}{y.re} \]
    5. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}} \]

    if -6.19999999999999984e83 < y.im < -4.90000000000000006e72 or -4.79999999999999984e-29 < y.im < -2.60000000000000005e-35 or 1.4e82 < y.im < 2.5500000000000001e103 or 5.2999999999999999e104 < y.im < 1.8e143 or 7.80000000000000052e241 < y.im < 1.8999999999999999e271

    1. Initial program 62.9%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub62.9%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative62.9%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt62.9%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac67.5%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg67.5%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define67.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define67.7%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*86.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt86.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow286.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define86.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr86.4%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 90.7%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]

    if -4.90000000000000006e72 < y.im < -1.1e59 or -3.50000000000000003e-133 < y.im < -1.6000000000000001e-172 or -4.00000000000000013e-228 < y.im < 4.99999999999999973e-284 or 5.1999999999999999e-34 < y.im < 4.2e10

    1. Initial program 72.1%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub67.9%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative67.9%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt67.9%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac72.0%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg72.0%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define72.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define86.9%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*86.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt86.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow286.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define86.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr86.8%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 100.0%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg100.0%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg100.0%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative100.0%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]

    if -1.1e59 < y.im < -5.7999999999999997e51 or -5.00000000000000015e39 < y.im < -6.09999999999999977e35 or -680 < y.im < -160 or -8.500000000000001e-5 < y.im < -7.99999999999999984e-12 or -1.4400000000000001e-92 < y.im < -1.4e-92 or -1.84999999999999997e-95 < y.im < -1.45000000000000001e-95 or -1.6000000000000001e-172 < y.im < -1.5500000000000001e-172 or 1.2e-194 < y.im < 1.2500000000000001e-194 or 2.1000000000000001e-143 < y.im < 3.10000000000000007e-143 or 1.1e-85 < y.im < 7.1999999999999997e-81 or 2.55e-57 < y.im < 5.1999999999999999e-34 or 4.2e10 < y.im < 1.6e17 or 2.85e18 < y.im < 2.3e20 or 3.0499999999999999e22 < y.im < 3.0999999999999998e25 or 5.5000000000000001e45 < y.im < 3e61 or 8.9999999999999999e74 < y.im < 1.35e82 or 5.99999999999999987e147 < y.im < 9.0000000000000004e173 or 2.35000000000000014e181 < y.im < 4.6999999999999999e235 or 1.95e271 < y.im < 5.8000000000000005e297

    1. Initial program 70.5%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around 0 100.0%

      \[\leadsto \color{blue}{-1 \cdot \frac{x.re}{y.im}} \]
    4. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \color{blue}{\frac{-1 \cdot x.re}{y.im}} \]
      2. neg-mul-1100.0%

        \[\leadsto \frac{\color{blue}{-x.re}}{y.im} \]
    5. Simplified100.0%

      \[\leadsto \color{blue}{\frac{-x.re}{y.im}} \]

    if -5.7999999999999997e51 < y.im < -5.00000000000000015e39 or -2.1e5 < y.im < -680 or -7.99999999999999984e-12 < y.im < -4.79999999999999984e-29 or -1.4e-92 < y.im < -1.84999999999999997e-95 or -1.45000000000000001e-95 < y.im < -3.6000000000000004e-133 or 7.1999999999999997e-81 < y.im < 2.55e-57 or 2.3e20 < y.im < 3.0499999999999999e22 or 3.0999999999999998e25 < y.im < 5.5000000000000001e45 or 1.35e82 < y.im < 1.4e82 or 1.8e143 < y.im < 5.99999999999999987e147

    1. Initial program 53.6%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around inf 100.0%

      \[\leadsto \color{blue}{\frac{x.im}{y.re}} \]

    if -6.1999999999999994e-39 < y.im < -6.00000000000000055e-39 or -1.3e-84 < y.im < -1.25e-84

    1. Initial program 99.2%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub99.2%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative99.2%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt99.2%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac99.2%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg99.2%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define99.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define99.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*99.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt99.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow299.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define99.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr99.2%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 99.2%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/99.2%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified99.2%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 99.2%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/99.2%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified99.2%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    11. Step-by-step derivation
      1. associate-/l*100.0%

        \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]
    12. Applied egg-rr100.0%

      \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]

    if -3.6000000000000004e-133 < y.im < -3.50000000000000003e-133

    1. Initial program 100.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub100.0%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative100.0%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt100.0%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac7.8%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg7.8%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define7.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define7.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*7.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt7.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow27.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define7.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr7.8%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 100.0%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 100.0%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified100.0%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]

    if -1.5500000000000001e-172 < y.im < -4.00000000000000013e-228

    1. Initial program 29.2%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub28.3%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative28.3%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt28.3%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac39.0%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg39.0%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define39.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define81.7%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*81.7%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt81.7%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow281.7%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define81.7%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr81.7%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 99.7%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg99.7%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg99.7%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative99.7%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified99.7%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]
    8. Step-by-step derivation
      1. div-sub99.8%

        \[\leadsto \color{blue}{\frac{x.im}{y.re} - \frac{\frac{y.im \cdot x.re}{y.re}}{y.re}} \]
      2. associate-/l*100.0%

        \[\leadsto \frac{x.im}{y.re} - \frac{\color{blue}{y.im \cdot \frac{x.re}{y.re}}}{y.re} \]
    9. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\frac{x.im}{y.re} - \frac{y.im \cdot \frac{x.re}{y.re}}{y.re}} \]

    if 4.99999999999999973e-284 < y.im < 1.2e-194 or 3.10000000000000007e-143 < y.im < 1.1e-85 or 2.5500000000000001e103 < y.im < 5.2999999999999999e104

    1. Initial program 61.6%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub57.1%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative57.1%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt57.1%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac57.6%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg57.6%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define57.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define87.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*87.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt87.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow287.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define87.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr87.4%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 91.4%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg91.4%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg91.4%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative91.4%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified91.4%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]
    8. Step-by-step derivation
      1. associate-/l*99.9%

        \[\leadsto \frac{x.im - \color{blue}{y.im \cdot \frac{x.re}{y.re}}}{y.re} \]
    9. Applied egg-rr99.9%

      \[\leadsto \frac{x.im - \color{blue}{y.im \cdot \frac{x.re}{y.re}}}{y.re} \]

    if 5.8000000000000005e297 < y.im

    1. Initial program 54.8%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub54.8%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative54.8%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt54.8%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac54.8%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg54.8%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define54.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow2100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 99.2%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/99.2%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified99.2%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 99.2%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/99.2%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified99.2%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    11. Step-by-step derivation
      1. *-commutative99.2%

        \[\leadsto \frac{\color{blue}{\frac{y.re}{y.im} \cdot x.im}}{y.im} \]
      2. *-un-lft-identity99.2%

        \[\leadsto \frac{\frac{y.re}{y.im} \cdot x.im}{\color{blue}{1 \cdot y.im}} \]
      3. times-frac100.0%

        \[\leadsto \color{blue}{\frac{\frac{y.re}{y.im}}{1} \cdot \frac{x.im}{y.im}} \]
    12. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\frac{\frac{y.re}{y.im}}{1} \cdot \frac{x.im}{y.im}} \]
  3. Recombined 11 regimes into one program.
  4. Final simplification98.6%

    \[\leadsto \begin{array}{l} \mathbf{if}\;y.im \leq -1.05 \cdot 10^{+108}:\\ \;\;\;\;\frac{y.re \cdot \frac{x.im}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.im \leq -6.2 \cdot 10^{+83}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -4.9 \cdot 10^{+72}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.im \leq -1.1 \cdot 10^{+59}:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -5.8 \cdot 10^{+51}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -5 \cdot 10^{+39}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -6.1 \cdot 10^{+35}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -4.9 \cdot 10^{+26}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -210000:\\ \;\;\;\;\frac{y.re \cdot \frac{x.im}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.im \leq -680:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -160:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -8.5 \cdot 10^{-5}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -8 \cdot 10^{-12}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -4.8 \cdot 10^{-29}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -2.6 \cdot 10^{-35}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.im \leq -6.2 \cdot 10^{-39}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -6 \cdot 10^{-39}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq -1.3 \cdot 10^{-84}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -1.25 \cdot 10^{-84}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq -1.44 \cdot 10^{-92}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -1.4 \cdot 10^{-92}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.85 \cdot 10^{-95}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.45 \cdot 10^{-95}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -3.6 \cdot 10^{-133}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -3.5 \cdot 10^{-133}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq -1.6 \cdot 10^{-172}:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-172}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -4 \cdot 10^{-228}:\\ \;\;\;\;\frac{x.im}{y.re} - \frac{y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 5 \cdot 10^{-284}:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.2 \cdot 10^{-194}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{-194}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.1 \cdot 10^{-143}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 3.1 \cdot 10^{-143}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.1 \cdot 10^{-85}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 7.2 \cdot 10^{-81}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.55 \cdot 10^{-57}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 5.2 \cdot 10^{-34}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 42000000000:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.6 \cdot 10^{+17}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.85 \cdot 10^{+18}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 2.3 \cdot 10^{+20}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 3.05 \cdot 10^{+22}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 3.1 \cdot 10^{+25}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 5.5 \cdot 10^{+45}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 3 \cdot 10^{+61}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 9 \cdot 10^{+74}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.35 \cdot 10^{+82}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.4 \cdot 10^{+82}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 2.55 \cdot 10^{+103}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.im \leq 5.3 \cdot 10^{+104}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.8 \cdot 10^{+143}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{+147}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 9 \cdot 10^{+173}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.35 \cdot 10^{+181}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 4.7 \cdot 10^{+235}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+241}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.9 \cdot 10^{+271}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.im \leq 1.95 \cdot 10^{+271}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 5.8 \cdot 10^{+297}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{else}:\\ \;\;\;\;\frac{y.re}{y.im} \cdot \frac{x.im}{y.im}\\ \end{array} \]
  5. Add Preprocessing

Alternative 16: 72.4% accurate, 0.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ t_1 := \frac{x.re}{-y.im}\\ t_2 := \frac{y.re \cdot \frac{x.im}{y.im} - x.re}{y.im}\\ t_3 := x.im \cdot \frac{y.re}{y.im}\\ t_4 := \frac{t\_3 - x.re}{y.im}\\ t_5 := x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ t_6 := \frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ t_7 := \frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{if}\;y.im \leq -5.1 \cdot 10^{+107}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq -1.35 \cdot 10^{+83}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.im \leq -5.2 \cdot 10^{+72}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;y.im \leq -4.2 \cdot 10^{+60}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq -1.85 \cdot 10^{+53}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -1.05 \cdot 10^{+40}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -3.1 \cdot 10^{+35}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -5.8 \cdot 10^{+26}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.im \leq -200000:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;y.im \leq -225:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -28:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -4.2 \cdot 10^{-5}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.im \leq -1.4 \cdot 10^{-14}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -9.5 \cdot 10^{-28}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1 \cdot 10^{-33}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;y.im \leq -6.2 \cdot 10^{-39}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.im \leq -6 \cdot 10^{-39}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.im \leq -1.3 \cdot 10^{-84}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.im \leq -1.25 \cdot 10^{-84}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.im \leq -1.44 \cdot 10^{-92}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.im \leq -1.4 \cdot 10^{-92}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -1.5 \cdot 10^{-95}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.45 \cdot 10^{-95}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -3.6 \cdot 10^{-133}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -3.5 \cdot 10^{-133}:\\ \;\;\;\;\frac{t\_3}{y.im}\\ \mathbf{elif}\;y.im \leq -1.6 \cdot 10^{-172}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-172}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq -2 \cdot 10^{-209}:\\ \;\;\;\;t\_7\\ \mathbf{elif}\;y.im \leq 10^{-287}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq 1.2 \cdot 10^{-194}:\\ \;\;\;\;t\_7\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{-194}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 2.1 \cdot 10^{-143}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.im \leq 2.2 \cdot 10^{-143}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.1 \cdot 10^{-85}:\\ \;\;\;\;t\_7\\ \mathbf{elif}\;y.im \leq 1.15 \cdot 10^{-85}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 9.5 \cdot 10^{-52}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 5.2 \cdot 10^{-34}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 26000000:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y.im \leq 1.6 \cdot 10^{+17}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 2.8 \cdot 10^{+18}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.im \leq 7.2 \cdot 10^{+20}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 2.45 \cdot 10^{+22}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 7 \cdot 10^{+24}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.7 \cdot 10^{+43}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 2.3 \cdot 10^{+60}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 8 \cdot 10^{+76}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.im \leq 1.32 \cdot 10^{+82}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.4 \cdot 10^{+82}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.2 \cdot 10^{+100}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;y.im \leq 4 \cdot 10^{+103}:\\ \;\;\;\;t\_7\\ \mathbf{elif}\;y.im \leq 1.8 \cdot 10^{+143}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{+147}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.3 \cdot 10^{+174}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{+175}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.im \leq 4.7 \cdot 10^{+235}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+241}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.im \leq 1.9 \cdot 10^{+271}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;y.im \leq 1.95 \cdot 10^{+271}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.im \leq 5.8 \cdot 10^{+297}:\\ \;\;\;\;t\_1\\ \mathbf{else}:\\ \;\;\;\;\frac{y.re}{y.im} \cdot \frac{x.im}{y.im}\\ \end{array} \end{array} \]
(FPCore (x.re x.im y.re y.im)
 :precision binary64
 (let* ((t_0 (/ (- x.im (/ (* y.im x.re) y.re)) y.re))
        (t_1 (/ x.re (- y.im)))
        (t_2 (/ (- (* y.re (/ x.im y.im)) x.re) y.im))
        (t_3 (* x.im (/ y.re y.im)))
        (t_4 (/ (- t_3 x.re) y.im))
        (t_5 (* x.im (/ (/ y.re y.im) y.im)))
        (t_6 (/ (- x.im (* x.re (/ y.im y.re))) y.re))
        (t_7 (/ (- x.im (* y.im (/ x.re y.re))) y.re)))
   (if (<= y.im -5.1e+107)
     t_2
     (if (<= y.im -1.35e+83)
       t_6
       (if (<= y.im -5.2e+72)
         t_4
         (if (<= y.im -4.2e+60)
           t_0
           (if (<= y.im -1.85e+53)
             t_1
             (if (<= y.im -1.05e+40)
               (/ x.im y.re)
               (if (<= y.im -3.1e+35)
                 t_1
                 (if (<= y.im -5.8e+26)
                   t_6
                   (if (<= y.im -200000.0)
                     t_2
                     (if (<= y.im -225.0)
                       (/ x.im y.re)
                       (if (<= y.im -28.0)
                         t_1
                         (if (<= y.im -4.2e-5)
                           t_6
                           (if (<= y.im -1.4e-14)
                             t_1
                             (if (<= y.im -9.5e-28)
                               (/ x.im y.re)
                               (if (<= y.im -1e-33)
                                 t_4
                                 (if (<= y.im -6.2e-39)
                                   t_6
                                   (if (<= y.im -6e-39)
                                     t_5
                                     (if (<= y.im -1.3e-84)
                                       t_6
                                       (if (<= y.im -1.25e-84)
                                         t_5
                                         (if (<= y.im -1.44e-92)
                                           t_6
                                           (if (<= y.im -1.4e-92)
                                             t_1
                                             (if (<= y.im -1.5e-95)
                                               (/ x.im y.re)
                                               (if (<= y.im -1.45e-95)
                                                 t_1
                                                 (if (<= y.im -3.6e-133)
                                                   (/ x.im y.re)
                                                   (if (<= y.im -3.5e-133)
                                                     (/ t_3 y.im)
                                                     (if (<= y.im -1.6e-172)
                                                       t_0
                                                       (if (<= y.im -1.55e-172)
                                                         t_1
                                                         (if (<= y.im -2e-209)
                                                           t_7
                                                           (if (<= y.im 1e-287)
                                                             t_0
                                                             (if (<=
                                                                  y.im
                                                                  1.2e-194)
                                                               t_7
                                                               (if (<=
                                                                    y.im
                                                                    1.25e-194)
                                                                 t_1
                                                                 (if (<=
                                                                      y.im
                                                                      2.1e-143)
                                                                   t_6
                                                                   (if (<=
                                                                        y.im
                                                                        2.2e-143)
                                                                     t_1
                                                                     (if (<=
                                                                          y.im
                                                                          1.1e-85)
                                                                       t_7
                                                                       (if (<=
                                                                            y.im
                                                                            1.15e-85)
                                                                         t_1
                                                                         (if (<=
                                                                              y.im
                                                                              9.5e-52)
                                                                           (/
                                                                            x.im
                                                                            y.re)
                                                                           (if (<=
                                                                                y.im
                                                                                5.2e-34)
                                                                             t_1
                                                                             (if (<=
                                                                                  y.im
                                                                                  26000000.0)
                                                                               t_0
                                                                               (if (<=
                                                                                    y.im
                                                                                    1.6e+17)
                                                                                 t_1
                                                                                 (if (<=
                                                                                      y.im
                                                                                      2.8e+18)
                                                                                   t_6
                                                                                   (if (<=
                                                                                        y.im
                                                                                        7.2e+20)
                                                                                     t_1
                                                                                     (if (<=
                                                                                          y.im
                                                                                          2.45e+22)
                                                                                       (/
                                                                                        x.im
                                                                                        y.re)
                                                                                       (if (<=
                                                                                            y.im
                                                                                            7e+24)
                                                                                         t_1
                                                                                         (if (<=
                                                                                              y.im
                                                                                              1.7e+43)
                                                                                           (/
                                                                                            x.im
                                                                                            y.re)
                                                                                           (if (<=
                                                                                                y.im
                                                                                                2.3e+60)
                                                                                             t_1
                                                                                             (if (<=
                                                                                                  y.im
                                                                                                  8e+76)
                                                                                               t_6
                                                                                               (if (<=
                                                                                                    y.im
                                                                                                    1.32e+82)
                                                                                                 t_1
                                                                                                 (if (<=
                                                                                                      y.im
                                                                                                      1.4e+82)
                                                                                                   (/
                                                                                                    x.im
                                                                                                    y.re)
                                                                                                   (if (<=
                                                                                                        y.im
                                                                                                        1.2e+100)
                                                                                                     t_4
                                                                                                     (if (<=
                                                                                                          y.im
                                                                                                          4e+103)
                                                                                                       t_7
                                                                                                       (if (<=
                                                                                                            y.im
                                                                                                            1.8e+143)
                                                                                                         t_4
                                                                                                         (if (<=
                                                                                                              y.im
                                                                                                              6e+147)
                                                                                                           (/
                                                                                                            x.im
                                                                                                            y.re)
                                                                                                           (if (<=
                                                                                                                y.im
                                                                                                                1.3e+174)
                                                                                                             t_1
                                                                                                             (if (<=
                                                                                                                  y.im
                                                                                                                  1.25e+175)
                                                                                                               t_6
                                                                                                               (if (<=
                                                                                                                    y.im
                                                                                                                    4.7e+235)
                                                                                                                 t_1
                                                                                                                 (if (<=
                                                                                                                      y.im
                                                                                                                      7.8e+241)
                                                                                                                   t_6
                                                                                                                   (if (<=
                                                                                                                        y.im
                                                                                                                        1.9e+271)
                                                                                                                     t_4
                                                                                                                     (if (<=
                                                                                                                          y.im
                                                                                                                          1.95e+271)
                                                                                                                       t_6
                                                                                                                       (if (<=
                                                                                                                            y.im
                                                                                                                            5.8e+297)
                                                                                                                         t_1
                                                                                                                         (*
                                                                                                                          (/
                                                                                                                           y.re
                                                                                                                           y.im)
                                                                                                                          (/
                                                                                                                           x.im
                                                                                                                           y.im)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double t_0 = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re;
	double t_1 = x_46_re / -y_46_im;
	double t_2 = ((y_46_re * (x_46_im / y_46_im)) - x_46_re) / y_46_im;
	double t_3 = x_46_im * (y_46_re / y_46_im);
	double t_4 = (t_3 - x_46_re) / y_46_im;
	double t_5 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	double t_6 = (x_46_im - (x_46_re * (y_46_im / y_46_re))) / y_46_re;
	double t_7 = (x_46_im - (y_46_im * (x_46_re / y_46_re))) / y_46_re;
	double tmp;
	if (y_46_im <= -5.1e+107) {
		tmp = t_2;
	} else if (y_46_im <= -1.35e+83) {
		tmp = t_6;
	} else if (y_46_im <= -5.2e+72) {
		tmp = t_4;
	} else if (y_46_im <= -4.2e+60) {
		tmp = t_0;
	} else if (y_46_im <= -1.85e+53) {
		tmp = t_1;
	} else if (y_46_im <= -1.05e+40) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -3.1e+35) {
		tmp = t_1;
	} else if (y_46_im <= -5.8e+26) {
		tmp = t_6;
	} else if (y_46_im <= -200000.0) {
		tmp = t_2;
	} else if (y_46_im <= -225.0) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -28.0) {
		tmp = t_1;
	} else if (y_46_im <= -4.2e-5) {
		tmp = t_6;
	} else if (y_46_im <= -1.4e-14) {
		tmp = t_1;
	} else if (y_46_im <= -9.5e-28) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1e-33) {
		tmp = t_4;
	} else if (y_46_im <= -6.2e-39) {
		tmp = t_6;
	} else if (y_46_im <= -6e-39) {
		tmp = t_5;
	} else if (y_46_im <= -1.3e-84) {
		tmp = t_6;
	} else if (y_46_im <= -1.25e-84) {
		tmp = t_5;
	} else if (y_46_im <= -1.44e-92) {
		tmp = t_6;
	} else if (y_46_im <= -1.4e-92) {
		tmp = t_1;
	} else if (y_46_im <= -1.5e-95) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.45e-95) {
		tmp = t_1;
	} else if (y_46_im <= -3.6e-133) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -3.5e-133) {
		tmp = t_3 / y_46_im;
	} else if (y_46_im <= -1.6e-172) {
		tmp = t_0;
	} else if (y_46_im <= -1.55e-172) {
		tmp = t_1;
	} else if (y_46_im <= -2e-209) {
		tmp = t_7;
	} else if (y_46_im <= 1e-287) {
		tmp = t_0;
	} else if (y_46_im <= 1.2e-194) {
		tmp = t_7;
	} else if (y_46_im <= 1.25e-194) {
		tmp = t_1;
	} else if (y_46_im <= 2.1e-143) {
		tmp = t_6;
	} else if (y_46_im <= 2.2e-143) {
		tmp = t_1;
	} else if (y_46_im <= 1.1e-85) {
		tmp = t_7;
	} else if (y_46_im <= 1.15e-85) {
		tmp = t_1;
	} else if (y_46_im <= 9.5e-52) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 5.2e-34) {
		tmp = t_1;
	} else if (y_46_im <= 26000000.0) {
		tmp = t_0;
	} else if (y_46_im <= 1.6e+17) {
		tmp = t_1;
	} else if (y_46_im <= 2.8e+18) {
		tmp = t_6;
	} else if (y_46_im <= 7.2e+20) {
		tmp = t_1;
	} else if (y_46_im <= 2.45e+22) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 7e+24) {
		tmp = t_1;
	} else if (y_46_im <= 1.7e+43) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 2.3e+60) {
		tmp = t_1;
	} else if (y_46_im <= 8e+76) {
		tmp = t_6;
	} else if (y_46_im <= 1.32e+82) {
		tmp = t_1;
	} else if (y_46_im <= 1.4e+82) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.2e+100) {
		tmp = t_4;
	} else if (y_46_im <= 4e+103) {
		tmp = t_7;
	} else if (y_46_im <= 1.8e+143) {
		tmp = t_4;
	} else if (y_46_im <= 6e+147) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.3e+174) {
		tmp = t_1;
	} else if (y_46_im <= 1.25e+175) {
		tmp = t_6;
	} else if (y_46_im <= 4.7e+235) {
		tmp = t_1;
	} else if (y_46_im <= 7.8e+241) {
		tmp = t_6;
	} else if (y_46_im <= 1.9e+271) {
		tmp = t_4;
	} else if (y_46_im <= 1.95e+271) {
		tmp = t_6;
	} else if (y_46_im <= 5.8e+297) {
		tmp = t_1;
	} else {
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im);
	}
	return tmp;
}
real(8) function code(x_46re, x_46im, y_46re, y_46im)
    real(8), intent (in) :: x_46re
    real(8), intent (in) :: x_46im
    real(8), intent (in) :: y_46re
    real(8), intent (in) :: y_46im
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: t_2
    real(8) :: t_3
    real(8) :: t_4
    real(8) :: t_5
    real(8) :: t_6
    real(8) :: t_7
    real(8) :: tmp
    t_0 = (x_46im - ((y_46im * x_46re) / y_46re)) / y_46re
    t_1 = x_46re / -y_46im
    t_2 = ((y_46re * (x_46im / y_46im)) - x_46re) / y_46im
    t_3 = x_46im * (y_46re / y_46im)
    t_4 = (t_3 - x_46re) / y_46im
    t_5 = x_46im * ((y_46re / y_46im) / y_46im)
    t_6 = (x_46im - (x_46re * (y_46im / y_46re))) / y_46re
    t_7 = (x_46im - (y_46im * (x_46re / y_46re))) / y_46re
    if (y_46im <= (-5.1d+107)) then
        tmp = t_2
    else if (y_46im <= (-1.35d+83)) then
        tmp = t_6
    else if (y_46im <= (-5.2d+72)) then
        tmp = t_4
    else if (y_46im <= (-4.2d+60)) then
        tmp = t_0
    else if (y_46im <= (-1.85d+53)) then
        tmp = t_1
    else if (y_46im <= (-1.05d+40)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-3.1d+35)) then
        tmp = t_1
    else if (y_46im <= (-5.8d+26)) then
        tmp = t_6
    else if (y_46im <= (-200000.0d0)) then
        tmp = t_2
    else if (y_46im <= (-225.0d0)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-28.0d0)) then
        tmp = t_1
    else if (y_46im <= (-4.2d-5)) then
        tmp = t_6
    else if (y_46im <= (-1.4d-14)) then
        tmp = t_1
    else if (y_46im <= (-9.5d-28)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1d-33)) then
        tmp = t_4
    else if (y_46im <= (-6.2d-39)) then
        tmp = t_6
    else if (y_46im <= (-6d-39)) then
        tmp = t_5
    else if (y_46im <= (-1.3d-84)) then
        tmp = t_6
    else if (y_46im <= (-1.25d-84)) then
        tmp = t_5
    else if (y_46im <= (-1.44d-92)) then
        tmp = t_6
    else if (y_46im <= (-1.4d-92)) then
        tmp = t_1
    else if (y_46im <= (-1.5d-95)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-1.45d-95)) then
        tmp = t_1
    else if (y_46im <= (-3.6d-133)) then
        tmp = x_46im / y_46re
    else if (y_46im <= (-3.5d-133)) then
        tmp = t_3 / y_46im
    else if (y_46im <= (-1.6d-172)) then
        tmp = t_0
    else if (y_46im <= (-1.55d-172)) then
        tmp = t_1
    else if (y_46im <= (-2d-209)) then
        tmp = t_7
    else if (y_46im <= 1d-287) then
        tmp = t_0
    else if (y_46im <= 1.2d-194) then
        tmp = t_7
    else if (y_46im <= 1.25d-194) then
        tmp = t_1
    else if (y_46im <= 2.1d-143) then
        tmp = t_6
    else if (y_46im <= 2.2d-143) then
        tmp = t_1
    else if (y_46im <= 1.1d-85) then
        tmp = t_7
    else if (y_46im <= 1.15d-85) then
        tmp = t_1
    else if (y_46im <= 9.5d-52) then
        tmp = x_46im / y_46re
    else if (y_46im <= 5.2d-34) then
        tmp = t_1
    else if (y_46im <= 26000000.0d0) then
        tmp = t_0
    else if (y_46im <= 1.6d+17) then
        tmp = t_1
    else if (y_46im <= 2.8d+18) then
        tmp = t_6
    else if (y_46im <= 7.2d+20) then
        tmp = t_1
    else if (y_46im <= 2.45d+22) then
        tmp = x_46im / y_46re
    else if (y_46im <= 7d+24) then
        tmp = t_1
    else if (y_46im <= 1.7d+43) then
        tmp = x_46im / y_46re
    else if (y_46im <= 2.3d+60) then
        tmp = t_1
    else if (y_46im <= 8d+76) then
        tmp = t_6
    else if (y_46im <= 1.32d+82) then
        tmp = t_1
    else if (y_46im <= 1.4d+82) then
        tmp = x_46im / y_46re
    else if (y_46im <= 1.2d+100) then
        tmp = t_4
    else if (y_46im <= 4d+103) then
        tmp = t_7
    else if (y_46im <= 1.8d+143) then
        tmp = t_4
    else if (y_46im <= 6d+147) then
        tmp = x_46im / y_46re
    else if (y_46im <= 1.3d+174) then
        tmp = t_1
    else if (y_46im <= 1.25d+175) then
        tmp = t_6
    else if (y_46im <= 4.7d+235) then
        tmp = t_1
    else if (y_46im <= 7.8d+241) then
        tmp = t_6
    else if (y_46im <= 1.9d+271) then
        tmp = t_4
    else if (y_46im <= 1.95d+271) then
        tmp = t_6
    else if (y_46im <= 5.8d+297) then
        tmp = t_1
    else
        tmp = (y_46re / y_46im) * (x_46im / y_46im)
    end if
    code = tmp
end function
public static double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double t_0 = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re;
	double t_1 = x_46_re / -y_46_im;
	double t_2 = ((y_46_re * (x_46_im / y_46_im)) - x_46_re) / y_46_im;
	double t_3 = x_46_im * (y_46_re / y_46_im);
	double t_4 = (t_3 - x_46_re) / y_46_im;
	double t_5 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	double t_6 = (x_46_im - (x_46_re * (y_46_im / y_46_re))) / y_46_re;
	double t_7 = (x_46_im - (y_46_im * (x_46_re / y_46_re))) / y_46_re;
	double tmp;
	if (y_46_im <= -5.1e+107) {
		tmp = t_2;
	} else if (y_46_im <= -1.35e+83) {
		tmp = t_6;
	} else if (y_46_im <= -5.2e+72) {
		tmp = t_4;
	} else if (y_46_im <= -4.2e+60) {
		tmp = t_0;
	} else if (y_46_im <= -1.85e+53) {
		tmp = t_1;
	} else if (y_46_im <= -1.05e+40) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -3.1e+35) {
		tmp = t_1;
	} else if (y_46_im <= -5.8e+26) {
		tmp = t_6;
	} else if (y_46_im <= -200000.0) {
		tmp = t_2;
	} else if (y_46_im <= -225.0) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -28.0) {
		tmp = t_1;
	} else if (y_46_im <= -4.2e-5) {
		tmp = t_6;
	} else if (y_46_im <= -1.4e-14) {
		tmp = t_1;
	} else if (y_46_im <= -9.5e-28) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1e-33) {
		tmp = t_4;
	} else if (y_46_im <= -6.2e-39) {
		tmp = t_6;
	} else if (y_46_im <= -6e-39) {
		tmp = t_5;
	} else if (y_46_im <= -1.3e-84) {
		tmp = t_6;
	} else if (y_46_im <= -1.25e-84) {
		tmp = t_5;
	} else if (y_46_im <= -1.44e-92) {
		tmp = t_6;
	} else if (y_46_im <= -1.4e-92) {
		tmp = t_1;
	} else if (y_46_im <= -1.5e-95) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -1.45e-95) {
		tmp = t_1;
	} else if (y_46_im <= -3.6e-133) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= -3.5e-133) {
		tmp = t_3 / y_46_im;
	} else if (y_46_im <= -1.6e-172) {
		tmp = t_0;
	} else if (y_46_im <= -1.55e-172) {
		tmp = t_1;
	} else if (y_46_im <= -2e-209) {
		tmp = t_7;
	} else if (y_46_im <= 1e-287) {
		tmp = t_0;
	} else if (y_46_im <= 1.2e-194) {
		tmp = t_7;
	} else if (y_46_im <= 1.25e-194) {
		tmp = t_1;
	} else if (y_46_im <= 2.1e-143) {
		tmp = t_6;
	} else if (y_46_im <= 2.2e-143) {
		tmp = t_1;
	} else if (y_46_im <= 1.1e-85) {
		tmp = t_7;
	} else if (y_46_im <= 1.15e-85) {
		tmp = t_1;
	} else if (y_46_im <= 9.5e-52) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 5.2e-34) {
		tmp = t_1;
	} else if (y_46_im <= 26000000.0) {
		tmp = t_0;
	} else if (y_46_im <= 1.6e+17) {
		tmp = t_1;
	} else if (y_46_im <= 2.8e+18) {
		tmp = t_6;
	} else if (y_46_im <= 7.2e+20) {
		tmp = t_1;
	} else if (y_46_im <= 2.45e+22) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 7e+24) {
		tmp = t_1;
	} else if (y_46_im <= 1.7e+43) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 2.3e+60) {
		tmp = t_1;
	} else if (y_46_im <= 8e+76) {
		tmp = t_6;
	} else if (y_46_im <= 1.32e+82) {
		tmp = t_1;
	} else if (y_46_im <= 1.4e+82) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.2e+100) {
		tmp = t_4;
	} else if (y_46_im <= 4e+103) {
		tmp = t_7;
	} else if (y_46_im <= 1.8e+143) {
		tmp = t_4;
	} else if (y_46_im <= 6e+147) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 1.3e+174) {
		tmp = t_1;
	} else if (y_46_im <= 1.25e+175) {
		tmp = t_6;
	} else if (y_46_im <= 4.7e+235) {
		tmp = t_1;
	} else if (y_46_im <= 7.8e+241) {
		tmp = t_6;
	} else if (y_46_im <= 1.9e+271) {
		tmp = t_4;
	} else if (y_46_im <= 1.95e+271) {
		tmp = t_6;
	} else if (y_46_im <= 5.8e+297) {
		tmp = t_1;
	} else {
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im);
	}
	return tmp;
}
def code(x_46_re, x_46_im, y_46_re, y_46_im):
	t_0 = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re
	t_1 = x_46_re / -y_46_im
	t_2 = ((y_46_re * (x_46_im / y_46_im)) - x_46_re) / y_46_im
	t_3 = x_46_im * (y_46_re / y_46_im)
	t_4 = (t_3 - x_46_re) / y_46_im
	t_5 = x_46_im * ((y_46_re / y_46_im) / y_46_im)
	t_6 = (x_46_im - (x_46_re * (y_46_im / y_46_re))) / y_46_re
	t_7 = (x_46_im - (y_46_im * (x_46_re / y_46_re))) / y_46_re
	tmp = 0
	if y_46_im <= -5.1e+107:
		tmp = t_2
	elif y_46_im <= -1.35e+83:
		tmp = t_6
	elif y_46_im <= -5.2e+72:
		tmp = t_4
	elif y_46_im <= -4.2e+60:
		tmp = t_0
	elif y_46_im <= -1.85e+53:
		tmp = t_1
	elif y_46_im <= -1.05e+40:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -3.1e+35:
		tmp = t_1
	elif y_46_im <= -5.8e+26:
		tmp = t_6
	elif y_46_im <= -200000.0:
		tmp = t_2
	elif y_46_im <= -225.0:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -28.0:
		tmp = t_1
	elif y_46_im <= -4.2e-5:
		tmp = t_6
	elif y_46_im <= -1.4e-14:
		tmp = t_1
	elif y_46_im <= -9.5e-28:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1e-33:
		tmp = t_4
	elif y_46_im <= -6.2e-39:
		tmp = t_6
	elif y_46_im <= -6e-39:
		tmp = t_5
	elif y_46_im <= -1.3e-84:
		tmp = t_6
	elif y_46_im <= -1.25e-84:
		tmp = t_5
	elif y_46_im <= -1.44e-92:
		tmp = t_6
	elif y_46_im <= -1.4e-92:
		tmp = t_1
	elif y_46_im <= -1.5e-95:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -1.45e-95:
		tmp = t_1
	elif y_46_im <= -3.6e-133:
		tmp = x_46_im / y_46_re
	elif y_46_im <= -3.5e-133:
		tmp = t_3 / y_46_im
	elif y_46_im <= -1.6e-172:
		tmp = t_0
	elif y_46_im <= -1.55e-172:
		tmp = t_1
	elif y_46_im <= -2e-209:
		tmp = t_7
	elif y_46_im <= 1e-287:
		tmp = t_0
	elif y_46_im <= 1.2e-194:
		tmp = t_7
	elif y_46_im <= 1.25e-194:
		tmp = t_1
	elif y_46_im <= 2.1e-143:
		tmp = t_6
	elif y_46_im <= 2.2e-143:
		tmp = t_1
	elif y_46_im <= 1.1e-85:
		tmp = t_7
	elif y_46_im <= 1.15e-85:
		tmp = t_1
	elif y_46_im <= 9.5e-52:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 5.2e-34:
		tmp = t_1
	elif y_46_im <= 26000000.0:
		tmp = t_0
	elif y_46_im <= 1.6e+17:
		tmp = t_1
	elif y_46_im <= 2.8e+18:
		tmp = t_6
	elif y_46_im <= 7.2e+20:
		tmp = t_1
	elif y_46_im <= 2.45e+22:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 7e+24:
		tmp = t_1
	elif y_46_im <= 1.7e+43:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 2.3e+60:
		tmp = t_1
	elif y_46_im <= 8e+76:
		tmp = t_6
	elif y_46_im <= 1.32e+82:
		tmp = t_1
	elif y_46_im <= 1.4e+82:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 1.2e+100:
		tmp = t_4
	elif y_46_im <= 4e+103:
		tmp = t_7
	elif y_46_im <= 1.8e+143:
		tmp = t_4
	elif y_46_im <= 6e+147:
		tmp = x_46_im / y_46_re
	elif y_46_im <= 1.3e+174:
		tmp = t_1
	elif y_46_im <= 1.25e+175:
		tmp = t_6
	elif y_46_im <= 4.7e+235:
		tmp = t_1
	elif y_46_im <= 7.8e+241:
		tmp = t_6
	elif y_46_im <= 1.9e+271:
		tmp = t_4
	elif y_46_im <= 1.95e+271:
		tmp = t_6
	elif y_46_im <= 5.8e+297:
		tmp = t_1
	else:
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im)
	return tmp
function code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = Float64(Float64(x_46_im - Float64(Float64(y_46_im * x_46_re) / y_46_re)) / y_46_re)
	t_1 = Float64(x_46_re / Float64(-y_46_im))
	t_2 = Float64(Float64(Float64(y_46_re * Float64(x_46_im / y_46_im)) - x_46_re) / y_46_im)
	t_3 = Float64(x_46_im * Float64(y_46_re / y_46_im))
	t_4 = Float64(Float64(t_3 - x_46_re) / y_46_im)
	t_5 = Float64(x_46_im * Float64(Float64(y_46_re / y_46_im) / y_46_im))
	t_6 = Float64(Float64(x_46_im - Float64(x_46_re * Float64(y_46_im / y_46_re))) / y_46_re)
	t_7 = Float64(Float64(x_46_im - Float64(y_46_im * Float64(x_46_re / y_46_re))) / y_46_re)
	tmp = 0.0
	if (y_46_im <= -5.1e+107)
		tmp = t_2;
	elseif (y_46_im <= -1.35e+83)
		tmp = t_6;
	elseif (y_46_im <= -5.2e+72)
		tmp = t_4;
	elseif (y_46_im <= -4.2e+60)
		tmp = t_0;
	elseif (y_46_im <= -1.85e+53)
		tmp = t_1;
	elseif (y_46_im <= -1.05e+40)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -3.1e+35)
		tmp = t_1;
	elseif (y_46_im <= -5.8e+26)
		tmp = t_6;
	elseif (y_46_im <= -200000.0)
		tmp = t_2;
	elseif (y_46_im <= -225.0)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -28.0)
		tmp = t_1;
	elseif (y_46_im <= -4.2e-5)
		tmp = t_6;
	elseif (y_46_im <= -1.4e-14)
		tmp = t_1;
	elseif (y_46_im <= -9.5e-28)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1e-33)
		tmp = t_4;
	elseif (y_46_im <= -6.2e-39)
		tmp = t_6;
	elseif (y_46_im <= -6e-39)
		tmp = t_5;
	elseif (y_46_im <= -1.3e-84)
		tmp = t_6;
	elseif (y_46_im <= -1.25e-84)
		tmp = t_5;
	elseif (y_46_im <= -1.44e-92)
		tmp = t_6;
	elseif (y_46_im <= -1.4e-92)
		tmp = t_1;
	elseif (y_46_im <= -1.5e-95)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -1.45e-95)
		tmp = t_1;
	elseif (y_46_im <= -3.6e-133)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= -3.5e-133)
		tmp = Float64(t_3 / y_46_im);
	elseif (y_46_im <= -1.6e-172)
		tmp = t_0;
	elseif (y_46_im <= -1.55e-172)
		tmp = t_1;
	elseif (y_46_im <= -2e-209)
		tmp = t_7;
	elseif (y_46_im <= 1e-287)
		tmp = t_0;
	elseif (y_46_im <= 1.2e-194)
		tmp = t_7;
	elseif (y_46_im <= 1.25e-194)
		tmp = t_1;
	elseif (y_46_im <= 2.1e-143)
		tmp = t_6;
	elseif (y_46_im <= 2.2e-143)
		tmp = t_1;
	elseif (y_46_im <= 1.1e-85)
		tmp = t_7;
	elseif (y_46_im <= 1.15e-85)
		tmp = t_1;
	elseif (y_46_im <= 9.5e-52)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 5.2e-34)
		tmp = t_1;
	elseif (y_46_im <= 26000000.0)
		tmp = t_0;
	elseif (y_46_im <= 1.6e+17)
		tmp = t_1;
	elseif (y_46_im <= 2.8e+18)
		tmp = t_6;
	elseif (y_46_im <= 7.2e+20)
		tmp = t_1;
	elseif (y_46_im <= 2.45e+22)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 7e+24)
		tmp = t_1;
	elseif (y_46_im <= 1.7e+43)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 2.3e+60)
		tmp = t_1;
	elseif (y_46_im <= 8e+76)
		tmp = t_6;
	elseif (y_46_im <= 1.32e+82)
		tmp = t_1;
	elseif (y_46_im <= 1.4e+82)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 1.2e+100)
		tmp = t_4;
	elseif (y_46_im <= 4e+103)
		tmp = t_7;
	elseif (y_46_im <= 1.8e+143)
		tmp = t_4;
	elseif (y_46_im <= 6e+147)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_im <= 1.3e+174)
		tmp = t_1;
	elseif (y_46_im <= 1.25e+175)
		tmp = t_6;
	elseif (y_46_im <= 4.7e+235)
		tmp = t_1;
	elseif (y_46_im <= 7.8e+241)
		tmp = t_6;
	elseif (y_46_im <= 1.9e+271)
		tmp = t_4;
	elseif (y_46_im <= 1.95e+271)
		tmp = t_6;
	elseif (y_46_im <= 5.8e+297)
		tmp = t_1;
	else
		tmp = Float64(Float64(y_46_re / y_46_im) * Float64(x_46_im / y_46_im));
	end
	return tmp
end
function tmp_2 = code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re;
	t_1 = x_46_re / -y_46_im;
	t_2 = ((y_46_re * (x_46_im / y_46_im)) - x_46_re) / y_46_im;
	t_3 = x_46_im * (y_46_re / y_46_im);
	t_4 = (t_3 - x_46_re) / y_46_im;
	t_5 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	t_6 = (x_46_im - (x_46_re * (y_46_im / y_46_re))) / y_46_re;
	t_7 = (x_46_im - (y_46_im * (x_46_re / y_46_re))) / y_46_re;
	tmp = 0.0;
	if (y_46_im <= -5.1e+107)
		tmp = t_2;
	elseif (y_46_im <= -1.35e+83)
		tmp = t_6;
	elseif (y_46_im <= -5.2e+72)
		tmp = t_4;
	elseif (y_46_im <= -4.2e+60)
		tmp = t_0;
	elseif (y_46_im <= -1.85e+53)
		tmp = t_1;
	elseif (y_46_im <= -1.05e+40)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -3.1e+35)
		tmp = t_1;
	elseif (y_46_im <= -5.8e+26)
		tmp = t_6;
	elseif (y_46_im <= -200000.0)
		tmp = t_2;
	elseif (y_46_im <= -225.0)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -28.0)
		tmp = t_1;
	elseif (y_46_im <= -4.2e-5)
		tmp = t_6;
	elseif (y_46_im <= -1.4e-14)
		tmp = t_1;
	elseif (y_46_im <= -9.5e-28)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1e-33)
		tmp = t_4;
	elseif (y_46_im <= -6.2e-39)
		tmp = t_6;
	elseif (y_46_im <= -6e-39)
		tmp = t_5;
	elseif (y_46_im <= -1.3e-84)
		tmp = t_6;
	elseif (y_46_im <= -1.25e-84)
		tmp = t_5;
	elseif (y_46_im <= -1.44e-92)
		tmp = t_6;
	elseif (y_46_im <= -1.4e-92)
		tmp = t_1;
	elseif (y_46_im <= -1.5e-95)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -1.45e-95)
		tmp = t_1;
	elseif (y_46_im <= -3.6e-133)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= -3.5e-133)
		tmp = t_3 / y_46_im;
	elseif (y_46_im <= -1.6e-172)
		tmp = t_0;
	elseif (y_46_im <= -1.55e-172)
		tmp = t_1;
	elseif (y_46_im <= -2e-209)
		tmp = t_7;
	elseif (y_46_im <= 1e-287)
		tmp = t_0;
	elseif (y_46_im <= 1.2e-194)
		tmp = t_7;
	elseif (y_46_im <= 1.25e-194)
		tmp = t_1;
	elseif (y_46_im <= 2.1e-143)
		tmp = t_6;
	elseif (y_46_im <= 2.2e-143)
		tmp = t_1;
	elseif (y_46_im <= 1.1e-85)
		tmp = t_7;
	elseif (y_46_im <= 1.15e-85)
		tmp = t_1;
	elseif (y_46_im <= 9.5e-52)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 5.2e-34)
		tmp = t_1;
	elseif (y_46_im <= 26000000.0)
		tmp = t_0;
	elseif (y_46_im <= 1.6e+17)
		tmp = t_1;
	elseif (y_46_im <= 2.8e+18)
		tmp = t_6;
	elseif (y_46_im <= 7.2e+20)
		tmp = t_1;
	elseif (y_46_im <= 2.45e+22)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 7e+24)
		tmp = t_1;
	elseif (y_46_im <= 1.7e+43)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 2.3e+60)
		tmp = t_1;
	elseif (y_46_im <= 8e+76)
		tmp = t_6;
	elseif (y_46_im <= 1.32e+82)
		tmp = t_1;
	elseif (y_46_im <= 1.4e+82)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 1.2e+100)
		tmp = t_4;
	elseif (y_46_im <= 4e+103)
		tmp = t_7;
	elseif (y_46_im <= 1.8e+143)
		tmp = t_4;
	elseif (y_46_im <= 6e+147)
		tmp = x_46_im / y_46_re;
	elseif (y_46_im <= 1.3e+174)
		tmp = t_1;
	elseif (y_46_im <= 1.25e+175)
		tmp = t_6;
	elseif (y_46_im <= 4.7e+235)
		tmp = t_1;
	elseif (y_46_im <= 7.8e+241)
		tmp = t_6;
	elseif (y_46_im <= 1.9e+271)
		tmp = t_4;
	elseif (y_46_im <= 1.95e+271)
		tmp = t_6;
	elseif (y_46_im <= 5.8e+297)
		tmp = t_1;
	else
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im);
	end
	tmp_2 = tmp;
end
code[x$46$re_, x$46$im_, y$46$re_, y$46$im_] := Block[{t$95$0 = N[(N[(x$46$im - N[(N[(y$46$im * x$46$re), $MachinePrecision] / y$46$re), $MachinePrecision]), $MachinePrecision] / y$46$re), $MachinePrecision]}, Block[{t$95$1 = N[(x$46$re / (-y$46$im)), $MachinePrecision]}, Block[{t$95$2 = N[(N[(N[(y$46$re * N[(x$46$im / y$46$im), $MachinePrecision]), $MachinePrecision] - x$46$re), $MachinePrecision] / y$46$im), $MachinePrecision]}, Block[{t$95$3 = N[(x$46$im * N[(y$46$re / y$46$im), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[(N[(t$95$3 - x$46$re), $MachinePrecision] / y$46$im), $MachinePrecision]}, Block[{t$95$5 = N[(x$46$im * N[(N[(y$46$re / y$46$im), $MachinePrecision] / y$46$im), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$6 = N[(N[(x$46$im - N[(x$46$re * N[(y$46$im / y$46$re), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y$46$re), $MachinePrecision]}, Block[{t$95$7 = N[(N[(x$46$im - N[(y$46$im * N[(x$46$re / y$46$re), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y$46$re), $MachinePrecision]}, If[LessEqual[y$46$im, -5.1e+107], t$95$2, If[LessEqual[y$46$im, -1.35e+83], t$95$6, If[LessEqual[y$46$im, -5.2e+72], t$95$4, If[LessEqual[y$46$im, -4.2e+60], t$95$0, If[LessEqual[y$46$im, -1.85e+53], t$95$1, If[LessEqual[y$46$im, -1.05e+40], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -3.1e+35], t$95$1, If[LessEqual[y$46$im, -5.8e+26], t$95$6, If[LessEqual[y$46$im, -200000.0], t$95$2, If[LessEqual[y$46$im, -225.0], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -28.0], t$95$1, If[LessEqual[y$46$im, -4.2e-5], t$95$6, If[LessEqual[y$46$im, -1.4e-14], t$95$1, If[LessEqual[y$46$im, -9.5e-28], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1e-33], t$95$4, If[LessEqual[y$46$im, -6.2e-39], t$95$6, If[LessEqual[y$46$im, -6e-39], t$95$5, If[LessEqual[y$46$im, -1.3e-84], t$95$6, If[LessEqual[y$46$im, -1.25e-84], t$95$5, If[LessEqual[y$46$im, -1.44e-92], t$95$6, If[LessEqual[y$46$im, -1.4e-92], t$95$1, If[LessEqual[y$46$im, -1.5e-95], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -1.45e-95], t$95$1, If[LessEqual[y$46$im, -3.6e-133], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, -3.5e-133], N[(t$95$3 / y$46$im), $MachinePrecision], If[LessEqual[y$46$im, -1.6e-172], t$95$0, If[LessEqual[y$46$im, -1.55e-172], t$95$1, If[LessEqual[y$46$im, -2e-209], t$95$7, If[LessEqual[y$46$im, 1e-287], t$95$0, If[LessEqual[y$46$im, 1.2e-194], t$95$7, If[LessEqual[y$46$im, 1.25e-194], t$95$1, If[LessEqual[y$46$im, 2.1e-143], t$95$6, If[LessEqual[y$46$im, 2.2e-143], t$95$1, If[LessEqual[y$46$im, 1.1e-85], t$95$7, If[LessEqual[y$46$im, 1.15e-85], t$95$1, If[LessEqual[y$46$im, 9.5e-52], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 5.2e-34], t$95$1, If[LessEqual[y$46$im, 26000000.0], t$95$0, If[LessEqual[y$46$im, 1.6e+17], t$95$1, If[LessEqual[y$46$im, 2.8e+18], t$95$6, If[LessEqual[y$46$im, 7.2e+20], t$95$1, If[LessEqual[y$46$im, 2.45e+22], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 7e+24], t$95$1, If[LessEqual[y$46$im, 1.7e+43], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 2.3e+60], t$95$1, If[LessEqual[y$46$im, 8e+76], t$95$6, If[LessEqual[y$46$im, 1.32e+82], t$95$1, If[LessEqual[y$46$im, 1.4e+82], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 1.2e+100], t$95$4, If[LessEqual[y$46$im, 4e+103], t$95$7, If[LessEqual[y$46$im, 1.8e+143], t$95$4, If[LessEqual[y$46$im, 6e+147], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$im, 1.3e+174], t$95$1, If[LessEqual[y$46$im, 1.25e+175], t$95$6, If[LessEqual[y$46$im, 4.7e+235], t$95$1, If[LessEqual[y$46$im, 7.8e+241], t$95$6, If[LessEqual[y$46$im, 1.9e+271], t$95$4, If[LessEqual[y$46$im, 1.95e+271], t$95$6, If[LessEqual[y$46$im, 5.8e+297], t$95$1, N[(N[(y$46$re / y$46$im), $MachinePrecision] * N[(x$46$im / y$46$im), $MachinePrecision]), $MachinePrecision]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\
t_1 := \frac{x.re}{-y.im}\\
t_2 := \frac{y.re \cdot \frac{x.im}{y.im} - x.re}{y.im}\\
t_3 := x.im \cdot \frac{y.re}{y.im}\\
t_4 := \frac{t\_3 - x.re}{y.im}\\
t_5 := x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\
t_6 := \frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\
t_7 := \frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\
\mathbf{if}\;y.im \leq -5.1 \cdot 10^{+107}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq -1.35 \cdot 10^{+83}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.im \leq -5.2 \cdot 10^{+72}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;y.im \leq -4.2 \cdot 10^{+60}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq -1.85 \cdot 10^{+53}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -1.05 \cdot 10^{+40}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -3.1 \cdot 10^{+35}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -5.8 \cdot 10^{+26}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.im \leq -200000:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;y.im \leq -225:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -28:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -4.2 \cdot 10^{-5}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.im \leq -1.4 \cdot 10^{-14}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -9.5 \cdot 10^{-28}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1 \cdot 10^{-33}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;y.im \leq -6.2 \cdot 10^{-39}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.im \leq -6 \cdot 10^{-39}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.im \leq -1.3 \cdot 10^{-84}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.im \leq -1.25 \cdot 10^{-84}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.im \leq -1.44 \cdot 10^{-92}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.im \leq -1.4 \cdot 10^{-92}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -1.5 \cdot 10^{-95}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -1.45 \cdot 10^{-95}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -3.6 \cdot 10^{-133}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq -3.5 \cdot 10^{-133}:\\
\;\;\;\;\frac{t\_3}{y.im}\\

\mathbf{elif}\;y.im \leq -1.6 \cdot 10^{-172}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-172}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq -2 \cdot 10^{-209}:\\
\;\;\;\;t\_7\\

\mathbf{elif}\;y.im \leq 10^{-287}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq 1.2 \cdot 10^{-194}:\\
\;\;\;\;t\_7\\

\mathbf{elif}\;y.im \leq 1.25 \cdot 10^{-194}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 2.1 \cdot 10^{-143}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.im \leq 2.2 \cdot 10^{-143}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.1 \cdot 10^{-85}:\\
\;\;\;\;t\_7\\

\mathbf{elif}\;y.im \leq 1.15 \cdot 10^{-85}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 9.5 \cdot 10^{-52}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 5.2 \cdot 10^{-34}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 26000000:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;y.im \leq 1.6 \cdot 10^{+17}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 2.8 \cdot 10^{+18}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.im \leq 7.2 \cdot 10^{+20}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 2.45 \cdot 10^{+22}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 7 \cdot 10^{+24}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.7 \cdot 10^{+43}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 2.3 \cdot 10^{+60}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 8 \cdot 10^{+76}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.im \leq 1.32 \cdot 10^{+82}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.4 \cdot 10^{+82}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 1.2 \cdot 10^{+100}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;y.im \leq 4 \cdot 10^{+103}:\\
\;\;\;\;t\_7\\

\mathbf{elif}\;y.im \leq 1.8 \cdot 10^{+143}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;y.im \leq 6 \cdot 10^{+147}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 1.3 \cdot 10^{+174}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 1.25 \cdot 10^{+175}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.im \leq 4.7 \cdot 10^{+235}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+241}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.im \leq 1.9 \cdot 10^{+271}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;y.im \leq 1.95 \cdot 10^{+271}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.im \leq 5.8 \cdot 10^{+297}:\\
\;\;\;\;t\_1\\

\mathbf{else}:\\
\;\;\;\;\frac{y.re}{y.im} \cdot \frac{x.im}{y.im}\\


\end{array}
\end{array}
Derivation
  1. Split input into 10 regimes
  2. if y.im < -5.1000000000000002e107 or -5.8e26 < y.im < -2e5

    1. Initial program 37.9%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around 0 75.0%

      \[\leadsto \color{blue}{-1 \cdot \frac{x.re}{y.im} + \frac{x.im \cdot y.re}{{y.im}^{2}}} \]
    4. Step-by-step derivation
      1. +-commutative75.0%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{{y.im}^{2}} + -1 \cdot \frac{x.re}{y.im}} \]
      2. mul-1-neg75.0%

        \[\leadsto \frac{x.im \cdot y.re}{{y.im}^{2}} + \color{blue}{\left(-\frac{x.re}{y.im}\right)} \]
      3. unsub-neg75.0%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{{y.im}^{2}} - \frac{x.re}{y.im}} \]
      4. unpow275.0%

        \[\leadsto \frac{x.im \cdot y.re}{\color{blue}{y.im \cdot y.im}} - \frac{x.re}{y.im} \]
      5. associate-/r*82.2%

        \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im}}{y.im}} - \frac{x.re}{y.im} \]
      6. div-sub82.2%

        \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
      7. *-commutative82.2%

        \[\leadsto \frac{\frac{\color{blue}{y.re \cdot x.im}}{y.im} - x.re}{y.im} \]
      8. associate-/l*90.6%

        \[\leadsto \frac{\color{blue}{y.re \cdot \frac{x.im}{y.im}} - x.re}{y.im} \]
    5. Simplified90.6%

      \[\leadsto \color{blue}{\frac{y.re \cdot \frac{x.im}{y.im} - x.re}{y.im}} \]

    if -5.1000000000000002e107 < y.im < -1.35000000000000003e83 or -3.09999999999999987e35 < y.im < -5.8e26 or -28 < y.im < -4.19999999999999977e-5 or -1.0000000000000001e-33 < y.im < -6.1999999999999994e-39 or -6.00000000000000055e-39 < y.im < -1.3e-84 or -1.25e-84 < y.im < -1.4400000000000001e-92 or 1.2500000000000001e-194 < y.im < 2.1000000000000001e-143 or 1.6e17 < y.im < 2.8e18 or 2.30000000000000017e60 < y.im < 8.0000000000000004e76 or 1.2999999999999999e174 < y.im < 1.25e175 or 4.6999999999999999e235 < y.im < 7.80000000000000052e241 or 1.8999999999999999e271 < y.im < 1.95e271

    1. Initial program 61.4%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around inf 93.2%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    4. Step-by-step derivation
      1. remove-double-neg93.2%

        \[\leadsto \frac{\color{blue}{\left(-\left(-x.im\right)\right)} + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      2. mul-1-neg93.2%

        \[\leadsto \frac{\left(-\color{blue}{-1 \cdot x.im}\right) + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      3. neg-mul-193.2%

        \[\leadsto \frac{\color{blue}{-1 \cdot \left(-1 \cdot x.im\right)} + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      4. distribute-lft-in93.2%

        \[\leadsto \frac{\color{blue}{-1 \cdot \left(-1 \cdot x.im + \frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      5. mul-1-neg93.2%

        \[\leadsto \frac{\color{blue}{-\left(-1 \cdot x.im + \frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      6. distribute-neg-in93.2%

        \[\leadsto \frac{\color{blue}{\left(--1 \cdot x.im\right) + \left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      7. mul-1-neg93.2%

        \[\leadsto \frac{\left(-\color{blue}{\left(-x.im\right)}\right) + \left(-\frac{x.re \cdot y.im}{y.re}\right)}{y.re} \]
      8. remove-double-neg93.2%

        \[\leadsto \frac{\color{blue}{x.im} + \left(-\frac{x.re \cdot y.im}{y.re}\right)}{y.re} \]
      9. unsub-neg93.2%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      10. associate-/l*100.0%

        \[\leadsto \frac{x.im - \color{blue}{x.re \cdot \frac{y.im}{y.re}}}{y.re} \]
    5. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}} \]

    if -1.35000000000000003e83 < y.im < -5.19999999999999963e72 or -9.50000000000000001e-28 < y.im < -1.0000000000000001e-33 or 1.4e82 < y.im < 1.20000000000000006e100 or 4e103 < y.im < 1.8e143 or 7.80000000000000052e241 < y.im < 1.8999999999999999e271

    1. Initial program 62.9%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub62.9%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative62.9%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt62.9%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac67.5%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg67.5%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define67.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define67.7%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*86.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt86.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow286.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define86.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr86.4%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 90.7%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]

    if -5.19999999999999963e72 < y.im < -4.2000000000000002e60 or -3.50000000000000003e-133 < y.im < -1.6000000000000001e-172 or -2.0000000000000001e-209 < y.im < 1.00000000000000002e-287 or 5.1999999999999999e-34 < y.im < 2.6e7

    1. Initial program 68.4%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub64.3%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative64.3%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt64.3%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac70.1%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg70.1%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define70.1%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define85.9%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*85.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt85.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow285.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define85.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr85.8%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 100.0%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg100.0%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg100.0%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative100.0%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]

    if -4.2000000000000002e60 < y.im < -1.85e53 or -1.05000000000000005e40 < y.im < -3.09999999999999987e35 or -225 < y.im < -28 or -4.19999999999999977e-5 < y.im < -1.4e-14 or -1.4400000000000001e-92 < y.im < -1.4e-92 or -1.5e-95 < y.im < -1.45000000000000001e-95 or -1.6000000000000001e-172 < y.im < -1.5500000000000001e-172 or 1.2e-194 < y.im < 1.2500000000000001e-194 or 2.1000000000000001e-143 < y.im < 2.19999999999999989e-143 or 1.1e-85 < y.im < 1.15e-85 or 9.50000000000000007e-52 < y.im < 5.1999999999999999e-34 or 2.6e7 < y.im < 1.6e17 or 2.8e18 < y.im < 7.2e20 or 2.4499999999999999e22 < y.im < 7.0000000000000004e24 or 1.70000000000000006e43 < y.im < 2.30000000000000017e60 or 8.0000000000000004e76 < y.im < 1.32e82 or 5.99999999999999987e147 < y.im < 1.2999999999999999e174 or 1.25e175 < y.im < 4.6999999999999999e235 or 1.95e271 < y.im < 5.8000000000000005e297

    1. Initial program 70.5%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around 0 100.0%

      \[\leadsto \color{blue}{-1 \cdot \frac{x.re}{y.im}} \]
    4. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \color{blue}{\frac{-1 \cdot x.re}{y.im}} \]
      2. neg-mul-1100.0%

        \[\leadsto \frac{\color{blue}{-x.re}}{y.im} \]
    5. Simplified100.0%

      \[\leadsto \color{blue}{\frac{-x.re}{y.im}} \]

    if -1.85e53 < y.im < -1.05000000000000005e40 or -2e5 < y.im < -225 or -1.4e-14 < y.im < -9.50000000000000001e-28 or -1.4e-92 < y.im < -1.5e-95 or -1.45000000000000001e-95 < y.im < -3.6000000000000004e-133 or 1.15e-85 < y.im < 9.50000000000000007e-52 or 7.2e20 < y.im < 2.4499999999999999e22 or 7.0000000000000004e24 < y.im < 1.70000000000000006e43 or 1.32e82 < y.im < 1.4e82 or 1.8e143 < y.im < 5.99999999999999987e147

    1. Initial program 53.6%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around inf 100.0%

      \[\leadsto \color{blue}{\frac{x.im}{y.re}} \]

    if -6.1999999999999994e-39 < y.im < -6.00000000000000055e-39 or -1.3e-84 < y.im < -1.25e-84

    1. Initial program 99.2%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub99.2%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative99.2%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt99.2%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac99.2%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg99.2%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define99.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define99.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*99.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt99.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow299.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define99.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr99.2%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 99.2%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/99.2%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified99.2%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 99.2%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/99.2%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified99.2%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    11. Step-by-step derivation
      1. associate-/l*100.0%

        \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]
    12. Applied egg-rr100.0%

      \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]

    if -3.6000000000000004e-133 < y.im < -3.50000000000000003e-133

    1. Initial program 100.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub100.0%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative100.0%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt100.0%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac7.8%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg7.8%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define7.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define7.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*7.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt7.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow27.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define7.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr7.8%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 100.0%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 100.0%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified100.0%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]

    if -1.5500000000000001e-172 < y.im < -2.0000000000000001e-209 or 1.00000000000000002e-287 < y.im < 1.2e-194 or 2.19999999999999989e-143 < y.im < 1.1e-85 or 1.20000000000000006e100 < y.im < 4e103

    1. Initial program 56.5%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub52.7%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative52.7%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt52.7%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac53.4%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg53.4%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define53.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define87.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*87.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt87.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow287.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define87.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr87.3%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 93.3%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg93.3%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg93.3%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative93.3%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified93.3%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]
    8. Step-by-step derivation
      1. associate-/l*99.9%

        \[\leadsto \frac{x.im - \color{blue}{y.im \cdot \frac{x.re}{y.re}}}{y.re} \]
    9. Applied egg-rr99.9%

      \[\leadsto \frac{x.im - \color{blue}{y.im \cdot \frac{x.re}{y.re}}}{y.re} \]

    if 5.8000000000000005e297 < y.im

    1. Initial program 54.8%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub54.8%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative54.8%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt54.8%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac54.8%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg54.8%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define54.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow2100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 99.2%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/99.2%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified99.2%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 99.2%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/99.2%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified99.2%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    11. Step-by-step derivation
      1. *-commutative99.2%

        \[\leadsto \frac{\color{blue}{\frac{y.re}{y.im} \cdot x.im}}{y.im} \]
      2. *-un-lft-identity99.2%

        \[\leadsto \frac{\frac{y.re}{y.im} \cdot x.im}{\color{blue}{1 \cdot y.im}} \]
      3. times-frac100.0%

        \[\leadsto \color{blue}{\frac{\frac{y.re}{y.im}}{1} \cdot \frac{x.im}{y.im}} \]
    12. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\frac{\frac{y.re}{y.im}}{1} \cdot \frac{x.im}{y.im}} \]
  3. Recombined 10 regimes into one program.
  4. Final simplification98.5%

    \[\leadsto \begin{array}{l} \mathbf{if}\;y.im \leq -5.1 \cdot 10^{+107}:\\ \;\;\;\;\frac{y.re \cdot \frac{x.im}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.im \leq -1.35 \cdot 10^{+83}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -5.2 \cdot 10^{+72}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.im \leq -4.2 \cdot 10^{+60}:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -1.85 \cdot 10^{+53}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.05 \cdot 10^{+40}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -3.1 \cdot 10^{+35}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -5.8 \cdot 10^{+26}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -200000:\\ \;\;\;\;\frac{y.re \cdot \frac{x.im}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.im \leq -225:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -28:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -4.2 \cdot 10^{-5}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -1.4 \cdot 10^{-14}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -9.5 \cdot 10^{-28}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1 \cdot 10^{-33}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.im \leq -6.2 \cdot 10^{-39}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -6 \cdot 10^{-39}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq -1.3 \cdot 10^{-84}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -1.25 \cdot 10^{-84}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq -1.44 \cdot 10^{-92}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -1.4 \cdot 10^{-92}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -1.5 \cdot 10^{-95}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -1.45 \cdot 10^{-95}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -3.6 \cdot 10^{-133}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq -3.5 \cdot 10^{-133}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.im \leq -1.6 \cdot 10^{-172}:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq -1.55 \cdot 10^{-172}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq -2 \cdot 10^{-209}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 10^{-287}:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.2 \cdot 10^{-194}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{-194}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.1 \cdot 10^{-143}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 2.2 \cdot 10^{-143}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.1 \cdot 10^{-85}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.15 \cdot 10^{-85}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 9.5 \cdot 10^{-52}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 5.2 \cdot 10^{-34}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 26000000:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.6 \cdot 10^{+17}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.8 \cdot 10^{+18}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 7.2 \cdot 10^{+20}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 2.45 \cdot 10^{+22}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 7 \cdot 10^{+24}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.7 \cdot 10^{+43}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 2.3 \cdot 10^{+60}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 8 \cdot 10^{+76}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.32 \cdot 10^{+82}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.4 \cdot 10^{+82}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.2 \cdot 10^{+100}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.im \leq 4 \cdot 10^{+103}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.8 \cdot 10^{+143}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.im \leq 6 \cdot 10^{+147}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 1.3 \cdot 10^{+174}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 1.25 \cdot 10^{+175}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 4.7 \cdot 10^{+235}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.im \leq 7.8 \cdot 10^{+241}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 1.9 \cdot 10^{+271}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.im \leq 1.95 \cdot 10^{+271}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.im \leq 5.8 \cdot 10^{+297}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{else}:\\ \;\;\;\;\frac{y.re}{y.im} \cdot \frac{x.im}{y.im}\\ \end{array} \]
  5. Add Preprocessing

Alternative 17: 69.8% accurate, 0.1× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := x.im - x.re \cdot \frac{y.im}{y.re}\\ t_1 := \frac{x.re}{-y.im}\\ t_2 := x.im \cdot \frac{y.re}{y.im}\\ t_3 := \frac{t\_2 - x.re}{y.im}\\ t_4 := \frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ t_5 := \frac{t\_0}{y.re}\\ t_6 := x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ t_7 := y.im \cdot \frac{x.re}{y.re}\\ t_8 := \frac{x.im - t\_7}{y.re}\\ t_9 := \frac{y.re \cdot x.im}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{if}\;y.re \leq -6.2 \cdot 10^{-51}:\\ \;\;\;\;t\_8\\ \mathbf{elif}\;y.re \leq -1.6 \cdot 10^{-76}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.re \leq -4.5 \cdot 10^{-77}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.re \leq -4.6 \cdot 10^{-81}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.re \leq -4.5 \cdot 10^{-81}:\\ \;\;\;\;t\_8\\ \mathbf{elif}\;y.re \leq -3.5 \cdot 10^{-101}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.re \leq -3.3 \cdot 10^{-101}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.re \leq -1.5 \cdot 10^{-103}:\\ \;\;\;\;t\_9\\ \mathbf{elif}\;y.re \leq -1.55 \cdot 10^{-170}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.re \leq -1.5 \cdot 10^{-170}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.re \leq -7 \cdot 10^{-194}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.re \leq -1.45 \cdot 10^{-198}:\\ \;\;\;\;t\_8\\ \mathbf{elif}\;y.re \leq 2.15 \cdot 10^{-284}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.re \leq 2.2 \cdot 10^{-284}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.re \leq 2.25 \cdot 10^{-263}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.re \leq 2.3 \cdot 10^{-263}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.re \leq 1.3 \cdot 10^{-210}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.re \leq 6 \cdot 10^{-210}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;y.re \leq 7.5 \cdot 10^{-210}:\\ \;\;\;\;\frac{x.im}{y.re} - \frac{t\_7}{y.re}\\ \mathbf{elif}\;y.re \leq 2.5 \cdot 10^{-187}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.re \leq 2.5 \cdot 10^{-183}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.re \leq 3 \cdot 10^{-172}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.re \leq 8.4 \cdot 10^{-150}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.re \leq 2.05 \cdot 10^{-137}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.re \leq 2.1 \cdot 10^{-137}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.re \leq 7.2 \cdot 10^{-123}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;y.re \leq 9 \cdot 10^{-123}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.re \leq 5 \cdot 10^{-103}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.re \leq 3.7 \cdot 10^{-96}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.re \leq 2.5 \cdot 10^{-85}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.re \leq 4.1 \cdot 10^{-72}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.re \leq 4.5 \cdot 10^{-51}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.re \leq 2.2 \cdot 10^{-41}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.re \leq 1.45 \cdot 10^{-26}:\\ \;\;\;\;t\_9\\ \mathbf{elif}\;y.re \leq 225000000:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;y.re \leq 6.2 \cdot 10^{+19}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.re \leq 2.7 \cdot 10^{+37}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.re \leq 3.95 \cdot 10^{+37}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.re \leq 1.2 \cdot 10^{+57}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.re \leq 4.8 \cdot 10^{+57}:\\ \;\;\;\;\frac{y.re \cdot \frac{x.im}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.re \leq 1.6 \cdot 10^{+78}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.re \leq 1.62 \cdot 10^{+78}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.re \leq 5.5 \cdot 10^{+101}:\\ \;\;\;\;\frac{1}{\frac{y.re}{t\_0}}\\ \mathbf{elif}\;y.re \leq 3.5 \cdot 10^{+117}:\\ \;\;\;\;t\_9\\ \mathbf{elif}\;y.re \leq 3.6 \cdot 10^{+117}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.re \leq 2 \cdot 10^{+136}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.re \leq 2.02 \cdot 10^{+136}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.re \leq 2.1 \cdot 10^{+163}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.re \leq 2.15 \cdot 10^{+163}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.re \leq 2.7 \cdot 10^{+171}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;y.re \leq 2.8 \cdot 10^{+171}:\\ \;\;\;\;\frac{t\_2}{y.im}\\ \mathbf{elif}\;y.re \leq 2.2 \cdot 10^{+198}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.re \leq 2.3 \cdot 10^{+198}:\\ \;\;\;\;\frac{y.re}{y.im} \cdot \frac{x.im}{y.im}\\ \mathbf{elif}\;y.re \leq 2.9 \cdot 10^{+207}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.re \leq 3 \cdot 10^{+207}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.re \leq 2.35 \cdot 10^{+224}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.re \leq 2.4 \cdot 10^{+224}:\\ \;\;\;\;t\_6\\ \mathbf{else}:\\ \;\;\;\;t\_8\\ \end{array} \end{array} \]
(FPCore (x.re x.im y.re y.im)
 :precision binary64
 (let* ((t_0 (- x.im (* x.re (/ y.im y.re))))
        (t_1 (/ x.re (- y.im)))
        (t_2 (* x.im (/ y.re y.im)))
        (t_3 (/ (- t_2 x.re) y.im))
        (t_4 (/ (- x.im (/ (* y.im x.re) y.re)) y.re))
        (t_5 (/ t_0 y.re))
        (t_6 (* x.im (/ (/ y.re y.im) y.im)))
        (t_7 (* y.im (/ x.re y.re)))
        (t_8 (/ (- x.im t_7) y.re))
        (t_9 (/ (* y.re x.im) (+ (* y.re y.re) (* y.im y.im)))))
   (if (<= y.re -6.2e-51)
     t_8
     (if (<= y.re -1.6e-76)
       t_3
       (if (<= y.re -4.5e-77)
         (/ x.im y.re)
         (if (<= y.re -4.6e-81)
           t_1
           (if (<= y.re -4.5e-81)
             t_8
             (if (<= y.re -3.5e-101)
               t_3
               (if (<= y.re -3.3e-101)
                 (/ x.im y.re)
                 (if (<= y.re -1.5e-103)
                   t_9
                   (if (<= y.re -1.55e-170)
                     t_3
                     (if (<= y.re -1.5e-170)
                       t_5
                       (if (<= y.re -7e-194)
                         t_1
                         (if (<= y.re -1.45e-198)
                           t_8
                           (if (<= y.re 2.15e-284)
                             t_1
                             (if (<= y.re 2.2e-284)
                               t_6
                               (if (<= y.re 2.25e-263)
                                 t_3
                                 (if (<= y.re 2.3e-263)
                                   (/ x.im y.re)
                                   (if (<= y.re 1.3e-210)
                                     t_1
                                     (if (<= y.re 6e-210)
                                       t_4
                                       (if (<= y.re 7.5e-210)
                                         (- (/ x.im y.re) (/ t_7 y.re))
                                         (if (<= y.re 2.5e-187)
                                           t_3
                                           (if (<= y.re 2.5e-183)
                                             t_5
                                             (if (<= y.re 3e-172)
                                               t_1
                                               (if (<= y.re 8.4e-150)
                                                 (/ x.im y.re)
                                                 (if (<= y.re 2.05e-137)
                                                   t_1
                                                   (if (<= y.re 2.1e-137)
                                                     t_5
                                                     (if (<= y.re 7.2e-123)
                                                       t_3
                                                       (if (<= y.re 9e-123)
                                                         t_5
                                                         (if (<= y.re 5e-103)
                                                           t_1
                                                           (if (<=
                                                                y.re
                                                                3.7e-96)
                                                             t_5
                                                             (if (<=
                                                                  y.re
                                                                  2.5e-85)
                                                               t_1
                                                               (if (<=
                                                                    y.re
                                                                    4.1e-72)
                                                                 t_5
                                                                 (if (<=
                                                                      y.re
                                                                      4.5e-51)
                                                                   t_1
                                                                   (if (<=
                                                                        y.re
                                                                        2.2e-41)
                                                                     t_5
                                                                     (if (<=
                                                                          y.re
                                                                          1.45e-26)
                                                                       t_9
                                                                       (if (<=
                                                                            y.re
                                                                            225000000.0)
                                                                         t_4
                                                                         (if (<=
                                                                              y.re
                                                                              6.2e+19)
                                                                           t_1
                                                                           (if (<=
                                                                                y.re
                                                                                2.7e+37)
                                                                             (/
                                                                              x.im
                                                                              y.re)
                                                                             (if (<=
                                                                                  y.re
                                                                                  3.95e+37)
                                                                               t_1
                                                                               (if (<=
                                                                                    y.re
                                                                                    1.2e+57)
                                                                                 t_5
                                                                                 (if (<=
                                                                                      y.re
                                                                                      4.8e+57)
                                                                                   (/
                                                                                    (-
                                                                                     (*
                                                                                      y.re
                                                                                      (/
                                                                                       x.im
                                                                                       y.im))
                                                                                     x.re)
                                                                                    y.im)
                                                                                   (if (<=
                                                                                        y.re
                                                                                        1.6e+78)
                                                                                     (/
                                                                                      x.im
                                                                                      y.re)
                                                                                     (if (<=
                                                                                          y.re
                                                                                          1.62e+78)
                                                                                       t_6
                                                                                       (if (<=
                                                                                            y.re
                                                                                            5.5e+101)
                                                                                         (/
                                                                                          1.0
                                                                                          (/
                                                                                           y.re
                                                                                           t_0))
                                                                                         (if (<=
                                                                                              y.re
                                                                                              3.5e+117)
                                                                                           t_9
                                                                                           (if (<=
                                                                                                y.re
                                                                                                3.6e+117)
                                                                                             t_1
                                                                                             (if (<=
                                                                                                  y.re
                                                                                                  2e+136)
                                                                                               t_5
                                                                                               (if (<=
                                                                                                    y.re
                                                                                                    2.02e+136)
                                                                                                 t_1
                                                                                                 (if (<=
                                                                                                      y.re
                                                                                                      2.1e+163)
                                                                                                   t_5
                                                                                                   (if (<=
                                                                                                        y.re
                                                                                                        2.15e+163)
                                                                                                     t_1
                                                                                                     (if (<=
                                                                                                          y.re
                                                                                                          2.7e+171)
                                                                                                       t_4
                                                                                                       (if (<=
                                                                                                            y.re
                                                                                                            2.8e+171)
                                                                                                         (/
                                                                                                          t_2
                                                                                                          y.im)
                                                                                                         (if (<=
                                                                                                              y.re
                                                                                                              2.2e+198)
                                                                                                           t_5
                                                                                                           (if (<=
                                                                                                                y.re
                                                                                                                2.3e+198)
                                                                                                             (*
                                                                                                              (/
                                                                                                               y.re
                                                                                                               y.im)
                                                                                                              (/
                                                                                                               x.im
                                                                                                               y.im))
                                                                                                             (if (<=
                                                                                                                  y.re
                                                                                                                  2.9e+207)
                                                                                                               t_5
                                                                                                               (if (<=
                                                                                                                    y.re
                                                                                                                    3e+207)
                                                                                                                 t_6
                                                                                                                 (if (<=
                                                                                                                      y.re
                                                                                                                      2.35e+224)
                                                                                                                   (/
                                                                                                                    x.im
                                                                                                                    y.re)
                                                                                                                   (if (<=
                                                                                                                        y.re
                                                                                                                        2.4e+224)
                                                                                                                     t_6
                                                                                                                     t_8)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double t_0 = x_46_im - (x_46_re * (y_46_im / y_46_re));
	double t_1 = x_46_re / -y_46_im;
	double t_2 = x_46_im * (y_46_re / y_46_im);
	double t_3 = (t_2 - x_46_re) / y_46_im;
	double t_4 = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re;
	double t_5 = t_0 / y_46_re;
	double t_6 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	double t_7 = y_46_im * (x_46_re / y_46_re);
	double t_8 = (x_46_im - t_7) / y_46_re;
	double t_9 = (y_46_re * x_46_im) / ((y_46_re * y_46_re) + (y_46_im * y_46_im));
	double tmp;
	if (y_46_re <= -6.2e-51) {
		tmp = t_8;
	} else if (y_46_re <= -1.6e-76) {
		tmp = t_3;
	} else if (y_46_re <= -4.5e-77) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_re <= -4.6e-81) {
		tmp = t_1;
	} else if (y_46_re <= -4.5e-81) {
		tmp = t_8;
	} else if (y_46_re <= -3.5e-101) {
		tmp = t_3;
	} else if (y_46_re <= -3.3e-101) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_re <= -1.5e-103) {
		tmp = t_9;
	} else if (y_46_re <= -1.55e-170) {
		tmp = t_3;
	} else if (y_46_re <= -1.5e-170) {
		tmp = t_5;
	} else if (y_46_re <= -7e-194) {
		tmp = t_1;
	} else if (y_46_re <= -1.45e-198) {
		tmp = t_8;
	} else if (y_46_re <= 2.15e-284) {
		tmp = t_1;
	} else if (y_46_re <= 2.2e-284) {
		tmp = t_6;
	} else if (y_46_re <= 2.25e-263) {
		tmp = t_3;
	} else if (y_46_re <= 2.3e-263) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_re <= 1.3e-210) {
		tmp = t_1;
	} else if (y_46_re <= 6e-210) {
		tmp = t_4;
	} else if (y_46_re <= 7.5e-210) {
		tmp = (x_46_im / y_46_re) - (t_7 / y_46_re);
	} else if (y_46_re <= 2.5e-187) {
		tmp = t_3;
	} else if (y_46_re <= 2.5e-183) {
		tmp = t_5;
	} else if (y_46_re <= 3e-172) {
		tmp = t_1;
	} else if (y_46_re <= 8.4e-150) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_re <= 2.05e-137) {
		tmp = t_1;
	} else if (y_46_re <= 2.1e-137) {
		tmp = t_5;
	} else if (y_46_re <= 7.2e-123) {
		tmp = t_3;
	} else if (y_46_re <= 9e-123) {
		tmp = t_5;
	} else if (y_46_re <= 5e-103) {
		tmp = t_1;
	} else if (y_46_re <= 3.7e-96) {
		tmp = t_5;
	} else if (y_46_re <= 2.5e-85) {
		tmp = t_1;
	} else if (y_46_re <= 4.1e-72) {
		tmp = t_5;
	} else if (y_46_re <= 4.5e-51) {
		tmp = t_1;
	} else if (y_46_re <= 2.2e-41) {
		tmp = t_5;
	} else if (y_46_re <= 1.45e-26) {
		tmp = t_9;
	} else if (y_46_re <= 225000000.0) {
		tmp = t_4;
	} else if (y_46_re <= 6.2e+19) {
		tmp = t_1;
	} else if (y_46_re <= 2.7e+37) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_re <= 3.95e+37) {
		tmp = t_1;
	} else if (y_46_re <= 1.2e+57) {
		tmp = t_5;
	} else if (y_46_re <= 4.8e+57) {
		tmp = ((y_46_re * (x_46_im / y_46_im)) - x_46_re) / y_46_im;
	} else if (y_46_re <= 1.6e+78) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_re <= 1.62e+78) {
		tmp = t_6;
	} else if (y_46_re <= 5.5e+101) {
		tmp = 1.0 / (y_46_re / t_0);
	} else if (y_46_re <= 3.5e+117) {
		tmp = t_9;
	} else if (y_46_re <= 3.6e+117) {
		tmp = t_1;
	} else if (y_46_re <= 2e+136) {
		tmp = t_5;
	} else if (y_46_re <= 2.02e+136) {
		tmp = t_1;
	} else if (y_46_re <= 2.1e+163) {
		tmp = t_5;
	} else if (y_46_re <= 2.15e+163) {
		tmp = t_1;
	} else if (y_46_re <= 2.7e+171) {
		tmp = t_4;
	} else if (y_46_re <= 2.8e+171) {
		tmp = t_2 / y_46_im;
	} else if (y_46_re <= 2.2e+198) {
		tmp = t_5;
	} else if (y_46_re <= 2.3e+198) {
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im);
	} else if (y_46_re <= 2.9e+207) {
		tmp = t_5;
	} else if (y_46_re <= 3e+207) {
		tmp = t_6;
	} else if (y_46_re <= 2.35e+224) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_re <= 2.4e+224) {
		tmp = t_6;
	} else {
		tmp = t_8;
	}
	return tmp;
}
real(8) function code(x_46re, x_46im, y_46re, y_46im)
    real(8), intent (in) :: x_46re
    real(8), intent (in) :: x_46im
    real(8), intent (in) :: y_46re
    real(8), intent (in) :: y_46im
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: t_2
    real(8) :: t_3
    real(8) :: t_4
    real(8) :: t_5
    real(8) :: t_6
    real(8) :: t_7
    real(8) :: t_8
    real(8) :: t_9
    real(8) :: tmp
    t_0 = x_46im - (x_46re * (y_46im / y_46re))
    t_1 = x_46re / -y_46im
    t_2 = x_46im * (y_46re / y_46im)
    t_3 = (t_2 - x_46re) / y_46im
    t_4 = (x_46im - ((y_46im * x_46re) / y_46re)) / y_46re
    t_5 = t_0 / y_46re
    t_6 = x_46im * ((y_46re / y_46im) / y_46im)
    t_7 = y_46im * (x_46re / y_46re)
    t_8 = (x_46im - t_7) / y_46re
    t_9 = (y_46re * x_46im) / ((y_46re * y_46re) + (y_46im * y_46im))
    if (y_46re <= (-6.2d-51)) then
        tmp = t_8
    else if (y_46re <= (-1.6d-76)) then
        tmp = t_3
    else if (y_46re <= (-4.5d-77)) then
        tmp = x_46im / y_46re
    else if (y_46re <= (-4.6d-81)) then
        tmp = t_1
    else if (y_46re <= (-4.5d-81)) then
        tmp = t_8
    else if (y_46re <= (-3.5d-101)) then
        tmp = t_3
    else if (y_46re <= (-3.3d-101)) then
        tmp = x_46im / y_46re
    else if (y_46re <= (-1.5d-103)) then
        tmp = t_9
    else if (y_46re <= (-1.55d-170)) then
        tmp = t_3
    else if (y_46re <= (-1.5d-170)) then
        tmp = t_5
    else if (y_46re <= (-7d-194)) then
        tmp = t_1
    else if (y_46re <= (-1.45d-198)) then
        tmp = t_8
    else if (y_46re <= 2.15d-284) then
        tmp = t_1
    else if (y_46re <= 2.2d-284) then
        tmp = t_6
    else if (y_46re <= 2.25d-263) then
        tmp = t_3
    else if (y_46re <= 2.3d-263) then
        tmp = x_46im / y_46re
    else if (y_46re <= 1.3d-210) then
        tmp = t_1
    else if (y_46re <= 6d-210) then
        tmp = t_4
    else if (y_46re <= 7.5d-210) then
        tmp = (x_46im / y_46re) - (t_7 / y_46re)
    else if (y_46re <= 2.5d-187) then
        tmp = t_3
    else if (y_46re <= 2.5d-183) then
        tmp = t_5
    else if (y_46re <= 3d-172) then
        tmp = t_1
    else if (y_46re <= 8.4d-150) then
        tmp = x_46im / y_46re
    else if (y_46re <= 2.05d-137) then
        tmp = t_1
    else if (y_46re <= 2.1d-137) then
        tmp = t_5
    else if (y_46re <= 7.2d-123) then
        tmp = t_3
    else if (y_46re <= 9d-123) then
        tmp = t_5
    else if (y_46re <= 5d-103) then
        tmp = t_1
    else if (y_46re <= 3.7d-96) then
        tmp = t_5
    else if (y_46re <= 2.5d-85) then
        tmp = t_1
    else if (y_46re <= 4.1d-72) then
        tmp = t_5
    else if (y_46re <= 4.5d-51) then
        tmp = t_1
    else if (y_46re <= 2.2d-41) then
        tmp = t_5
    else if (y_46re <= 1.45d-26) then
        tmp = t_9
    else if (y_46re <= 225000000.0d0) then
        tmp = t_4
    else if (y_46re <= 6.2d+19) then
        tmp = t_1
    else if (y_46re <= 2.7d+37) then
        tmp = x_46im / y_46re
    else if (y_46re <= 3.95d+37) then
        tmp = t_1
    else if (y_46re <= 1.2d+57) then
        tmp = t_5
    else if (y_46re <= 4.8d+57) then
        tmp = ((y_46re * (x_46im / y_46im)) - x_46re) / y_46im
    else if (y_46re <= 1.6d+78) then
        tmp = x_46im / y_46re
    else if (y_46re <= 1.62d+78) then
        tmp = t_6
    else if (y_46re <= 5.5d+101) then
        tmp = 1.0d0 / (y_46re / t_0)
    else if (y_46re <= 3.5d+117) then
        tmp = t_9
    else if (y_46re <= 3.6d+117) then
        tmp = t_1
    else if (y_46re <= 2d+136) then
        tmp = t_5
    else if (y_46re <= 2.02d+136) then
        tmp = t_1
    else if (y_46re <= 2.1d+163) then
        tmp = t_5
    else if (y_46re <= 2.15d+163) then
        tmp = t_1
    else if (y_46re <= 2.7d+171) then
        tmp = t_4
    else if (y_46re <= 2.8d+171) then
        tmp = t_2 / y_46im
    else if (y_46re <= 2.2d+198) then
        tmp = t_5
    else if (y_46re <= 2.3d+198) then
        tmp = (y_46re / y_46im) * (x_46im / y_46im)
    else if (y_46re <= 2.9d+207) then
        tmp = t_5
    else if (y_46re <= 3d+207) then
        tmp = t_6
    else if (y_46re <= 2.35d+224) then
        tmp = x_46im / y_46re
    else if (y_46re <= 2.4d+224) then
        tmp = t_6
    else
        tmp = t_8
    end if
    code = tmp
end function
public static double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double t_0 = x_46_im - (x_46_re * (y_46_im / y_46_re));
	double t_1 = x_46_re / -y_46_im;
	double t_2 = x_46_im * (y_46_re / y_46_im);
	double t_3 = (t_2 - x_46_re) / y_46_im;
	double t_4 = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re;
	double t_5 = t_0 / y_46_re;
	double t_6 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	double t_7 = y_46_im * (x_46_re / y_46_re);
	double t_8 = (x_46_im - t_7) / y_46_re;
	double t_9 = (y_46_re * x_46_im) / ((y_46_re * y_46_re) + (y_46_im * y_46_im));
	double tmp;
	if (y_46_re <= -6.2e-51) {
		tmp = t_8;
	} else if (y_46_re <= -1.6e-76) {
		tmp = t_3;
	} else if (y_46_re <= -4.5e-77) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_re <= -4.6e-81) {
		tmp = t_1;
	} else if (y_46_re <= -4.5e-81) {
		tmp = t_8;
	} else if (y_46_re <= -3.5e-101) {
		tmp = t_3;
	} else if (y_46_re <= -3.3e-101) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_re <= -1.5e-103) {
		tmp = t_9;
	} else if (y_46_re <= -1.55e-170) {
		tmp = t_3;
	} else if (y_46_re <= -1.5e-170) {
		tmp = t_5;
	} else if (y_46_re <= -7e-194) {
		tmp = t_1;
	} else if (y_46_re <= -1.45e-198) {
		tmp = t_8;
	} else if (y_46_re <= 2.15e-284) {
		tmp = t_1;
	} else if (y_46_re <= 2.2e-284) {
		tmp = t_6;
	} else if (y_46_re <= 2.25e-263) {
		tmp = t_3;
	} else if (y_46_re <= 2.3e-263) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_re <= 1.3e-210) {
		tmp = t_1;
	} else if (y_46_re <= 6e-210) {
		tmp = t_4;
	} else if (y_46_re <= 7.5e-210) {
		tmp = (x_46_im / y_46_re) - (t_7 / y_46_re);
	} else if (y_46_re <= 2.5e-187) {
		tmp = t_3;
	} else if (y_46_re <= 2.5e-183) {
		tmp = t_5;
	} else if (y_46_re <= 3e-172) {
		tmp = t_1;
	} else if (y_46_re <= 8.4e-150) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_re <= 2.05e-137) {
		tmp = t_1;
	} else if (y_46_re <= 2.1e-137) {
		tmp = t_5;
	} else if (y_46_re <= 7.2e-123) {
		tmp = t_3;
	} else if (y_46_re <= 9e-123) {
		tmp = t_5;
	} else if (y_46_re <= 5e-103) {
		tmp = t_1;
	} else if (y_46_re <= 3.7e-96) {
		tmp = t_5;
	} else if (y_46_re <= 2.5e-85) {
		tmp = t_1;
	} else if (y_46_re <= 4.1e-72) {
		tmp = t_5;
	} else if (y_46_re <= 4.5e-51) {
		tmp = t_1;
	} else if (y_46_re <= 2.2e-41) {
		tmp = t_5;
	} else if (y_46_re <= 1.45e-26) {
		tmp = t_9;
	} else if (y_46_re <= 225000000.0) {
		tmp = t_4;
	} else if (y_46_re <= 6.2e+19) {
		tmp = t_1;
	} else if (y_46_re <= 2.7e+37) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_re <= 3.95e+37) {
		tmp = t_1;
	} else if (y_46_re <= 1.2e+57) {
		tmp = t_5;
	} else if (y_46_re <= 4.8e+57) {
		tmp = ((y_46_re * (x_46_im / y_46_im)) - x_46_re) / y_46_im;
	} else if (y_46_re <= 1.6e+78) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_re <= 1.62e+78) {
		tmp = t_6;
	} else if (y_46_re <= 5.5e+101) {
		tmp = 1.0 / (y_46_re / t_0);
	} else if (y_46_re <= 3.5e+117) {
		tmp = t_9;
	} else if (y_46_re <= 3.6e+117) {
		tmp = t_1;
	} else if (y_46_re <= 2e+136) {
		tmp = t_5;
	} else if (y_46_re <= 2.02e+136) {
		tmp = t_1;
	} else if (y_46_re <= 2.1e+163) {
		tmp = t_5;
	} else if (y_46_re <= 2.15e+163) {
		tmp = t_1;
	} else if (y_46_re <= 2.7e+171) {
		tmp = t_4;
	} else if (y_46_re <= 2.8e+171) {
		tmp = t_2 / y_46_im;
	} else if (y_46_re <= 2.2e+198) {
		tmp = t_5;
	} else if (y_46_re <= 2.3e+198) {
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im);
	} else if (y_46_re <= 2.9e+207) {
		tmp = t_5;
	} else if (y_46_re <= 3e+207) {
		tmp = t_6;
	} else if (y_46_re <= 2.35e+224) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_re <= 2.4e+224) {
		tmp = t_6;
	} else {
		tmp = t_8;
	}
	return tmp;
}
def code(x_46_re, x_46_im, y_46_re, y_46_im):
	t_0 = x_46_im - (x_46_re * (y_46_im / y_46_re))
	t_1 = x_46_re / -y_46_im
	t_2 = x_46_im * (y_46_re / y_46_im)
	t_3 = (t_2 - x_46_re) / y_46_im
	t_4 = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re
	t_5 = t_0 / y_46_re
	t_6 = x_46_im * ((y_46_re / y_46_im) / y_46_im)
	t_7 = y_46_im * (x_46_re / y_46_re)
	t_8 = (x_46_im - t_7) / y_46_re
	t_9 = (y_46_re * x_46_im) / ((y_46_re * y_46_re) + (y_46_im * y_46_im))
	tmp = 0
	if y_46_re <= -6.2e-51:
		tmp = t_8
	elif y_46_re <= -1.6e-76:
		tmp = t_3
	elif y_46_re <= -4.5e-77:
		tmp = x_46_im / y_46_re
	elif y_46_re <= -4.6e-81:
		tmp = t_1
	elif y_46_re <= -4.5e-81:
		tmp = t_8
	elif y_46_re <= -3.5e-101:
		tmp = t_3
	elif y_46_re <= -3.3e-101:
		tmp = x_46_im / y_46_re
	elif y_46_re <= -1.5e-103:
		tmp = t_9
	elif y_46_re <= -1.55e-170:
		tmp = t_3
	elif y_46_re <= -1.5e-170:
		tmp = t_5
	elif y_46_re <= -7e-194:
		tmp = t_1
	elif y_46_re <= -1.45e-198:
		tmp = t_8
	elif y_46_re <= 2.15e-284:
		tmp = t_1
	elif y_46_re <= 2.2e-284:
		tmp = t_6
	elif y_46_re <= 2.25e-263:
		tmp = t_3
	elif y_46_re <= 2.3e-263:
		tmp = x_46_im / y_46_re
	elif y_46_re <= 1.3e-210:
		tmp = t_1
	elif y_46_re <= 6e-210:
		tmp = t_4
	elif y_46_re <= 7.5e-210:
		tmp = (x_46_im / y_46_re) - (t_7 / y_46_re)
	elif y_46_re <= 2.5e-187:
		tmp = t_3
	elif y_46_re <= 2.5e-183:
		tmp = t_5
	elif y_46_re <= 3e-172:
		tmp = t_1
	elif y_46_re <= 8.4e-150:
		tmp = x_46_im / y_46_re
	elif y_46_re <= 2.05e-137:
		tmp = t_1
	elif y_46_re <= 2.1e-137:
		tmp = t_5
	elif y_46_re <= 7.2e-123:
		tmp = t_3
	elif y_46_re <= 9e-123:
		tmp = t_5
	elif y_46_re <= 5e-103:
		tmp = t_1
	elif y_46_re <= 3.7e-96:
		tmp = t_5
	elif y_46_re <= 2.5e-85:
		tmp = t_1
	elif y_46_re <= 4.1e-72:
		tmp = t_5
	elif y_46_re <= 4.5e-51:
		tmp = t_1
	elif y_46_re <= 2.2e-41:
		tmp = t_5
	elif y_46_re <= 1.45e-26:
		tmp = t_9
	elif y_46_re <= 225000000.0:
		tmp = t_4
	elif y_46_re <= 6.2e+19:
		tmp = t_1
	elif y_46_re <= 2.7e+37:
		tmp = x_46_im / y_46_re
	elif y_46_re <= 3.95e+37:
		tmp = t_1
	elif y_46_re <= 1.2e+57:
		tmp = t_5
	elif y_46_re <= 4.8e+57:
		tmp = ((y_46_re * (x_46_im / y_46_im)) - x_46_re) / y_46_im
	elif y_46_re <= 1.6e+78:
		tmp = x_46_im / y_46_re
	elif y_46_re <= 1.62e+78:
		tmp = t_6
	elif y_46_re <= 5.5e+101:
		tmp = 1.0 / (y_46_re / t_0)
	elif y_46_re <= 3.5e+117:
		tmp = t_9
	elif y_46_re <= 3.6e+117:
		tmp = t_1
	elif y_46_re <= 2e+136:
		tmp = t_5
	elif y_46_re <= 2.02e+136:
		tmp = t_1
	elif y_46_re <= 2.1e+163:
		tmp = t_5
	elif y_46_re <= 2.15e+163:
		tmp = t_1
	elif y_46_re <= 2.7e+171:
		tmp = t_4
	elif y_46_re <= 2.8e+171:
		tmp = t_2 / y_46_im
	elif y_46_re <= 2.2e+198:
		tmp = t_5
	elif y_46_re <= 2.3e+198:
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im)
	elif y_46_re <= 2.9e+207:
		tmp = t_5
	elif y_46_re <= 3e+207:
		tmp = t_6
	elif y_46_re <= 2.35e+224:
		tmp = x_46_im / y_46_re
	elif y_46_re <= 2.4e+224:
		tmp = t_6
	else:
		tmp = t_8
	return tmp
function code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = Float64(x_46_im - Float64(x_46_re * Float64(y_46_im / y_46_re)))
	t_1 = Float64(x_46_re / Float64(-y_46_im))
	t_2 = Float64(x_46_im * Float64(y_46_re / y_46_im))
	t_3 = Float64(Float64(t_2 - x_46_re) / y_46_im)
	t_4 = Float64(Float64(x_46_im - Float64(Float64(y_46_im * x_46_re) / y_46_re)) / y_46_re)
	t_5 = Float64(t_0 / y_46_re)
	t_6 = Float64(x_46_im * Float64(Float64(y_46_re / y_46_im) / y_46_im))
	t_7 = Float64(y_46_im * Float64(x_46_re / y_46_re))
	t_8 = Float64(Float64(x_46_im - t_7) / y_46_re)
	t_9 = Float64(Float64(y_46_re * x_46_im) / Float64(Float64(y_46_re * y_46_re) + Float64(y_46_im * y_46_im)))
	tmp = 0.0
	if (y_46_re <= -6.2e-51)
		tmp = t_8;
	elseif (y_46_re <= -1.6e-76)
		tmp = t_3;
	elseif (y_46_re <= -4.5e-77)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_re <= -4.6e-81)
		tmp = t_1;
	elseif (y_46_re <= -4.5e-81)
		tmp = t_8;
	elseif (y_46_re <= -3.5e-101)
		tmp = t_3;
	elseif (y_46_re <= -3.3e-101)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_re <= -1.5e-103)
		tmp = t_9;
	elseif (y_46_re <= -1.55e-170)
		tmp = t_3;
	elseif (y_46_re <= -1.5e-170)
		tmp = t_5;
	elseif (y_46_re <= -7e-194)
		tmp = t_1;
	elseif (y_46_re <= -1.45e-198)
		tmp = t_8;
	elseif (y_46_re <= 2.15e-284)
		tmp = t_1;
	elseif (y_46_re <= 2.2e-284)
		tmp = t_6;
	elseif (y_46_re <= 2.25e-263)
		tmp = t_3;
	elseif (y_46_re <= 2.3e-263)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_re <= 1.3e-210)
		tmp = t_1;
	elseif (y_46_re <= 6e-210)
		tmp = t_4;
	elseif (y_46_re <= 7.5e-210)
		tmp = Float64(Float64(x_46_im / y_46_re) - Float64(t_7 / y_46_re));
	elseif (y_46_re <= 2.5e-187)
		tmp = t_3;
	elseif (y_46_re <= 2.5e-183)
		tmp = t_5;
	elseif (y_46_re <= 3e-172)
		tmp = t_1;
	elseif (y_46_re <= 8.4e-150)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_re <= 2.05e-137)
		tmp = t_1;
	elseif (y_46_re <= 2.1e-137)
		tmp = t_5;
	elseif (y_46_re <= 7.2e-123)
		tmp = t_3;
	elseif (y_46_re <= 9e-123)
		tmp = t_5;
	elseif (y_46_re <= 5e-103)
		tmp = t_1;
	elseif (y_46_re <= 3.7e-96)
		tmp = t_5;
	elseif (y_46_re <= 2.5e-85)
		tmp = t_1;
	elseif (y_46_re <= 4.1e-72)
		tmp = t_5;
	elseif (y_46_re <= 4.5e-51)
		tmp = t_1;
	elseif (y_46_re <= 2.2e-41)
		tmp = t_5;
	elseif (y_46_re <= 1.45e-26)
		tmp = t_9;
	elseif (y_46_re <= 225000000.0)
		tmp = t_4;
	elseif (y_46_re <= 6.2e+19)
		tmp = t_1;
	elseif (y_46_re <= 2.7e+37)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_re <= 3.95e+37)
		tmp = t_1;
	elseif (y_46_re <= 1.2e+57)
		tmp = t_5;
	elseif (y_46_re <= 4.8e+57)
		tmp = Float64(Float64(Float64(y_46_re * Float64(x_46_im / y_46_im)) - x_46_re) / y_46_im);
	elseif (y_46_re <= 1.6e+78)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_re <= 1.62e+78)
		tmp = t_6;
	elseif (y_46_re <= 5.5e+101)
		tmp = Float64(1.0 / Float64(y_46_re / t_0));
	elseif (y_46_re <= 3.5e+117)
		tmp = t_9;
	elseif (y_46_re <= 3.6e+117)
		tmp = t_1;
	elseif (y_46_re <= 2e+136)
		tmp = t_5;
	elseif (y_46_re <= 2.02e+136)
		tmp = t_1;
	elseif (y_46_re <= 2.1e+163)
		tmp = t_5;
	elseif (y_46_re <= 2.15e+163)
		tmp = t_1;
	elseif (y_46_re <= 2.7e+171)
		tmp = t_4;
	elseif (y_46_re <= 2.8e+171)
		tmp = Float64(t_2 / y_46_im);
	elseif (y_46_re <= 2.2e+198)
		tmp = t_5;
	elseif (y_46_re <= 2.3e+198)
		tmp = Float64(Float64(y_46_re / y_46_im) * Float64(x_46_im / y_46_im));
	elseif (y_46_re <= 2.9e+207)
		tmp = t_5;
	elseif (y_46_re <= 3e+207)
		tmp = t_6;
	elseif (y_46_re <= 2.35e+224)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_re <= 2.4e+224)
		tmp = t_6;
	else
		tmp = t_8;
	end
	return tmp
end
function tmp_2 = code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = x_46_im - (x_46_re * (y_46_im / y_46_re));
	t_1 = x_46_re / -y_46_im;
	t_2 = x_46_im * (y_46_re / y_46_im);
	t_3 = (t_2 - x_46_re) / y_46_im;
	t_4 = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re;
	t_5 = t_0 / y_46_re;
	t_6 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	t_7 = y_46_im * (x_46_re / y_46_re);
	t_8 = (x_46_im - t_7) / y_46_re;
	t_9 = (y_46_re * x_46_im) / ((y_46_re * y_46_re) + (y_46_im * y_46_im));
	tmp = 0.0;
	if (y_46_re <= -6.2e-51)
		tmp = t_8;
	elseif (y_46_re <= -1.6e-76)
		tmp = t_3;
	elseif (y_46_re <= -4.5e-77)
		tmp = x_46_im / y_46_re;
	elseif (y_46_re <= -4.6e-81)
		tmp = t_1;
	elseif (y_46_re <= -4.5e-81)
		tmp = t_8;
	elseif (y_46_re <= -3.5e-101)
		tmp = t_3;
	elseif (y_46_re <= -3.3e-101)
		tmp = x_46_im / y_46_re;
	elseif (y_46_re <= -1.5e-103)
		tmp = t_9;
	elseif (y_46_re <= -1.55e-170)
		tmp = t_3;
	elseif (y_46_re <= -1.5e-170)
		tmp = t_5;
	elseif (y_46_re <= -7e-194)
		tmp = t_1;
	elseif (y_46_re <= -1.45e-198)
		tmp = t_8;
	elseif (y_46_re <= 2.15e-284)
		tmp = t_1;
	elseif (y_46_re <= 2.2e-284)
		tmp = t_6;
	elseif (y_46_re <= 2.25e-263)
		tmp = t_3;
	elseif (y_46_re <= 2.3e-263)
		tmp = x_46_im / y_46_re;
	elseif (y_46_re <= 1.3e-210)
		tmp = t_1;
	elseif (y_46_re <= 6e-210)
		tmp = t_4;
	elseif (y_46_re <= 7.5e-210)
		tmp = (x_46_im / y_46_re) - (t_7 / y_46_re);
	elseif (y_46_re <= 2.5e-187)
		tmp = t_3;
	elseif (y_46_re <= 2.5e-183)
		tmp = t_5;
	elseif (y_46_re <= 3e-172)
		tmp = t_1;
	elseif (y_46_re <= 8.4e-150)
		tmp = x_46_im / y_46_re;
	elseif (y_46_re <= 2.05e-137)
		tmp = t_1;
	elseif (y_46_re <= 2.1e-137)
		tmp = t_5;
	elseif (y_46_re <= 7.2e-123)
		tmp = t_3;
	elseif (y_46_re <= 9e-123)
		tmp = t_5;
	elseif (y_46_re <= 5e-103)
		tmp = t_1;
	elseif (y_46_re <= 3.7e-96)
		tmp = t_5;
	elseif (y_46_re <= 2.5e-85)
		tmp = t_1;
	elseif (y_46_re <= 4.1e-72)
		tmp = t_5;
	elseif (y_46_re <= 4.5e-51)
		tmp = t_1;
	elseif (y_46_re <= 2.2e-41)
		tmp = t_5;
	elseif (y_46_re <= 1.45e-26)
		tmp = t_9;
	elseif (y_46_re <= 225000000.0)
		tmp = t_4;
	elseif (y_46_re <= 6.2e+19)
		tmp = t_1;
	elseif (y_46_re <= 2.7e+37)
		tmp = x_46_im / y_46_re;
	elseif (y_46_re <= 3.95e+37)
		tmp = t_1;
	elseif (y_46_re <= 1.2e+57)
		tmp = t_5;
	elseif (y_46_re <= 4.8e+57)
		tmp = ((y_46_re * (x_46_im / y_46_im)) - x_46_re) / y_46_im;
	elseif (y_46_re <= 1.6e+78)
		tmp = x_46_im / y_46_re;
	elseif (y_46_re <= 1.62e+78)
		tmp = t_6;
	elseif (y_46_re <= 5.5e+101)
		tmp = 1.0 / (y_46_re / t_0);
	elseif (y_46_re <= 3.5e+117)
		tmp = t_9;
	elseif (y_46_re <= 3.6e+117)
		tmp = t_1;
	elseif (y_46_re <= 2e+136)
		tmp = t_5;
	elseif (y_46_re <= 2.02e+136)
		tmp = t_1;
	elseif (y_46_re <= 2.1e+163)
		tmp = t_5;
	elseif (y_46_re <= 2.15e+163)
		tmp = t_1;
	elseif (y_46_re <= 2.7e+171)
		tmp = t_4;
	elseif (y_46_re <= 2.8e+171)
		tmp = t_2 / y_46_im;
	elseif (y_46_re <= 2.2e+198)
		tmp = t_5;
	elseif (y_46_re <= 2.3e+198)
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im);
	elseif (y_46_re <= 2.9e+207)
		tmp = t_5;
	elseif (y_46_re <= 3e+207)
		tmp = t_6;
	elseif (y_46_re <= 2.35e+224)
		tmp = x_46_im / y_46_re;
	elseif (y_46_re <= 2.4e+224)
		tmp = t_6;
	else
		tmp = t_8;
	end
	tmp_2 = tmp;
end
code[x$46$re_, x$46$im_, y$46$re_, y$46$im_] := Block[{t$95$0 = N[(x$46$im - N[(x$46$re * N[(y$46$im / y$46$re), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(x$46$re / (-y$46$im)), $MachinePrecision]}, Block[{t$95$2 = N[(x$46$im * N[(y$46$re / y$46$im), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(t$95$2 - x$46$re), $MachinePrecision] / y$46$im), $MachinePrecision]}, Block[{t$95$4 = N[(N[(x$46$im - N[(N[(y$46$im * x$46$re), $MachinePrecision] / y$46$re), $MachinePrecision]), $MachinePrecision] / y$46$re), $MachinePrecision]}, Block[{t$95$5 = N[(t$95$0 / y$46$re), $MachinePrecision]}, Block[{t$95$6 = N[(x$46$im * N[(N[(y$46$re / y$46$im), $MachinePrecision] / y$46$im), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$7 = N[(y$46$im * N[(x$46$re / y$46$re), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$8 = N[(N[(x$46$im - t$95$7), $MachinePrecision] / y$46$re), $MachinePrecision]}, Block[{t$95$9 = N[(N[(y$46$re * x$46$im), $MachinePrecision] / N[(N[(y$46$re * y$46$re), $MachinePrecision] + N[(y$46$im * y$46$im), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y$46$re, -6.2e-51], t$95$8, If[LessEqual[y$46$re, -1.6e-76], t$95$3, If[LessEqual[y$46$re, -4.5e-77], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$re, -4.6e-81], t$95$1, If[LessEqual[y$46$re, -4.5e-81], t$95$8, If[LessEqual[y$46$re, -3.5e-101], t$95$3, If[LessEqual[y$46$re, -3.3e-101], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$re, -1.5e-103], t$95$9, If[LessEqual[y$46$re, -1.55e-170], t$95$3, If[LessEqual[y$46$re, -1.5e-170], t$95$5, If[LessEqual[y$46$re, -7e-194], t$95$1, If[LessEqual[y$46$re, -1.45e-198], t$95$8, If[LessEqual[y$46$re, 2.15e-284], t$95$1, If[LessEqual[y$46$re, 2.2e-284], t$95$6, If[LessEqual[y$46$re, 2.25e-263], t$95$3, If[LessEqual[y$46$re, 2.3e-263], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$re, 1.3e-210], t$95$1, If[LessEqual[y$46$re, 6e-210], t$95$4, If[LessEqual[y$46$re, 7.5e-210], N[(N[(x$46$im / y$46$re), $MachinePrecision] - N[(t$95$7 / y$46$re), $MachinePrecision]), $MachinePrecision], If[LessEqual[y$46$re, 2.5e-187], t$95$3, If[LessEqual[y$46$re, 2.5e-183], t$95$5, If[LessEqual[y$46$re, 3e-172], t$95$1, If[LessEqual[y$46$re, 8.4e-150], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$re, 2.05e-137], t$95$1, If[LessEqual[y$46$re, 2.1e-137], t$95$5, If[LessEqual[y$46$re, 7.2e-123], t$95$3, If[LessEqual[y$46$re, 9e-123], t$95$5, If[LessEqual[y$46$re, 5e-103], t$95$1, If[LessEqual[y$46$re, 3.7e-96], t$95$5, If[LessEqual[y$46$re, 2.5e-85], t$95$1, If[LessEqual[y$46$re, 4.1e-72], t$95$5, If[LessEqual[y$46$re, 4.5e-51], t$95$1, If[LessEqual[y$46$re, 2.2e-41], t$95$5, If[LessEqual[y$46$re, 1.45e-26], t$95$9, If[LessEqual[y$46$re, 225000000.0], t$95$4, If[LessEqual[y$46$re, 6.2e+19], t$95$1, If[LessEqual[y$46$re, 2.7e+37], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$re, 3.95e+37], t$95$1, If[LessEqual[y$46$re, 1.2e+57], t$95$5, If[LessEqual[y$46$re, 4.8e+57], N[(N[(N[(y$46$re * N[(x$46$im / y$46$im), $MachinePrecision]), $MachinePrecision] - x$46$re), $MachinePrecision] / y$46$im), $MachinePrecision], If[LessEqual[y$46$re, 1.6e+78], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$re, 1.62e+78], t$95$6, If[LessEqual[y$46$re, 5.5e+101], N[(1.0 / N[(y$46$re / t$95$0), $MachinePrecision]), $MachinePrecision], If[LessEqual[y$46$re, 3.5e+117], t$95$9, If[LessEqual[y$46$re, 3.6e+117], t$95$1, If[LessEqual[y$46$re, 2e+136], t$95$5, If[LessEqual[y$46$re, 2.02e+136], t$95$1, If[LessEqual[y$46$re, 2.1e+163], t$95$5, If[LessEqual[y$46$re, 2.15e+163], t$95$1, If[LessEqual[y$46$re, 2.7e+171], t$95$4, If[LessEqual[y$46$re, 2.8e+171], N[(t$95$2 / y$46$im), $MachinePrecision], If[LessEqual[y$46$re, 2.2e+198], t$95$5, If[LessEqual[y$46$re, 2.3e+198], N[(N[(y$46$re / y$46$im), $MachinePrecision] * N[(x$46$im / y$46$im), $MachinePrecision]), $MachinePrecision], If[LessEqual[y$46$re, 2.9e+207], t$95$5, If[LessEqual[y$46$re, 3e+207], t$95$6, If[LessEqual[y$46$re, 2.35e+224], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$re, 2.4e+224], t$95$6, t$95$8]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := x.im - x.re \cdot \frac{y.im}{y.re}\\
t_1 := \frac{x.re}{-y.im}\\
t_2 := x.im \cdot \frac{y.re}{y.im}\\
t_3 := \frac{t\_2 - x.re}{y.im}\\
t_4 := \frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\
t_5 := \frac{t\_0}{y.re}\\
t_6 := x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\
t_7 := y.im \cdot \frac{x.re}{y.re}\\
t_8 := \frac{x.im - t\_7}{y.re}\\
t_9 := \frac{y.re \cdot x.im}{y.re \cdot y.re + y.im \cdot y.im}\\
\mathbf{if}\;y.re \leq -6.2 \cdot 10^{-51}:\\
\;\;\;\;t\_8\\

\mathbf{elif}\;y.re \leq -1.6 \cdot 10^{-76}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.re \leq -4.5 \cdot 10^{-77}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.re \leq -4.6 \cdot 10^{-81}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.re \leq -4.5 \cdot 10^{-81}:\\
\;\;\;\;t\_8\\

\mathbf{elif}\;y.re \leq -3.5 \cdot 10^{-101}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.re \leq -3.3 \cdot 10^{-101}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.re \leq -1.5 \cdot 10^{-103}:\\
\;\;\;\;t\_9\\

\mathbf{elif}\;y.re \leq -1.55 \cdot 10^{-170}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.re \leq -1.5 \cdot 10^{-170}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.re \leq -7 \cdot 10^{-194}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.re \leq -1.45 \cdot 10^{-198}:\\
\;\;\;\;t\_8\\

\mathbf{elif}\;y.re \leq 2.15 \cdot 10^{-284}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.re \leq 2.2 \cdot 10^{-284}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.re \leq 2.25 \cdot 10^{-263}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.re \leq 2.3 \cdot 10^{-263}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.re \leq 1.3 \cdot 10^{-210}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.re \leq 6 \cdot 10^{-210}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;y.re \leq 7.5 \cdot 10^{-210}:\\
\;\;\;\;\frac{x.im}{y.re} - \frac{t\_7}{y.re}\\

\mathbf{elif}\;y.re \leq 2.5 \cdot 10^{-187}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.re \leq 2.5 \cdot 10^{-183}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.re \leq 3 \cdot 10^{-172}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.re \leq 8.4 \cdot 10^{-150}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.re \leq 2.05 \cdot 10^{-137}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.re \leq 2.1 \cdot 10^{-137}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.re \leq 7.2 \cdot 10^{-123}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;y.re \leq 9 \cdot 10^{-123}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.re \leq 5 \cdot 10^{-103}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.re \leq 3.7 \cdot 10^{-96}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.re \leq 2.5 \cdot 10^{-85}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.re \leq 4.1 \cdot 10^{-72}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.re \leq 4.5 \cdot 10^{-51}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.re \leq 2.2 \cdot 10^{-41}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.re \leq 1.45 \cdot 10^{-26}:\\
\;\;\;\;t\_9\\

\mathbf{elif}\;y.re \leq 225000000:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;y.re \leq 6.2 \cdot 10^{+19}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.re \leq 2.7 \cdot 10^{+37}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.re \leq 3.95 \cdot 10^{+37}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.re \leq 1.2 \cdot 10^{+57}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.re \leq 4.8 \cdot 10^{+57}:\\
\;\;\;\;\frac{y.re \cdot \frac{x.im}{y.im} - x.re}{y.im}\\

\mathbf{elif}\;y.re \leq 1.6 \cdot 10^{+78}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.re \leq 1.62 \cdot 10^{+78}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.re \leq 5.5 \cdot 10^{+101}:\\
\;\;\;\;\frac{1}{\frac{y.re}{t\_0}}\\

\mathbf{elif}\;y.re \leq 3.5 \cdot 10^{+117}:\\
\;\;\;\;t\_9\\

\mathbf{elif}\;y.re \leq 3.6 \cdot 10^{+117}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.re \leq 2 \cdot 10^{+136}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.re \leq 2.02 \cdot 10^{+136}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.re \leq 2.1 \cdot 10^{+163}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.re \leq 2.15 \cdot 10^{+163}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.re \leq 2.7 \cdot 10^{+171}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;y.re \leq 2.8 \cdot 10^{+171}:\\
\;\;\;\;\frac{t\_2}{y.im}\\

\mathbf{elif}\;y.re \leq 2.2 \cdot 10^{+198}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.re \leq 2.3 \cdot 10^{+198}:\\
\;\;\;\;\frac{y.re}{y.im} \cdot \frac{x.im}{y.im}\\

\mathbf{elif}\;y.re \leq 2.9 \cdot 10^{+207}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.re \leq 3 \cdot 10^{+207}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.re \leq 2.35 \cdot 10^{+224}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.re \leq 2.4 \cdot 10^{+224}:\\
\;\;\;\;t\_6\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 13 regimes
  2. if y.re < -6.1999999999999995e-51 or -4.59999999999999982e-81 < y.re < -4.5e-81 or -7.0000000000000006e-194 < y.re < -1.45e-198 or 2.40000000000000001e224 < y.re

    1. Initial program 51.9%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub50.8%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative50.8%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt50.8%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac57.3%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg57.3%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define57.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define86.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*87.1%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt87.1%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow287.1%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define87.1%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr87.1%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 84.8%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg84.8%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg84.8%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative84.8%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified84.8%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]
    8. Step-by-step derivation
      1. associate-/l*87.7%

        \[\leadsto \frac{x.im - \color{blue}{y.im \cdot \frac{x.re}{y.re}}}{y.re} \]
    9. Applied egg-rr87.7%

      \[\leadsto \frac{x.im - \color{blue}{y.im \cdot \frac{x.re}{y.re}}}{y.re} \]

    if -6.1999999999999995e-51 < y.re < -1.5999999999999999e-76 or -4.5e-81 < y.re < -3.49999999999999994e-101 or -1.5e-103 < y.re < -1.54999999999999993e-170 or 2.2000000000000001e-284 < y.re < 2.2499999999999999e-263 or 7.4999999999999997e-210 < y.re < 2.4999999999999998e-187 or 2.09999999999999992e-137 < y.re < 7.1999999999999994e-123

    1. Initial program 65.2%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub62.4%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative62.4%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt62.4%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac59.9%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg59.9%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define59.9%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define63.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*69.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt69.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow269.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define69.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr69.3%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 100.0%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]

    if -1.5999999999999999e-76 < y.re < -4.5000000000000001e-77 or -3.49999999999999994e-101 < y.re < -3.29999999999999984e-101 or 2.2499999999999999e-263 < y.re < 2.30000000000000003e-263 or 2.99999999999999984e-172 < y.re < 8.4000000000000004e-150 or 6.2e19 < y.re < 2.69999999999999986e37 or 4.80000000000000009e57 < y.re < 1.59999999999999997e78 or 2.99999999999999983e207 < y.re < 2.3500000000000001e224

    1. Initial program 57.1%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around inf 100.0%

      \[\leadsto \color{blue}{\frac{x.im}{y.re}} \]

    if -4.5000000000000001e-77 < y.re < -4.59999999999999982e-81 or -1.50000000000000007e-170 < y.re < -7.0000000000000006e-194 or -1.45e-198 < y.re < 2.1500000000000001e-284 or 2.30000000000000003e-263 < y.re < 1.2999999999999999e-210 or 2.5000000000000001e-183 < y.re < 2.99999999999999984e-172 or 8.4000000000000004e-150 < y.re < 2.0499999999999999e-137 or 8.99999999999999986e-123 < y.re < 4.99999999999999966e-103 or 3.69999999999999986e-96 < y.re < 2.5000000000000001e-85 or 4.10000000000000003e-72 < y.re < 4.49999999999999974e-51 or 2.25e8 < y.re < 6.2e19 or 2.69999999999999986e37 < y.re < 3.9500000000000001e37 or 3.49999999999999983e117 < y.re < 3.60000000000000013e117 or 2.00000000000000012e136 < y.re < 2.02000000000000002e136 or 2.1e163 < y.re < 2.1500000000000001e163

    1. Initial program 66.2%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around 0 100.0%

      \[\leadsto \color{blue}{-1 \cdot \frac{x.re}{y.im}} \]
    4. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \color{blue}{\frac{-1 \cdot x.re}{y.im}} \]
      2. neg-mul-1100.0%

        \[\leadsto \frac{\color{blue}{-x.re}}{y.im} \]
    5. Simplified100.0%

      \[\leadsto \color{blue}{\frac{-x.re}{y.im}} \]

    if -3.29999999999999984e-101 < y.re < -1.5e-103 or 2.2e-41 < y.re < 1.4499999999999999e-26 or 5.50000000000000018e101 < y.re < 3.49999999999999983e117

    1. Initial program 100.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in x.im around inf 100.0%

      \[\leadsto \frac{\color{blue}{x.im \cdot y.re}}{y.re \cdot y.re + y.im \cdot y.im} \]
    4. Step-by-step derivation
      1. *-commutative100.0%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} \]
    5. Simplified100.0%

      \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} \]

    if -1.54999999999999993e-170 < y.re < -1.50000000000000007e-170 or 2.4999999999999998e-187 < y.re < 2.5000000000000001e-183 or 2.0499999999999999e-137 < y.re < 2.09999999999999992e-137 or 7.1999999999999994e-123 < y.re < 8.99999999999999986e-123 or 4.99999999999999966e-103 < y.re < 3.69999999999999986e-96 or 2.5000000000000001e-85 < y.re < 4.10000000000000003e-72 or 4.49999999999999974e-51 < y.re < 2.2e-41 or 3.9500000000000001e37 < y.re < 1.20000000000000002e57 or 3.60000000000000013e117 < y.re < 2.00000000000000012e136 or 2.02000000000000002e136 < y.re < 2.1e163 or 2.80000000000000004e171 < y.re < 2.2e198 or 2.3000000000000001e198 < y.re < 2.89999999999999997e207

    1. Initial program 71.3%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around inf 92.7%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    4. Step-by-step derivation
      1. remove-double-neg92.7%

        \[\leadsto \frac{\color{blue}{\left(-\left(-x.im\right)\right)} + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      2. mul-1-neg92.7%

        \[\leadsto \frac{\left(-\color{blue}{-1 \cdot x.im}\right) + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      3. neg-mul-192.7%

        \[\leadsto \frac{\color{blue}{-1 \cdot \left(-1 \cdot x.im\right)} + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      4. distribute-lft-in92.7%

        \[\leadsto \frac{\color{blue}{-1 \cdot \left(-1 \cdot x.im + \frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      5. mul-1-neg92.7%

        \[\leadsto \frac{\color{blue}{-\left(-1 \cdot x.im + \frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      6. distribute-neg-in92.7%

        \[\leadsto \frac{\color{blue}{\left(--1 \cdot x.im\right) + \left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      7. mul-1-neg92.7%

        \[\leadsto \frac{\left(-\color{blue}{\left(-x.im\right)}\right) + \left(-\frac{x.re \cdot y.im}{y.re}\right)}{y.re} \]
      8. remove-double-neg92.7%

        \[\leadsto \frac{\color{blue}{x.im} + \left(-\frac{x.re \cdot y.im}{y.re}\right)}{y.re} \]
      9. unsub-neg92.7%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      10. associate-/l*99.9%

        \[\leadsto \frac{x.im - \color{blue}{x.re \cdot \frac{y.im}{y.re}}}{y.re} \]
    5. Simplified99.9%

      \[\leadsto \color{blue}{\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}} \]

    if 2.1500000000000001e-284 < y.re < 2.2000000000000001e-284 or 1.59999999999999997e78 < y.re < 1.6199999999999999e78 or 2.89999999999999997e207 < y.re < 2.99999999999999983e207 or 2.3500000000000001e224 < y.re < 2.40000000000000001e224

    1. Initial program 27.3%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub27.3%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative27.3%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt27.3%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac50.8%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg50.8%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define50.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define74.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*99.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt99.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow299.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define99.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr99.6%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 48.3%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/96.6%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified96.6%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 48.3%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/96.6%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified96.6%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    11. Step-by-step derivation
      1. associate-/l*96.9%

        \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]
    12. Applied egg-rr96.9%

      \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]

    if 1.2999999999999999e-210 < y.re < 6.0000000000000003e-210 or 1.4499999999999999e-26 < y.re < 2.25e8 or 2.1500000000000001e163 < y.re < 2.6999999999999998e171

    1. Initial program 68.2%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub67.3%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative67.3%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt67.3%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac67.3%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg67.3%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define67.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define68.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*68.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt68.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow268.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define68.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr68.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 100.0%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg100.0%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg100.0%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative100.0%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]

    if 6.0000000000000003e-210 < y.re < 7.4999999999999997e-210

    1. Initial program 8.8%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub8.8%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative8.8%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt8.8%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac8.8%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg8.8%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define8.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define8.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*8.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt8.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow28.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define8.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr8.8%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 98.4%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg98.4%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg98.4%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative98.4%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified98.4%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]
    8. Step-by-step derivation
      1. div-sub100.0%

        \[\leadsto \color{blue}{\frac{x.im}{y.re} - \frac{\frac{y.im \cdot x.re}{y.re}}{y.re}} \]
      2. associate-/l*100.0%

        \[\leadsto \frac{x.im}{y.re} - \frac{\color{blue}{y.im \cdot \frac{x.re}{y.re}}}{y.re} \]
    9. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\frac{x.im}{y.re} - \frac{y.im \cdot \frac{x.re}{y.re}}{y.re}} \]

    if 1.20000000000000002e57 < y.re < 4.80000000000000009e57

    1. Initial program 6.2%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around 0 5.6%

      \[\leadsto \color{blue}{-1 \cdot \frac{x.re}{y.im} + \frac{x.im \cdot y.re}{{y.im}^{2}}} \]
    4. Step-by-step derivation
      1. +-commutative5.6%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{{y.im}^{2}} + -1 \cdot \frac{x.re}{y.im}} \]
      2. mul-1-neg5.6%

        \[\leadsto \frac{x.im \cdot y.re}{{y.im}^{2}} + \color{blue}{\left(-\frac{x.re}{y.im}\right)} \]
      3. unsub-neg5.6%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{{y.im}^{2}} - \frac{x.re}{y.im}} \]
      4. unpow25.6%

        \[\leadsto \frac{x.im \cdot y.re}{\color{blue}{y.im \cdot y.im}} - \frac{x.re}{y.im} \]
      5. associate-/r*98.4%

        \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im}}{y.im}} - \frac{x.re}{y.im} \]
      6. div-sub98.4%

        \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
      7. *-commutative98.4%

        \[\leadsto \frac{\frac{\color{blue}{y.re \cdot x.im}}{y.im} - x.re}{y.im} \]
      8. associate-/l*100.0%

        \[\leadsto \frac{\color{blue}{y.re \cdot \frac{x.im}{y.im}} - x.re}{y.im} \]
    5. Simplified100.0%

      \[\leadsto \color{blue}{\frac{y.re \cdot \frac{x.im}{y.im} - x.re}{y.im}} \]

    if 1.6199999999999999e78 < y.re < 5.50000000000000018e101

    1. Initial program 99.2%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub99.2%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative99.2%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt99.2%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac100.0%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg100.0%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow2100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 99.6%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg99.6%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg99.6%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative99.6%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified99.6%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]
    8. Step-by-step derivation
      1. clear-num100.0%

        \[\leadsto \color{blue}{\frac{1}{\frac{y.re}{x.im - \frac{y.im \cdot x.re}{y.re}}}} \]
      2. inv-pow100.0%

        \[\leadsto \color{blue}{{\left(\frac{y.re}{x.im - \frac{y.im \cdot x.re}{y.re}}\right)}^{-1}} \]
      3. associate-/l*100.0%

        \[\leadsto {\left(\frac{y.re}{x.im - \color{blue}{y.im \cdot \frac{x.re}{y.re}}}\right)}^{-1} \]
    9. Applied egg-rr100.0%

      \[\leadsto \color{blue}{{\left(\frac{y.re}{x.im - y.im \cdot \frac{x.re}{y.re}}\right)}^{-1}} \]
    10. Step-by-step derivation
      1. unpow-1100.0%

        \[\leadsto \color{blue}{\frac{1}{\frac{y.re}{x.im - y.im \cdot \frac{x.re}{y.re}}}} \]
      2. associate-*r/100.0%

        \[\leadsto \frac{1}{\frac{y.re}{x.im - \color{blue}{\frac{y.im \cdot x.re}{y.re}}}} \]
      3. *-commutative100.0%

        \[\leadsto \frac{1}{\frac{y.re}{x.im - \frac{\color{blue}{x.re \cdot y.im}}{y.re}}} \]
      4. associate-*r/100.0%

        \[\leadsto \frac{1}{\frac{y.re}{x.im - \color{blue}{x.re \cdot \frac{y.im}{y.re}}}} \]
    11. Simplified100.0%

      \[\leadsto \color{blue}{\frac{1}{\frac{y.re}{x.im - x.re \cdot \frac{y.im}{y.re}}}} \]

    if 2.6999999999999998e171 < y.re < 2.80000000000000004e171

    1. Initial program 0.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub0.0%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative0.0%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt0.0%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac2.3%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg2.3%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define2.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow2100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 4.3%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/36.1%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified36.1%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 4.3%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/36.1%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified36.1%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]

    if 2.2e198 < y.re < 2.3000000000000001e198

    1. Initial program 0.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub0.0%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative0.0%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt0.0%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac3.6%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg3.6%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define3.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow2100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 2.7%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/98.4%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified98.4%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 2.7%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/98.4%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified98.4%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    11. Step-by-step derivation
      1. *-commutative98.4%

        \[\leadsto \frac{\color{blue}{\frac{y.re}{y.im} \cdot x.im}}{y.im} \]
      2. *-un-lft-identity98.4%

        \[\leadsto \frac{\frac{y.re}{y.im} \cdot x.im}{\color{blue}{1 \cdot y.im}} \]
      3. times-frac100.0%

        \[\leadsto \color{blue}{\frac{\frac{y.re}{y.im}}{1} \cdot \frac{x.im}{y.im}} \]
    12. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\frac{\frac{y.re}{y.im}}{1} \cdot \frac{x.im}{y.im}} \]
  3. Recombined 13 regimes into one program.
  4. Final simplification94.8%

    \[\leadsto \begin{array}{l} \mathbf{if}\;y.re \leq -6.2 \cdot 10^{-51}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq -1.6 \cdot 10^{-76}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.re \leq -4.5 \cdot 10^{-77}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.re \leq -4.6 \cdot 10^{-81}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.re \leq -4.5 \cdot 10^{-81}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq -3.5 \cdot 10^{-101}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.re \leq -3.3 \cdot 10^{-101}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.re \leq -1.5 \cdot 10^{-103}:\\ \;\;\;\;\frac{y.re \cdot x.im}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;y.re \leq -1.55 \cdot 10^{-170}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.re \leq -1.5 \cdot 10^{-170}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq -7 \cdot 10^{-194}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.re \leq -1.45 \cdot 10^{-198}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 2.15 \cdot 10^{-284}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.re \leq 2.2 \cdot 10^{-284}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.re \leq 2.25 \cdot 10^{-263}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.re \leq 2.3 \cdot 10^{-263}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.re \leq 1.3 \cdot 10^{-210}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.re \leq 6 \cdot 10^{-210}:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 7.5 \cdot 10^{-210}:\\ \;\;\;\;\frac{x.im}{y.re} - \frac{y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 2.5 \cdot 10^{-187}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.re \leq 2.5 \cdot 10^{-183}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 3 \cdot 10^{-172}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.re \leq 8.4 \cdot 10^{-150}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.re \leq 2.05 \cdot 10^{-137}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.re \leq 2.1 \cdot 10^{-137}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 7.2 \cdot 10^{-123}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.re \leq 9 \cdot 10^{-123}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 5 \cdot 10^{-103}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.re \leq 3.7 \cdot 10^{-96}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 2.5 \cdot 10^{-85}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.re \leq 4.1 \cdot 10^{-72}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 4.5 \cdot 10^{-51}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.re \leq 2.2 \cdot 10^{-41}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 1.45 \cdot 10^{-26}:\\ \;\;\;\;\frac{y.re \cdot x.im}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;y.re \leq 225000000:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 6.2 \cdot 10^{+19}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.re \leq 2.7 \cdot 10^{+37}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.re \leq 3.95 \cdot 10^{+37}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.re \leq 1.2 \cdot 10^{+57}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 4.8 \cdot 10^{+57}:\\ \;\;\;\;\frac{y.re \cdot \frac{x.im}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.re \leq 1.6 \cdot 10^{+78}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.re \leq 1.62 \cdot 10^{+78}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.re \leq 5.5 \cdot 10^{+101}:\\ \;\;\;\;\frac{1}{\frac{y.re}{x.im - x.re \cdot \frac{y.im}{y.re}}}\\ \mathbf{elif}\;y.re \leq 3.5 \cdot 10^{+117}:\\ \;\;\;\;\frac{y.re \cdot x.im}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;y.re \leq 3.6 \cdot 10^{+117}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.re \leq 2 \cdot 10^{+136}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 2.02 \cdot 10^{+136}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.re \leq 2.1 \cdot 10^{+163}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 2.15 \cdot 10^{+163}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.re \leq 2.7 \cdot 10^{+171}:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 2.8 \cdot 10^{+171}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.re \leq 2.2 \cdot 10^{+198}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 2.3 \cdot 10^{+198}:\\ \;\;\;\;\frac{y.re}{y.im} \cdot \frac{x.im}{y.im}\\ \mathbf{elif}\;y.re \leq 2.9 \cdot 10^{+207}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 3 \cdot 10^{+207}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.re \leq 2.35 \cdot 10^{+224}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.re \leq 2.4 \cdot 10^{+224}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{else}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \end{array} \]
  5. Add Preprocessing

Alternative 18: 69.9% accurate, 0.1× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := x.im \cdot \frac{y.re}{y.im}\\ t_1 := \frac{t\_0 - x.re}{y.im}\\ t_2 := x.im - x.re \cdot \frac{y.im}{y.re}\\ t_3 := y.im \cdot \frac{x.re}{y.re}\\ t_4 := \frac{y.re \cdot x.im}{y.re \cdot y.re + y.im \cdot y.im}\\ t_5 := \frac{t\_2}{y.re}\\ t_6 := \frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ t_7 := \frac{x.im - t\_3}{y.re}\\ t_8 := x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ t_9 := \frac{y.im \cdot x.re}{y.re \cdot \left(-y.re\right) - y.im \cdot y.im}\\ t_10 := \frac{x.re}{-y.im}\\ \mathbf{if}\;y.re \leq -1 \cdot 10^{-51}:\\ \;\;\;\;t\_7\\ \mathbf{elif}\;y.re \leq -1.6 \cdot 10^{-76}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.re \leq -5.8 \cdot 10^{-77}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.re \leq -4.5 \cdot 10^{-81}:\\ \;\;\;\;t\_9\\ \mathbf{elif}\;y.re \leq -3.5 \cdot 10^{-101}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.re \leq -3.3 \cdot 10^{-101}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.re \leq -1.5 \cdot 10^{-103}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;y.re \leq -1.55 \cdot 10^{-170}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.re \leq -1.5 \cdot 10^{-170}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.re \leq -7 \cdot 10^{-194}:\\ \;\;\;\;t\_10\\ \mathbf{elif}\;y.re \leq -1.45 \cdot 10^{-198}:\\ \;\;\;\;t\_7\\ \mathbf{elif}\;y.re \leq 2.15 \cdot 10^{-284}:\\ \;\;\;\;t\_10\\ \mathbf{elif}\;y.re \leq 2.2 \cdot 10^{-284}:\\ \;\;\;\;t\_8\\ \mathbf{elif}\;y.re \leq 2.25 \cdot 10^{-263}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.re \leq 2.3 \cdot 10^{-263}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.re \leq 1.3 \cdot 10^{-210}:\\ \;\;\;\;t\_10\\ \mathbf{elif}\;y.re \leq 4.8 \cdot 10^{-210}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.re \leq 7.5 \cdot 10^{-210}:\\ \;\;\;\;\frac{x.im}{y.re} - \frac{t\_3}{y.re}\\ \mathbf{elif}\;y.re \leq 2.5 \cdot 10^{-187}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.re \leq 2.7 \cdot 10^{-187}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.re \leq 4.1 \cdot 10^{-165}:\\ \;\;\;\;t\_10\\ \mathbf{elif}\;y.re \leq 8.4 \cdot 10^{-150}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.re \leq 2.05 \cdot 10^{-137}:\\ \;\;\;\;t\_10\\ \mathbf{elif}\;y.re \leq 2.1 \cdot 10^{-137}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.re \leq 8.5 \cdot 10^{-123}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y.re \leq 5.2 \cdot 10^{-122}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.re \leq 1.05 \cdot 10^{-109}:\\ \;\;\;\;t\_10\\ \mathbf{elif}\;y.re \leq 7.5 \cdot 10^{-99}:\\ \;\;\;\;t\_9\\ \mathbf{elif}\;y.re \leq 1.85 \cdot 10^{-98}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.re \leq 2.7 \cdot 10^{-52}:\\ \;\;\;\;t\_9\\ \mathbf{elif}\;y.re \leq 1.72 \cdot 10^{-43}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.re \leq 8.2 \cdot 10^{-26}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;y.re \leq 7500000:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.re \leq 1.7 \cdot 10^{+21}:\\ \;\;\;\;t\_10\\ \mathbf{elif}\;y.re \leq 3.6 \cdot 10^{+37}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.re \leq 3.95 \cdot 10^{+37}:\\ \;\;\;\;t\_10\\ \mathbf{elif}\;y.re \leq 10^{+57}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.re \leq 2.7 \cdot 10^{+57}:\\ \;\;\;\;\frac{y.re \cdot \frac{x.im}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.re \leq 1.6 \cdot 10^{+78}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.re \leq 1.62 \cdot 10^{+78}:\\ \;\;\;\;t\_8\\ \mathbf{elif}\;y.re \leq 5.5 \cdot 10^{+101}:\\ \;\;\;\;\frac{1}{\frac{y.re}{t\_2}}\\ \mathbf{elif}\;y.re \leq 3.5 \cdot 10^{+117}:\\ \;\;\;\;t\_4\\ \mathbf{elif}\;y.re \leq 3.6 \cdot 10^{+117}:\\ \;\;\;\;t\_10\\ \mathbf{elif}\;y.re \leq 2 \cdot 10^{+136}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.re \leq 2.02 \cdot 10^{+136}:\\ \;\;\;\;t\_10\\ \mathbf{elif}\;y.re \leq 2.1 \cdot 10^{+163}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.re \leq 2.15 \cdot 10^{+163}:\\ \;\;\;\;t\_10\\ \mathbf{elif}\;y.re \leq 2.7 \cdot 10^{+171}:\\ \;\;\;\;t\_6\\ \mathbf{elif}\;y.re \leq 2.8 \cdot 10^{+171}:\\ \;\;\;\;\frac{t\_0}{y.im}\\ \mathbf{elif}\;y.re \leq 2.2 \cdot 10^{+198}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.re \leq 2.3 \cdot 10^{+198}:\\ \;\;\;\;\frac{y.re}{y.im} \cdot \frac{x.im}{y.im}\\ \mathbf{elif}\;y.re \leq 2.9 \cdot 10^{+207}:\\ \;\;\;\;t\_5\\ \mathbf{elif}\;y.re \leq 3 \cdot 10^{+207}:\\ \;\;\;\;t\_8\\ \mathbf{elif}\;y.re \leq 2.35 \cdot 10^{+224}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.re \leq 2.4 \cdot 10^{+224}:\\ \;\;\;\;t\_8\\ \mathbf{else}:\\ \;\;\;\;t\_7\\ \end{array} \end{array} \]
(FPCore (x.re x.im y.re y.im)
 :precision binary64
 (let* ((t_0 (* x.im (/ y.re y.im)))
        (t_1 (/ (- t_0 x.re) y.im))
        (t_2 (- x.im (* x.re (/ y.im y.re))))
        (t_3 (* y.im (/ x.re y.re)))
        (t_4 (/ (* y.re x.im) (+ (* y.re y.re) (* y.im y.im))))
        (t_5 (/ t_2 y.re))
        (t_6 (/ (- x.im (/ (* y.im x.re) y.re)) y.re))
        (t_7 (/ (- x.im t_3) y.re))
        (t_8 (* x.im (/ (/ y.re y.im) y.im)))
        (t_9 (/ (* y.im x.re) (- (* y.re (- y.re)) (* y.im y.im))))
        (t_10 (/ x.re (- y.im))))
   (if (<= y.re -1e-51)
     t_7
     (if (<= y.re -1.6e-76)
       t_1
       (if (<= y.re -5.8e-77)
         (/ x.im y.re)
         (if (<= y.re -4.5e-81)
           t_9
           (if (<= y.re -3.5e-101)
             t_1
             (if (<= y.re -3.3e-101)
               (/ x.im y.re)
               (if (<= y.re -1.5e-103)
                 t_4
                 (if (<= y.re -1.55e-170)
                   t_1
                   (if (<= y.re -1.5e-170)
                     t_5
                     (if (<= y.re -7e-194)
                       t_10
                       (if (<= y.re -1.45e-198)
                         t_7
                         (if (<= y.re 2.15e-284)
                           t_10
                           (if (<= y.re 2.2e-284)
                             t_8
                             (if (<= y.re 2.25e-263)
                               t_1
                               (if (<= y.re 2.3e-263)
                                 (/ x.im y.re)
                                 (if (<= y.re 1.3e-210)
                                   t_10
                                   (if (<= y.re 4.8e-210)
                                     t_6
                                     (if (<= y.re 7.5e-210)
                                       (- (/ x.im y.re) (/ t_3 y.re))
                                       (if (<= y.re 2.5e-187)
                                         t_1
                                         (if (<= y.re 2.7e-187)
                                           t_5
                                           (if (<= y.re 4.1e-165)
                                             t_10
                                             (if (<= y.re 8.4e-150)
                                               (/ x.im y.re)
                                               (if (<= y.re 2.05e-137)
                                                 t_10
                                                 (if (<= y.re 2.1e-137)
                                                   t_5
                                                   (if (<= y.re 8.5e-123)
                                                     t_1
                                                     (if (<= y.re 5.2e-122)
                                                       t_5
                                                       (if (<= y.re 1.05e-109)
                                                         t_10
                                                         (if (<= y.re 7.5e-99)
                                                           t_9
                                                           (if (<=
                                                                y.re
                                                                1.85e-98)
                                                             t_5
                                                             (if (<=
                                                                  y.re
                                                                  2.7e-52)
                                                               t_9
                                                               (if (<=
                                                                    y.re
                                                                    1.72e-43)
                                                                 t_5
                                                                 (if (<=
                                                                      y.re
                                                                      8.2e-26)
                                                                   t_4
                                                                   (if (<=
                                                                        y.re
                                                                        7500000.0)
                                                                     t_6
                                                                     (if (<=
                                                                          y.re
                                                                          1.7e+21)
                                                                       t_10
                                                                       (if (<=
                                                                            y.re
                                                                            3.6e+37)
                                                                         (/
                                                                          x.im
                                                                          y.re)
                                                                         (if (<=
                                                                              y.re
                                                                              3.95e+37)
                                                                           t_10
                                                                           (if (<=
                                                                                y.re
                                                                                1e+57)
                                                                             t_5
                                                                             (if (<=
                                                                                  y.re
                                                                                  2.7e+57)
                                                                               (/
                                                                                (-
                                                                                 (*
                                                                                  y.re
                                                                                  (/
                                                                                   x.im
                                                                                   y.im))
                                                                                 x.re)
                                                                                y.im)
                                                                               (if (<=
                                                                                    y.re
                                                                                    1.6e+78)
                                                                                 (/
                                                                                  x.im
                                                                                  y.re)
                                                                                 (if (<=
                                                                                      y.re
                                                                                      1.62e+78)
                                                                                   t_8
                                                                                   (if (<=
                                                                                        y.re
                                                                                        5.5e+101)
                                                                                     (/
                                                                                      1.0
                                                                                      (/
                                                                                       y.re
                                                                                       t_2))
                                                                                     (if (<=
                                                                                          y.re
                                                                                          3.5e+117)
                                                                                       t_4
                                                                                       (if (<=
                                                                                            y.re
                                                                                            3.6e+117)
                                                                                         t_10
                                                                                         (if (<=
                                                                                              y.re
                                                                                              2e+136)
                                                                                           t_5
                                                                                           (if (<=
                                                                                                y.re
                                                                                                2.02e+136)
                                                                                             t_10
                                                                                             (if (<=
                                                                                                  y.re
                                                                                                  2.1e+163)
                                                                                               t_5
                                                                                               (if (<=
                                                                                                    y.re
                                                                                                    2.15e+163)
                                                                                                 t_10
                                                                                                 (if (<=
                                                                                                      y.re
                                                                                                      2.7e+171)
                                                                                                   t_6
                                                                                                   (if (<=
                                                                                                        y.re
                                                                                                        2.8e+171)
                                                                                                     (/
                                                                                                      t_0
                                                                                                      y.im)
                                                                                                     (if (<=
                                                                                                          y.re
                                                                                                          2.2e+198)
                                                                                                       t_5
                                                                                                       (if (<=
                                                                                                            y.re
                                                                                                            2.3e+198)
                                                                                                         (*
                                                                                                          (/
                                                                                                           y.re
                                                                                                           y.im)
                                                                                                          (/
                                                                                                           x.im
                                                                                                           y.im))
                                                                                                         (if (<=
                                                                                                              y.re
                                                                                                              2.9e+207)
                                                                                                           t_5
                                                                                                           (if (<=
                                                                                                                y.re
                                                                                                                3e+207)
                                                                                                             t_8
                                                                                                             (if (<=
                                                                                                                  y.re
                                                                                                                  2.35e+224)
                                                                                                               (/
                                                                                                                x.im
                                                                                                                y.re)
                                                                                                               (if (<=
                                                                                                                    y.re
                                                                                                                    2.4e+224)
                                                                                                                 t_8
                                                                                                                 t_7)))))))))))))))))))))))))))))))))))))))))))))))))))))))))
double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double t_0 = x_46_im * (y_46_re / y_46_im);
	double t_1 = (t_0 - x_46_re) / y_46_im;
	double t_2 = x_46_im - (x_46_re * (y_46_im / y_46_re));
	double t_3 = y_46_im * (x_46_re / y_46_re);
	double t_4 = (y_46_re * x_46_im) / ((y_46_re * y_46_re) + (y_46_im * y_46_im));
	double t_5 = t_2 / y_46_re;
	double t_6 = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re;
	double t_7 = (x_46_im - t_3) / y_46_re;
	double t_8 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	double t_9 = (y_46_im * x_46_re) / ((y_46_re * -y_46_re) - (y_46_im * y_46_im));
	double t_10 = x_46_re / -y_46_im;
	double tmp;
	if (y_46_re <= -1e-51) {
		tmp = t_7;
	} else if (y_46_re <= -1.6e-76) {
		tmp = t_1;
	} else if (y_46_re <= -5.8e-77) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_re <= -4.5e-81) {
		tmp = t_9;
	} else if (y_46_re <= -3.5e-101) {
		tmp = t_1;
	} else if (y_46_re <= -3.3e-101) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_re <= -1.5e-103) {
		tmp = t_4;
	} else if (y_46_re <= -1.55e-170) {
		tmp = t_1;
	} else if (y_46_re <= -1.5e-170) {
		tmp = t_5;
	} else if (y_46_re <= -7e-194) {
		tmp = t_10;
	} else if (y_46_re <= -1.45e-198) {
		tmp = t_7;
	} else if (y_46_re <= 2.15e-284) {
		tmp = t_10;
	} else if (y_46_re <= 2.2e-284) {
		tmp = t_8;
	} else if (y_46_re <= 2.25e-263) {
		tmp = t_1;
	} else if (y_46_re <= 2.3e-263) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_re <= 1.3e-210) {
		tmp = t_10;
	} else if (y_46_re <= 4.8e-210) {
		tmp = t_6;
	} else if (y_46_re <= 7.5e-210) {
		tmp = (x_46_im / y_46_re) - (t_3 / y_46_re);
	} else if (y_46_re <= 2.5e-187) {
		tmp = t_1;
	} else if (y_46_re <= 2.7e-187) {
		tmp = t_5;
	} else if (y_46_re <= 4.1e-165) {
		tmp = t_10;
	} else if (y_46_re <= 8.4e-150) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_re <= 2.05e-137) {
		tmp = t_10;
	} else if (y_46_re <= 2.1e-137) {
		tmp = t_5;
	} else if (y_46_re <= 8.5e-123) {
		tmp = t_1;
	} else if (y_46_re <= 5.2e-122) {
		tmp = t_5;
	} else if (y_46_re <= 1.05e-109) {
		tmp = t_10;
	} else if (y_46_re <= 7.5e-99) {
		tmp = t_9;
	} else if (y_46_re <= 1.85e-98) {
		tmp = t_5;
	} else if (y_46_re <= 2.7e-52) {
		tmp = t_9;
	} else if (y_46_re <= 1.72e-43) {
		tmp = t_5;
	} else if (y_46_re <= 8.2e-26) {
		tmp = t_4;
	} else if (y_46_re <= 7500000.0) {
		tmp = t_6;
	} else if (y_46_re <= 1.7e+21) {
		tmp = t_10;
	} else if (y_46_re <= 3.6e+37) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_re <= 3.95e+37) {
		tmp = t_10;
	} else if (y_46_re <= 1e+57) {
		tmp = t_5;
	} else if (y_46_re <= 2.7e+57) {
		tmp = ((y_46_re * (x_46_im / y_46_im)) - x_46_re) / y_46_im;
	} else if (y_46_re <= 1.6e+78) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_re <= 1.62e+78) {
		tmp = t_8;
	} else if (y_46_re <= 5.5e+101) {
		tmp = 1.0 / (y_46_re / t_2);
	} else if (y_46_re <= 3.5e+117) {
		tmp = t_4;
	} else if (y_46_re <= 3.6e+117) {
		tmp = t_10;
	} else if (y_46_re <= 2e+136) {
		tmp = t_5;
	} else if (y_46_re <= 2.02e+136) {
		tmp = t_10;
	} else if (y_46_re <= 2.1e+163) {
		tmp = t_5;
	} else if (y_46_re <= 2.15e+163) {
		tmp = t_10;
	} else if (y_46_re <= 2.7e+171) {
		tmp = t_6;
	} else if (y_46_re <= 2.8e+171) {
		tmp = t_0 / y_46_im;
	} else if (y_46_re <= 2.2e+198) {
		tmp = t_5;
	} else if (y_46_re <= 2.3e+198) {
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im);
	} else if (y_46_re <= 2.9e+207) {
		tmp = t_5;
	} else if (y_46_re <= 3e+207) {
		tmp = t_8;
	} else if (y_46_re <= 2.35e+224) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_re <= 2.4e+224) {
		tmp = t_8;
	} else {
		tmp = t_7;
	}
	return tmp;
}
real(8) function code(x_46re, x_46im, y_46re, y_46im)
    real(8), intent (in) :: x_46re
    real(8), intent (in) :: x_46im
    real(8), intent (in) :: y_46re
    real(8), intent (in) :: y_46im
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: t_10
    real(8) :: t_2
    real(8) :: t_3
    real(8) :: t_4
    real(8) :: t_5
    real(8) :: t_6
    real(8) :: t_7
    real(8) :: t_8
    real(8) :: t_9
    real(8) :: tmp
    t_0 = x_46im * (y_46re / y_46im)
    t_1 = (t_0 - x_46re) / y_46im
    t_2 = x_46im - (x_46re * (y_46im / y_46re))
    t_3 = y_46im * (x_46re / y_46re)
    t_4 = (y_46re * x_46im) / ((y_46re * y_46re) + (y_46im * y_46im))
    t_5 = t_2 / y_46re
    t_6 = (x_46im - ((y_46im * x_46re) / y_46re)) / y_46re
    t_7 = (x_46im - t_3) / y_46re
    t_8 = x_46im * ((y_46re / y_46im) / y_46im)
    t_9 = (y_46im * x_46re) / ((y_46re * -y_46re) - (y_46im * y_46im))
    t_10 = x_46re / -y_46im
    if (y_46re <= (-1d-51)) then
        tmp = t_7
    else if (y_46re <= (-1.6d-76)) then
        tmp = t_1
    else if (y_46re <= (-5.8d-77)) then
        tmp = x_46im / y_46re
    else if (y_46re <= (-4.5d-81)) then
        tmp = t_9
    else if (y_46re <= (-3.5d-101)) then
        tmp = t_1
    else if (y_46re <= (-3.3d-101)) then
        tmp = x_46im / y_46re
    else if (y_46re <= (-1.5d-103)) then
        tmp = t_4
    else if (y_46re <= (-1.55d-170)) then
        tmp = t_1
    else if (y_46re <= (-1.5d-170)) then
        tmp = t_5
    else if (y_46re <= (-7d-194)) then
        tmp = t_10
    else if (y_46re <= (-1.45d-198)) then
        tmp = t_7
    else if (y_46re <= 2.15d-284) then
        tmp = t_10
    else if (y_46re <= 2.2d-284) then
        tmp = t_8
    else if (y_46re <= 2.25d-263) then
        tmp = t_1
    else if (y_46re <= 2.3d-263) then
        tmp = x_46im / y_46re
    else if (y_46re <= 1.3d-210) then
        tmp = t_10
    else if (y_46re <= 4.8d-210) then
        tmp = t_6
    else if (y_46re <= 7.5d-210) then
        tmp = (x_46im / y_46re) - (t_3 / y_46re)
    else if (y_46re <= 2.5d-187) then
        tmp = t_1
    else if (y_46re <= 2.7d-187) then
        tmp = t_5
    else if (y_46re <= 4.1d-165) then
        tmp = t_10
    else if (y_46re <= 8.4d-150) then
        tmp = x_46im / y_46re
    else if (y_46re <= 2.05d-137) then
        tmp = t_10
    else if (y_46re <= 2.1d-137) then
        tmp = t_5
    else if (y_46re <= 8.5d-123) then
        tmp = t_1
    else if (y_46re <= 5.2d-122) then
        tmp = t_5
    else if (y_46re <= 1.05d-109) then
        tmp = t_10
    else if (y_46re <= 7.5d-99) then
        tmp = t_9
    else if (y_46re <= 1.85d-98) then
        tmp = t_5
    else if (y_46re <= 2.7d-52) then
        tmp = t_9
    else if (y_46re <= 1.72d-43) then
        tmp = t_5
    else if (y_46re <= 8.2d-26) then
        tmp = t_4
    else if (y_46re <= 7500000.0d0) then
        tmp = t_6
    else if (y_46re <= 1.7d+21) then
        tmp = t_10
    else if (y_46re <= 3.6d+37) then
        tmp = x_46im / y_46re
    else if (y_46re <= 3.95d+37) then
        tmp = t_10
    else if (y_46re <= 1d+57) then
        tmp = t_5
    else if (y_46re <= 2.7d+57) then
        tmp = ((y_46re * (x_46im / y_46im)) - x_46re) / y_46im
    else if (y_46re <= 1.6d+78) then
        tmp = x_46im / y_46re
    else if (y_46re <= 1.62d+78) then
        tmp = t_8
    else if (y_46re <= 5.5d+101) then
        tmp = 1.0d0 / (y_46re / t_2)
    else if (y_46re <= 3.5d+117) then
        tmp = t_4
    else if (y_46re <= 3.6d+117) then
        tmp = t_10
    else if (y_46re <= 2d+136) then
        tmp = t_5
    else if (y_46re <= 2.02d+136) then
        tmp = t_10
    else if (y_46re <= 2.1d+163) then
        tmp = t_5
    else if (y_46re <= 2.15d+163) then
        tmp = t_10
    else if (y_46re <= 2.7d+171) then
        tmp = t_6
    else if (y_46re <= 2.8d+171) then
        tmp = t_0 / y_46im
    else if (y_46re <= 2.2d+198) then
        tmp = t_5
    else if (y_46re <= 2.3d+198) then
        tmp = (y_46re / y_46im) * (x_46im / y_46im)
    else if (y_46re <= 2.9d+207) then
        tmp = t_5
    else if (y_46re <= 3d+207) then
        tmp = t_8
    else if (y_46re <= 2.35d+224) then
        tmp = x_46im / y_46re
    else if (y_46re <= 2.4d+224) then
        tmp = t_8
    else
        tmp = t_7
    end if
    code = tmp
end function
public static double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double t_0 = x_46_im * (y_46_re / y_46_im);
	double t_1 = (t_0 - x_46_re) / y_46_im;
	double t_2 = x_46_im - (x_46_re * (y_46_im / y_46_re));
	double t_3 = y_46_im * (x_46_re / y_46_re);
	double t_4 = (y_46_re * x_46_im) / ((y_46_re * y_46_re) + (y_46_im * y_46_im));
	double t_5 = t_2 / y_46_re;
	double t_6 = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re;
	double t_7 = (x_46_im - t_3) / y_46_re;
	double t_8 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	double t_9 = (y_46_im * x_46_re) / ((y_46_re * -y_46_re) - (y_46_im * y_46_im));
	double t_10 = x_46_re / -y_46_im;
	double tmp;
	if (y_46_re <= -1e-51) {
		tmp = t_7;
	} else if (y_46_re <= -1.6e-76) {
		tmp = t_1;
	} else if (y_46_re <= -5.8e-77) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_re <= -4.5e-81) {
		tmp = t_9;
	} else if (y_46_re <= -3.5e-101) {
		tmp = t_1;
	} else if (y_46_re <= -3.3e-101) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_re <= -1.5e-103) {
		tmp = t_4;
	} else if (y_46_re <= -1.55e-170) {
		tmp = t_1;
	} else if (y_46_re <= -1.5e-170) {
		tmp = t_5;
	} else if (y_46_re <= -7e-194) {
		tmp = t_10;
	} else if (y_46_re <= -1.45e-198) {
		tmp = t_7;
	} else if (y_46_re <= 2.15e-284) {
		tmp = t_10;
	} else if (y_46_re <= 2.2e-284) {
		tmp = t_8;
	} else if (y_46_re <= 2.25e-263) {
		tmp = t_1;
	} else if (y_46_re <= 2.3e-263) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_re <= 1.3e-210) {
		tmp = t_10;
	} else if (y_46_re <= 4.8e-210) {
		tmp = t_6;
	} else if (y_46_re <= 7.5e-210) {
		tmp = (x_46_im / y_46_re) - (t_3 / y_46_re);
	} else if (y_46_re <= 2.5e-187) {
		tmp = t_1;
	} else if (y_46_re <= 2.7e-187) {
		tmp = t_5;
	} else if (y_46_re <= 4.1e-165) {
		tmp = t_10;
	} else if (y_46_re <= 8.4e-150) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_re <= 2.05e-137) {
		tmp = t_10;
	} else if (y_46_re <= 2.1e-137) {
		tmp = t_5;
	} else if (y_46_re <= 8.5e-123) {
		tmp = t_1;
	} else if (y_46_re <= 5.2e-122) {
		tmp = t_5;
	} else if (y_46_re <= 1.05e-109) {
		tmp = t_10;
	} else if (y_46_re <= 7.5e-99) {
		tmp = t_9;
	} else if (y_46_re <= 1.85e-98) {
		tmp = t_5;
	} else if (y_46_re <= 2.7e-52) {
		tmp = t_9;
	} else if (y_46_re <= 1.72e-43) {
		tmp = t_5;
	} else if (y_46_re <= 8.2e-26) {
		tmp = t_4;
	} else if (y_46_re <= 7500000.0) {
		tmp = t_6;
	} else if (y_46_re <= 1.7e+21) {
		tmp = t_10;
	} else if (y_46_re <= 3.6e+37) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_re <= 3.95e+37) {
		tmp = t_10;
	} else if (y_46_re <= 1e+57) {
		tmp = t_5;
	} else if (y_46_re <= 2.7e+57) {
		tmp = ((y_46_re * (x_46_im / y_46_im)) - x_46_re) / y_46_im;
	} else if (y_46_re <= 1.6e+78) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_re <= 1.62e+78) {
		tmp = t_8;
	} else if (y_46_re <= 5.5e+101) {
		tmp = 1.0 / (y_46_re / t_2);
	} else if (y_46_re <= 3.5e+117) {
		tmp = t_4;
	} else if (y_46_re <= 3.6e+117) {
		tmp = t_10;
	} else if (y_46_re <= 2e+136) {
		tmp = t_5;
	} else if (y_46_re <= 2.02e+136) {
		tmp = t_10;
	} else if (y_46_re <= 2.1e+163) {
		tmp = t_5;
	} else if (y_46_re <= 2.15e+163) {
		tmp = t_10;
	} else if (y_46_re <= 2.7e+171) {
		tmp = t_6;
	} else if (y_46_re <= 2.8e+171) {
		tmp = t_0 / y_46_im;
	} else if (y_46_re <= 2.2e+198) {
		tmp = t_5;
	} else if (y_46_re <= 2.3e+198) {
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im);
	} else if (y_46_re <= 2.9e+207) {
		tmp = t_5;
	} else if (y_46_re <= 3e+207) {
		tmp = t_8;
	} else if (y_46_re <= 2.35e+224) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_re <= 2.4e+224) {
		tmp = t_8;
	} else {
		tmp = t_7;
	}
	return tmp;
}
def code(x_46_re, x_46_im, y_46_re, y_46_im):
	t_0 = x_46_im * (y_46_re / y_46_im)
	t_1 = (t_0 - x_46_re) / y_46_im
	t_2 = x_46_im - (x_46_re * (y_46_im / y_46_re))
	t_3 = y_46_im * (x_46_re / y_46_re)
	t_4 = (y_46_re * x_46_im) / ((y_46_re * y_46_re) + (y_46_im * y_46_im))
	t_5 = t_2 / y_46_re
	t_6 = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re
	t_7 = (x_46_im - t_3) / y_46_re
	t_8 = x_46_im * ((y_46_re / y_46_im) / y_46_im)
	t_9 = (y_46_im * x_46_re) / ((y_46_re * -y_46_re) - (y_46_im * y_46_im))
	t_10 = x_46_re / -y_46_im
	tmp = 0
	if y_46_re <= -1e-51:
		tmp = t_7
	elif y_46_re <= -1.6e-76:
		tmp = t_1
	elif y_46_re <= -5.8e-77:
		tmp = x_46_im / y_46_re
	elif y_46_re <= -4.5e-81:
		tmp = t_9
	elif y_46_re <= -3.5e-101:
		tmp = t_1
	elif y_46_re <= -3.3e-101:
		tmp = x_46_im / y_46_re
	elif y_46_re <= -1.5e-103:
		tmp = t_4
	elif y_46_re <= -1.55e-170:
		tmp = t_1
	elif y_46_re <= -1.5e-170:
		tmp = t_5
	elif y_46_re <= -7e-194:
		tmp = t_10
	elif y_46_re <= -1.45e-198:
		tmp = t_7
	elif y_46_re <= 2.15e-284:
		tmp = t_10
	elif y_46_re <= 2.2e-284:
		tmp = t_8
	elif y_46_re <= 2.25e-263:
		tmp = t_1
	elif y_46_re <= 2.3e-263:
		tmp = x_46_im / y_46_re
	elif y_46_re <= 1.3e-210:
		tmp = t_10
	elif y_46_re <= 4.8e-210:
		tmp = t_6
	elif y_46_re <= 7.5e-210:
		tmp = (x_46_im / y_46_re) - (t_3 / y_46_re)
	elif y_46_re <= 2.5e-187:
		tmp = t_1
	elif y_46_re <= 2.7e-187:
		tmp = t_5
	elif y_46_re <= 4.1e-165:
		tmp = t_10
	elif y_46_re <= 8.4e-150:
		tmp = x_46_im / y_46_re
	elif y_46_re <= 2.05e-137:
		tmp = t_10
	elif y_46_re <= 2.1e-137:
		tmp = t_5
	elif y_46_re <= 8.5e-123:
		tmp = t_1
	elif y_46_re <= 5.2e-122:
		tmp = t_5
	elif y_46_re <= 1.05e-109:
		tmp = t_10
	elif y_46_re <= 7.5e-99:
		tmp = t_9
	elif y_46_re <= 1.85e-98:
		tmp = t_5
	elif y_46_re <= 2.7e-52:
		tmp = t_9
	elif y_46_re <= 1.72e-43:
		tmp = t_5
	elif y_46_re <= 8.2e-26:
		tmp = t_4
	elif y_46_re <= 7500000.0:
		tmp = t_6
	elif y_46_re <= 1.7e+21:
		tmp = t_10
	elif y_46_re <= 3.6e+37:
		tmp = x_46_im / y_46_re
	elif y_46_re <= 3.95e+37:
		tmp = t_10
	elif y_46_re <= 1e+57:
		tmp = t_5
	elif y_46_re <= 2.7e+57:
		tmp = ((y_46_re * (x_46_im / y_46_im)) - x_46_re) / y_46_im
	elif y_46_re <= 1.6e+78:
		tmp = x_46_im / y_46_re
	elif y_46_re <= 1.62e+78:
		tmp = t_8
	elif y_46_re <= 5.5e+101:
		tmp = 1.0 / (y_46_re / t_2)
	elif y_46_re <= 3.5e+117:
		tmp = t_4
	elif y_46_re <= 3.6e+117:
		tmp = t_10
	elif y_46_re <= 2e+136:
		tmp = t_5
	elif y_46_re <= 2.02e+136:
		tmp = t_10
	elif y_46_re <= 2.1e+163:
		tmp = t_5
	elif y_46_re <= 2.15e+163:
		tmp = t_10
	elif y_46_re <= 2.7e+171:
		tmp = t_6
	elif y_46_re <= 2.8e+171:
		tmp = t_0 / y_46_im
	elif y_46_re <= 2.2e+198:
		tmp = t_5
	elif y_46_re <= 2.3e+198:
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im)
	elif y_46_re <= 2.9e+207:
		tmp = t_5
	elif y_46_re <= 3e+207:
		tmp = t_8
	elif y_46_re <= 2.35e+224:
		tmp = x_46_im / y_46_re
	elif y_46_re <= 2.4e+224:
		tmp = t_8
	else:
		tmp = t_7
	return tmp
function code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = Float64(x_46_im * Float64(y_46_re / y_46_im))
	t_1 = Float64(Float64(t_0 - x_46_re) / y_46_im)
	t_2 = Float64(x_46_im - Float64(x_46_re * Float64(y_46_im / y_46_re)))
	t_3 = Float64(y_46_im * Float64(x_46_re / y_46_re))
	t_4 = Float64(Float64(y_46_re * x_46_im) / Float64(Float64(y_46_re * y_46_re) + Float64(y_46_im * y_46_im)))
	t_5 = Float64(t_2 / y_46_re)
	t_6 = Float64(Float64(x_46_im - Float64(Float64(y_46_im * x_46_re) / y_46_re)) / y_46_re)
	t_7 = Float64(Float64(x_46_im - t_3) / y_46_re)
	t_8 = Float64(x_46_im * Float64(Float64(y_46_re / y_46_im) / y_46_im))
	t_9 = Float64(Float64(y_46_im * x_46_re) / Float64(Float64(y_46_re * Float64(-y_46_re)) - Float64(y_46_im * y_46_im)))
	t_10 = Float64(x_46_re / Float64(-y_46_im))
	tmp = 0.0
	if (y_46_re <= -1e-51)
		tmp = t_7;
	elseif (y_46_re <= -1.6e-76)
		tmp = t_1;
	elseif (y_46_re <= -5.8e-77)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_re <= -4.5e-81)
		tmp = t_9;
	elseif (y_46_re <= -3.5e-101)
		tmp = t_1;
	elseif (y_46_re <= -3.3e-101)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_re <= -1.5e-103)
		tmp = t_4;
	elseif (y_46_re <= -1.55e-170)
		tmp = t_1;
	elseif (y_46_re <= -1.5e-170)
		tmp = t_5;
	elseif (y_46_re <= -7e-194)
		tmp = t_10;
	elseif (y_46_re <= -1.45e-198)
		tmp = t_7;
	elseif (y_46_re <= 2.15e-284)
		tmp = t_10;
	elseif (y_46_re <= 2.2e-284)
		tmp = t_8;
	elseif (y_46_re <= 2.25e-263)
		tmp = t_1;
	elseif (y_46_re <= 2.3e-263)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_re <= 1.3e-210)
		tmp = t_10;
	elseif (y_46_re <= 4.8e-210)
		tmp = t_6;
	elseif (y_46_re <= 7.5e-210)
		tmp = Float64(Float64(x_46_im / y_46_re) - Float64(t_3 / y_46_re));
	elseif (y_46_re <= 2.5e-187)
		tmp = t_1;
	elseif (y_46_re <= 2.7e-187)
		tmp = t_5;
	elseif (y_46_re <= 4.1e-165)
		tmp = t_10;
	elseif (y_46_re <= 8.4e-150)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_re <= 2.05e-137)
		tmp = t_10;
	elseif (y_46_re <= 2.1e-137)
		tmp = t_5;
	elseif (y_46_re <= 8.5e-123)
		tmp = t_1;
	elseif (y_46_re <= 5.2e-122)
		tmp = t_5;
	elseif (y_46_re <= 1.05e-109)
		tmp = t_10;
	elseif (y_46_re <= 7.5e-99)
		tmp = t_9;
	elseif (y_46_re <= 1.85e-98)
		tmp = t_5;
	elseif (y_46_re <= 2.7e-52)
		tmp = t_9;
	elseif (y_46_re <= 1.72e-43)
		tmp = t_5;
	elseif (y_46_re <= 8.2e-26)
		tmp = t_4;
	elseif (y_46_re <= 7500000.0)
		tmp = t_6;
	elseif (y_46_re <= 1.7e+21)
		tmp = t_10;
	elseif (y_46_re <= 3.6e+37)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_re <= 3.95e+37)
		tmp = t_10;
	elseif (y_46_re <= 1e+57)
		tmp = t_5;
	elseif (y_46_re <= 2.7e+57)
		tmp = Float64(Float64(Float64(y_46_re * Float64(x_46_im / y_46_im)) - x_46_re) / y_46_im);
	elseif (y_46_re <= 1.6e+78)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_re <= 1.62e+78)
		tmp = t_8;
	elseif (y_46_re <= 5.5e+101)
		tmp = Float64(1.0 / Float64(y_46_re / t_2));
	elseif (y_46_re <= 3.5e+117)
		tmp = t_4;
	elseif (y_46_re <= 3.6e+117)
		tmp = t_10;
	elseif (y_46_re <= 2e+136)
		tmp = t_5;
	elseif (y_46_re <= 2.02e+136)
		tmp = t_10;
	elseif (y_46_re <= 2.1e+163)
		tmp = t_5;
	elseif (y_46_re <= 2.15e+163)
		tmp = t_10;
	elseif (y_46_re <= 2.7e+171)
		tmp = t_6;
	elseif (y_46_re <= 2.8e+171)
		tmp = Float64(t_0 / y_46_im);
	elseif (y_46_re <= 2.2e+198)
		tmp = t_5;
	elseif (y_46_re <= 2.3e+198)
		tmp = Float64(Float64(y_46_re / y_46_im) * Float64(x_46_im / y_46_im));
	elseif (y_46_re <= 2.9e+207)
		tmp = t_5;
	elseif (y_46_re <= 3e+207)
		tmp = t_8;
	elseif (y_46_re <= 2.35e+224)
		tmp = Float64(x_46_im / y_46_re);
	elseif (y_46_re <= 2.4e+224)
		tmp = t_8;
	else
		tmp = t_7;
	end
	return tmp
end
function tmp_2 = code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = x_46_im * (y_46_re / y_46_im);
	t_1 = (t_0 - x_46_re) / y_46_im;
	t_2 = x_46_im - (x_46_re * (y_46_im / y_46_re));
	t_3 = y_46_im * (x_46_re / y_46_re);
	t_4 = (y_46_re * x_46_im) / ((y_46_re * y_46_re) + (y_46_im * y_46_im));
	t_5 = t_2 / y_46_re;
	t_6 = (x_46_im - ((y_46_im * x_46_re) / y_46_re)) / y_46_re;
	t_7 = (x_46_im - t_3) / y_46_re;
	t_8 = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	t_9 = (y_46_im * x_46_re) / ((y_46_re * -y_46_re) - (y_46_im * y_46_im));
	t_10 = x_46_re / -y_46_im;
	tmp = 0.0;
	if (y_46_re <= -1e-51)
		tmp = t_7;
	elseif (y_46_re <= -1.6e-76)
		tmp = t_1;
	elseif (y_46_re <= -5.8e-77)
		tmp = x_46_im / y_46_re;
	elseif (y_46_re <= -4.5e-81)
		tmp = t_9;
	elseif (y_46_re <= -3.5e-101)
		tmp = t_1;
	elseif (y_46_re <= -3.3e-101)
		tmp = x_46_im / y_46_re;
	elseif (y_46_re <= -1.5e-103)
		tmp = t_4;
	elseif (y_46_re <= -1.55e-170)
		tmp = t_1;
	elseif (y_46_re <= -1.5e-170)
		tmp = t_5;
	elseif (y_46_re <= -7e-194)
		tmp = t_10;
	elseif (y_46_re <= -1.45e-198)
		tmp = t_7;
	elseif (y_46_re <= 2.15e-284)
		tmp = t_10;
	elseif (y_46_re <= 2.2e-284)
		tmp = t_8;
	elseif (y_46_re <= 2.25e-263)
		tmp = t_1;
	elseif (y_46_re <= 2.3e-263)
		tmp = x_46_im / y_46_re;
	elseif (y_46_re <= 1.3e-210)
		tmp = t_10;
	elseif (y_46_re <= 4.8e-210)
		tmp = t_6;
	elseif (y_46_re <= 7.5e-210)
		tmp = (x_46_im / y_46_re) - (t_3 / y_46_re);
	elseif (y_46_re <= 2.5e-187)
		tmp = t_1;
	elseif (y_46_re <= 2.7e-187)
		tmp = t_5;
	elseif (y_46_re <= 4.1e-165)
		tmp = t_10;
	elseif (y_46_re <= 8.4e-150)
		tmp = x_46_im / y_46_re;
	elseif (y_46_re <= 2.05e-137)
		tmp = t_10;
	elseif (y_46_re <= 2.1e-137)
		tmp = t_5;
	elseif (y_46_re <= 8.5e-123)
		tmp = t_1;
	elseif (y_46_re <= 5.2e-122)
		tmp = t_5;
	elseif (y_46_re <= 1.05e-109)
		tmp = t_10;
	elseif (y_46_re <= 7.5e-99)
		tmp = t_9;
	elseif (y_46_re <= 1.85e-98)
		tmp = t_5;
	elseif (y_46_re <= 2.7e-52)
		tmp = t_9;
	elseif (y_46_re <= 1.72e-43)
		tmp = t_5;
	elseif (y_46_re <= 8.2e-26)
		tmp = t_4;
	elseif (y_46_re <= 7500000.0)
		tmp = t_6;
	elseif (y_46_re <= 1.7e+21)
		tmp = t_10;
	elseif (y_46_re <= 3.6e+37)
		tmp = x_46_im / y_46_re;
	elseif (y_46_re <= 3.95e+37)
		tmp = t_10;
	elseif (y_46_re <= 1e+57)
		tmp = t_5;
	elseif (y_46_re <= 2.7e+57)
		tmp = ((y_46_re * (x_46_im / y_46_im)) - x_46_re) / y_46_im;
	elseif (y_46_re <= 1.6e+78)
		tmp = x_46_im / y_46_re;
	elseif (y_46_re <= 1.62e+78)
		tmp = t_8;
	elseif (y_46_re <= 5.5e+101)
		tmp = 1.0 / (y_46_re / t_2);
	elseif (y_46_re <= 3.5e+117)
		tmp = t_4;
	elseif (y_46_re <= 3.6e+117)
		tmp = t_10;
	elseif (y_46_re <= 2e+136)
		tmp = t_5;
	elseif (y_46_re <= 2.02e+136)
		tmp = t_10;
	elseif (y_46_re <= 2.1e+163)
		tmp = t_5;
	elseif (y_46_re <= 2.15e+163)
		tmp = t_10;
	elseif (y_46_re <= 2.7e+171)
		tmp = t_6;
	elseif (y_46_re <= 2.8e+171)
		tmp = t_0 / y_46_im;
	elseif (y_46_re <= 2.2e+198)
		tmp = t_5;
	elseif (y_46_re <= 2.3e+198)
		tmp = (y_46_re / y_46_im) * (x_46_im / y_46_im);
	elseif (y_46_re <= 2.9e+207)
		tmp = t_5;
	elseif (y_46_re <= 3e+207)
		tmp = t_8;
	elseif (y_46_re <= 2.35e+224)
		tmp = x_46_im / y_46_re;
	elseif (y_46_re <= 2.4e+224)
		tmp = t_8;
	else
		tmp = t_7;
	end
	tmp_2 = tmp;
end
code[x$46$re_, x$46$im_, y$46$re_, y$46$im_] := Block[{t$95$0 = N[(x$46$im * N[(y$46$re / y$46$im), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(t$95$0 - x$46$re), $MachinePrecision] / y$46$im), $MachinePrecision]}, Block[{t$95$2 = N[(x$46$im - N[(x$46$re * N[(y$46$im / y$46$re), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(y$46$im * N[(x$46$re / y$46$re), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[(N[(y$46$re * x$46$im), $MachinePrecision] / N[(N[(y$46$re * y$46$re), $MachinePrecision] + N[(y$46$im * y$46$im), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$5 = N[(t$95$2 / y$46$re), $MachinePrecision]}, Block[{t$95$6 = N[(N[(x$46$im - N[(N[(y$46$im * x$46$re), $MachinePrecision] / y$46$re), $MachinePrecision]), $MachinePrecision] / y$46$re), $MachinePrecision]}, Block[{t$95$7 = N[(N[(x$46$im - t$95$3), $MachinePrecision] / y$46$re), $MachinePrecision]}, Block[{t$95$8 = N[(x$46$im * N[(N[(y$46$re / y$46$im), $MachinePrecision] / y$46$im), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$9 = N[(N[(y$46$im * x$46$re), $MachinePrecision] / N[(N[(y$46$re * (-y$46$re)), $MachinePrecision] - N[(y$46$im * y$46$im), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$10 = N[(x$46$re / (-y$46$im)), $MachinePrecision]}, If[LessEqual[y$46$re, -1e-51], t$95$7, If[LessEqual[y$46$re, -1.6e-76], t$95$1, If[LessEqual[y$46$re, -5.8e-77], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$re, -4.5e-81], t$95$9, If[LessEqual[y$46$re, -3.5e-101], t$95$1, If[LessEqual[y$46$re, -3.3e-101], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$re, -1.5e-103], t$95$4, If[LessEqual[y$46$re, -1.55e-170], t$95$1, If[LessEqual[y$46$re, -1.5e-170], t$95$5, If[LessEqual[y$46$re, -7e-194], t$95$10, If[LessEqual[y$46$re, -1.45e-198], t$95$7, If[LessEqual[y$46$re, 2.15e-284], t$95$10, If[LessEqual[y$46$re, 2.2e-284], t$95$8, If[LessEqual[y$46$re, 2.25e-263], t$95$1, If[LessEqual[y$46$re, 2.3e-263], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$re, 1.3e-210], t$95$10, If[LessEqual[y$46$re, 4.8e-210], t$95$6, If[LessEqual[y$46$re, 7.5e-210], N[(N[(x$46$im / y$46$re), $MachinePrecision] - N[(t$95$3 / y$46$re), $MachinePrecision]), $MachinePrecision], If[LessEqual[y$46$re, 2.5e-187], t$95$1, If[LessEqual[y$46$re, 2.7e-187], t$95$5, If[LessEqual[y$46$re, 4.1e-165], t$95$10, If[LessEqual[y$46$re, 8.4e-150], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$re, 2.05e-137], t$95$10, If[LessEqual[y$46$re, 2.1e-137], t$95$5, If[LessEqual[y$46$re, 8.5e-123], t$95$1, If[LessEqual[y$46$re, 5.2e-122], t$95$5, If[LessEqual[y$46$re, 1.05e-109], t$95$10, If[LessEqual[y$46$re, 7.5e-99], t$95$9, If[LessEqual[y$46$re, 1.85e-98], t$95$5, If[LessEqual[y$46$re, 2.7e-52], t$95$9, If[LessEqual[y$46$re, 1.72e-43], t$95$5, If[LessEqual[y$46$re, 8.2e-26], t$95$4, If[LessEqual[y$46$re, 7500000.0], t$95$6, If[LessEqual[y$46$re, 1.7e+21], t$95$10, If[LessEqual[y$46$re, 3.6e+37], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$re, 3.95e+37], t$95$10, If[LessEqual[y$46$re, 1e+57], t$95$5, If[LessEqual[y$46$re, 2.7e+57], N[(N[(N[(y$46$re * N[(x$46$im / y$46$im), $MachinePrecision]), $MachinePrecision] - x$46$re), $MachinePrecision] / y$46$im), $MachinePrecision], If[LessEqual[y$46$re, 1.6e+78], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$re, 1.62e+78], t$95$8, If[LessEqual[y$46$re, 5.5e+101], N[(1.0 / N[(y$46$re / t$95$2), $MachinePrecision]), $MachinePrecision], If[LessEqual[y$46$re, 3.5e+117], t$95$4, If[LessEqual[y$46$re, 3.6e+117], t$95$10, If[LessEqual[y$46$re, 2e+136], t$95$5, If[LessEqual[y$46$re, 2.02e+136], t$95$10, If[LessEqual[y$46$re, 2.1e+163], t$95$5, If[LessEqual[y$46$re, 2.15e+163], t$95$10, If[LessEqual[y$46$re, 2.7e+171], t$95$6, If[LessEqual[y$46$re, 2.8e+171], N[(t$95$0 / y$46$im), $MachinePrecision], If[LessEqual[y$46$re, 2.2e+198], t$95$5, If[LessEqual[y$46$re, 2.3e+198], N[(N[(y$46$re / y$46$im), $MachinePrecision] * N[(x$46$im / y$46$im), $MachinePrecision]), $MachinePrecision], If[LessEqual[y$46$re, 2.9e+207], t$95$5, If[LessEqual[y$46$re, 3e+207], t$95$8, If[LessEqual[y$46$re, 2.35e+224], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[y$46$re, 2.4e+224], t$95$8, t$95$7]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := x.im \cdot \frac{y.re}{y.im}\\
t_1 := \frac{t\_0 - x.re}{y.im}\\
t_2 := x.im - x.re \cdot \frac{y.im}{y.re}\\
t_3 := y.im \cdot \frac{x.re}{y.re}\\
t_4 := \frac{y.re \cdot x.im}{y.re \cdot y.re + y.im \cdot y.im}\\
t_5 := \frac{t\_2}{y.re}\\
t_6 := \frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\
t_7 := \frac{x.im - t\_3}{y.re}\\
t_8 := x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\
t_9 := \frac{y.im \cdot x.re}{y.re \cdot \left(-y.re\right) - y.im \cdot y.im}\\
t_10 := \frac{x.re}{-y.im}\\
\mathbf{if}\;y.re \leq -1 \cdot 10^{-51}:\\
\;\;\;\;t\_7\\

\mathbf{elif}\;y.re \leq -1.6 \cdot 10^{-76}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.re \leq -5.8 \cdot 10^{-77}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.re \leq -4.5 \cdot 10^{-81}:\\
\;\;\;\;t\_9\\

\mathbf{elif}\;y.re \leq -3.5 \cdot 10^{-101}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.re \leq -3.3 \cdot 10^{-101}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.re \leq -1.5 \cdot 10^{-103}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;y.re \leq -1.55 \cdot 10^{-170}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.re \leq -1.5 \cdot 10^{-170}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.re \leq -7 \cdot 10^{-194}:\\
\;\;\;\;t\_10\\

\mathbf{elif}\;y.re \leq -1.45 \cdot 10^{-198}:\\
\;\;\;\;t\_7\\

\mathbf{elif}\;y.re \leq 2.15 \cdot 10^{-284}:\\
\;\;\;\;t\_10\\

\mathbf{elif}\;y.re \leq 2.2 \cdot 10^{-284}:\\
\;\;\;\;t\_8\\

\mathbf{elif}\;y.re \leq 2.25 \cdot 10^{-263}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.re \leq 2.3 \cdot 10^{-263}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.re \leq 1.3 \cdot 10^{-210}:\\
\;\;\;\;t\_10\\

\mathbf{elif}\;y.re \leq 4.8 \cdot 10^{-210}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.re \leq 7.5 \cdot 10^{-210}:\\
\;\;\;\;\frac{x.im}{y.re} - \frac{t\_3}{y.re}\\

\mathbf{elif}\;y.re \leq 2.5 \cdot 10^{-187}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.re \leq 2.7 \cdot 10^{-187}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.re \leq 4.1 \cdot 10^{-165}:\\
\;\;\;\;t\_10\\

\mathbf{elif}\;y.re \leq 8.4 \cdot 10^{-150}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.re \leq 2.05 \cdot 10^{-137}:\\
\;\;\;\;t\_10\\

\mathbf{elif}\;y.re \leq 2.1 \cdot 10^{-137}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.re \leq 8.5 \cdot 10^{-123}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;y.re \leq 5.2 \cdot 10^{-122}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.re \leq 1.05 \cdot 10^{-109}:\\
\;\;\;\;t\_10\\

\mathbf{elif}\;y.re \leq 7.5 \cdot 10^{-99}:\\
\;\;\;\;t\_9\\

\mathbf{elif}\;y.re \leq 1.85 \cdot 10^{-98}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.re \leq 2.7 \cdot 10^{-52}:\\
\;\;\;\;t\_9\\

\mathbf{elif}\;y.re \leq 1.72 \cdot 10^{-43}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.re \leq 8.2 \cdot 10^{-26}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;y.re \leq 7500000:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.re \leq 1.7 \cdot 10^{+21}:\\
\;\;\;\;t\_10\\

\mathbf{elif}\;y.re \leq 3.6 \cdot 10^{+37}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.re \leq 3.95 \cdot 10^{+37}:\\
\;\;\;\;t\_10\\

\mathbf{elif}\;y.re \leq 10^{+57}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.re \leq 2.7 \cdot 10^{+57}:\\
\;\;\;\;\frac{y.re \cdot \frac{x.im}{y.im} - x.re}{y.im}\\

\mathbf{elif}\;y.re \leq 1.6 \cdot 10^{+78}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.re \leq 1.62 \cdot 10^{+78}:\\
\;\;\;\;t\_8\\

\mathbf{elif}\;y.re \leq 5.5 \cdot 10^{+101}:\\
\;\;\;\;\frac{1}{\frac{y.re}{t\_2}}\\

\mathbf{elif}\;y.re \leq 3.5 \cdot 10^{+117}:\\
\;\;\;\;t\_4\\

\mathbf{elif}\;y.re \leq 3.6 \cdot 10^{+117}:\\
\;\;\;\;t\_10\\

\mathbf{elif}\;y.re \leq 2 \cdot 10^{+136}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.re \leq 2.02 \cdot 10^{+136}:\\
\;\;\;\;t\_10\\

\mathbf{elif}\;y.re \leq 2.1 \cdot 10^{+163}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.re \leq 2.15 \cdot 10^{+163}:\\
\;\;\;\;t\_10\\

\mathbf{elif}\;y.re \leq 2.7 \cdot 10^{+171}:\\
\;\;\;\;t\_6\\

\mathbf{elif}\;y.re \leq 2.8 \cdot 10^{+171}:\\
\;\;\;\;\frac{t\_0}{y.im}\\

\mathbf{elif}\;y.re \leq 2.2 \cdot 10^{+198}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.re \leq 2.3 \cdot 10^{+198}:\\
\;\;\;\;\frac{y.re}{y.im} \cdot \frac{x.im}{y.im}\\

\mathbf{elif}\;y.re \leq 2.9 \cdot 10^{+207}:\\
\;\;\;\;t\_5\\

\mathbf{elif}\;y.re \leq 3 \cdot 10^{+207}:\\
\;\;\;\;t\_8\\

\mathbf{elif}\;y.re \leq 2.35 \cdot 10^{+224}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.re \leq 2.4 \cdot 10^{+224}:\\
\;\;\;\;t\_8\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 14 regimes
  2. if y.re < -1e-51 or -7.0000000000000006e-194 < y.re < -1.45e-198 or 2.40000000000000001e224 < y.re

    1. Initial program 51.4%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub50.3%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative50.3%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt50.3%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac56.9%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg56.9%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define56.9%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define86.7%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*87.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt87.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow287.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define87.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr87.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 84.7%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg84.7%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg84.7%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative84.7%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified84.7%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]
    8. Step-by-step derivation
      1. associate-/l*87.6%

        \[\leadsto \frac{x.im - \color{blue}{y.im \cdot \frac{x.re}{y.re}}}{y.re} \]
    9. Applied egg-rr87.6%

      \[\leadsto \frac{x.im - \color{blue}{y.im \cdot \frac{x.re}{y.re}}}{y.re} \]

    if -1e-51 < y.re < -1.5999999999999999e-76 or -4.5e-81 < y.re < -3.49999999999999994e-101 or -1.5e-103 < y.re < -1.54999999999999993e-170 or 2.2000000000000001e-284 < y.re < 2.2499999999999999e-263 or 7.4999999999999997e-210 < y.re < 2.4999999999999998e-187 or 2.09999999999999992e-137 < y.re < 8.4999999999999995e-123

    1. Initial program 65.2%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub62.4%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative62.4%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt62.4%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac59.9%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg59.9%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define59.9%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define63.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*69.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt69.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow269.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define69.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr69.3%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 100.0%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]

    if -1.5999999999999999e-76 < y.re < -5.7999999999999997e-77 or -3.49999999999999994e-101 < y.re < -3.29999999999999984e-101 or 2.2499999999999999e-263 < y.re < 2.30000000000000003e-263 or 4.1000000000000002e-165 < y.re < 8.4000000000000004e-150 or 1.7e21 < y.re < 3.59999999999999998e37 or 2.6999999999999998e57 < y.re < 1.59999999999999997e78 or 2.99999999999999983e207 < y.re < 2.3500000000000001e224

    1. Initial program 57.1%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around inf 100.0%

      \[\leadsto \color{blue}{\frac{x.im}{y.re}} \]

    if -5.7999999999999997e-77 < y.re < -4.5e-81 or 1.04999999999999998e-109 < y.re < 7.4999999999999999e-99 or 1.85e-98 < y.re < 2.70000000000000009e-52

    1. Initial program 100.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in x.im around 0 100.0%

      \[\leadsto \frac{\color{blue}{-1 \cdot \left(x.re \cdot y.im\right)}}{y.re \cdot y.re + y.im \cdot y.im} \]
    4. Step-by-step derivation
      1. associate-*r*100.0%

        \[\leadsto \frac{\color{blue}{\left(-1 \cdot x.re\right) \cdot y.im}}{y.re \cdot y.re + y.im \cdot y.im} \]
      2. neg-mul-1100.0%

        \[\leadsto \frac{\color{blue}{\left(-x.re\right)} \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    5. Simplified100.0%

      \[\leadsto \frac{\color{blue}{\left(-x.re\right) \cdot y.im}}{y.re \cdot y.re + y.im \cdot y.im} \]

    if -3.29999999999999984e-101 < y.re < -1.5e-103 or 1.72000000000000005e-43 < y.re < 8.1999999999999997e-26 or 5.50000000000000018e101 < y.re < 3.49999999999999983e117

    1. Initial program 100.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in x.im around inf 100.0%

      \[\leadsto \frac{\color{blue}{x.im \cdot y.re}}{y.re \cdot y.re + y.im \cdot y.im} \]
    4. Step-by-step derivation
      1. *-commutative100.0%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} \]
    5. Simplified100.0%

      \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} \]

    if -1.54999999999999993e-170 < y.re < -1.50000000000000007e-170 or 2.4999999999999998e-187 < y.re < 2.7000000000000001e-187 or 2.0499999999999999e-137 < y.re < 2.09999999999999992e-137 or 8.4999999999999995e-123 < y.re < 5.1999999999999995e-122 or 7.4999999999999999e-99 < y.re < 1.85e-98 or 2.70000000000000009e-52 < y.re < 1.72000000000000005e-43 or 3.9500000000000001e37 < y.re < 1.00000000000000005e57 or 3.60000000000000013e117 < y.re < 2.00000000000000012e136 or 2.02000000000000002e136 < y.re < 2.1e163 or 2.80000000000000004e171 < y.re < 2.2e198 or 2.3000000000000001e198 < y.re < 2.89999999999999997e207

    1. Initial program 69.1%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around inf 92.2%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    4. Step-by-step derivation
      1. remove-double-neg92.2%

        \[\leadsto \frac{\color{blue}{\left(-\left(-x.im\right)\right)} + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      2. mul-1-neg92.2%

        \[\leadsto \frac{\left(-\color{blue}{-1 \cdot x.im}\right) + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      3. neg-mul-192.2%

        \[\leadsto \frac{\color{blue}{-1 \cdot \left(-1 \cdot x.im\right)} + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      4. distribute-lft-in92.2%

        \[\leadsto \frac{\color{blue}{-1 \cdot \left(-1 \cdot x.im + \frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      5. mul-1-neg92.2%

        \[\leadsto \frac{\color{blue}{-\left(-1 \cdot x.im + \frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      6. distribute-neg-in92.2%

        \[\leadsto \frac{\color{blue}{\left(--1 \cdot x.im\right) + \left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      7. mul-1-neg92.2%

        \[\leadsto \frac{\left(-\color{blue}{\left(-x.im\right)}\right) + \left(-\frac{x.re \cdot y.im}{y.re}\right)}{y.re} \]
      8. remove-double-neg92.2%

        \[\leadsto \frac{\color{blue}{x.im} + \left(-\frac{x.re \cdot y.im}{y.re}\right)}{y.re} \]
      9. unsub-neg92.2%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      10. associate-/l*100.0%

        \[\leadsto \frac{x.im - \color{blue}{x.re \cdot \frac{y.im}{y.re}}}{y.re} \]
    5. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}} \]

    if -1.50000000000000007e-170 < y.re < -7.0000000000000006e-194 or -1.45e-198 < y.re < 2.1500000000000001e-284 or 2.30000000000000003e-263 < y.re < 1.2999999999999999e-210 or 2.7000000000000001e-187 < y.re < 4.1000000000000002e-165 or 8.4000000000000004e-150 < y.re < 2.0499999999999999e-137 or 5.1999999999999995e-122 < y.re < 1.04999999999999998e-109 or 7.5e6 < y.re < 1.7e21 or 3.59999999999999998e37 < y.re < 3.9500000000000001e37 or 3.49999999999999983e117 < y.re < 3.60000000000000013e117 or 2.00000000000000012e136 < y.re < 2.02000000000000002e136 or 2.1e163 < y.re < 2.1500000000000001e163

    1. Initial program 61.8%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around 0 100.0%

      \[\leadsto \color{blue}{-1 \cdot \frac{x.re}{y.im}} \]
    4. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \color{blue}{\frac{-1 \cdot x.re}{y.im}} \]
      2. neg-mul-1100.0%

        \[\leadsto \frac{\color{blue}{-x.re}}{y.im} \]
    5. Simplified100.0%

      \[\leadsto \color{blue}{\frac{-x.re}{y.im}} \]

    if 2.1500000000000001e-284 < y.re < 2.2000000000000001e-284 or 1.59999999999999997e78 < y.re < 1.6199999999999999e78 or 2.89999999999999997e207 < y.re < 2.99999999999999983e207 or 2.3500000000000001e224 < y.re < 2.40000000000000001e224

    1. Initial program 27.3%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub27.3%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative27.3%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt27.3%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac50.8%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg50.8%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define50.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define74.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*99.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt99.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow299.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define99.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr99.6%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 48.3%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/96.6%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified96.6%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 48.3%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/96.6%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified96.6%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    11. Step-by-step derivation
      1. associate-/l*96.9%

        \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]
    12. Applied egg-rr96.9%

      \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]

    if 1.2999999999999999e-210 < y.re < 4.80000000000000008e-210 or 8.1999999999999997e-26 < y.re < 7.5e6 or 2.1500000000000001e163 < y.re < 2.6999999999999998e171

    1. Initial program 68.2%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub67.3%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative67.3%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt67.3%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac67.3%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg67.3%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define67.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define68.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*68.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt68.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow268.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define68.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr68.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 100.0%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg100.0%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg100.0%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative100.0%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]

    if 4.80000000000000008e-210 < y.re < 7.4999999999999997e-210

    1. Initial program 8.8%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub8.8%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative8.8%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt8.8%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac8.8%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg8.8%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define8.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define8.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*8.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt8.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow28.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define8.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr8.8%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 98.4%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg98.4%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg98.4%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative98.4%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified98.4%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]
    8. Step-by-step derivation
      1. div-sub100.0%

        \[\leadsto \color{blue}{\frac{x.im}{y.re} - \frac{\frac{y.im \cdot x.re}{y.re}}{y.re}} \]
      2. associate-/l*100.0%

        \[\leadsto \frac{x.im}{y.re} - \frac{\color{blue}{y.im \cdot \frac{x.re}{y.re}}}{y.re} \]
    9. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\frac{x.im}{y.re} - \frac{y.im \cdot \frac{x.re}{y.re}}{y.re}} \]

    if 1.00000000000000005e57 < y.re < 2.6999999999999998e57

    1. Initial program 6.2%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around 0 5.6%

      \[\leadsto \color{blue}{-1 \cdot \frac{x.re}{y.im} + \frac{x.im \cdot y.re}{{y.im}^{2}}} \]
    4. Step-by-step derivation
      1. +-commutative5.6%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{{y.im}^{2}} + -1 \cdot \frac{x.re}{y.im}} \]
      2. mul-1-neg5.6%

        \[\leadsto \frac{x.im \cdot y.re}{{y.im}^{2}} + \color{blue}{\left(-\frac{x.re}{y.im}\right)} \]
      3. unsub-neg5.6%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{{y.im}^{2}} - \frac{x.re}{y.im}} \]
      4. unpow25.6%

        \[\leadsto \frac{x.im \cdot y.re}{\color{blue}{y.im \cdot y.im}} - \frac{x.re}{y.im} \]
      5. associate-/r*98.4%

        \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im}}{y.im}} - \frac{x.re}{y.im} \]
      6. div-sub98.4%

        \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
      7. *-commutative98.4%

        \[\leadsto \frac{\frac{\color{blue}{y.re \cdot x.im}}{y.im} - x.re}{y.im} \]
      8. associate-/l*100.0%

        \[\leadsto \frac{\color{blue}{y.re \cdot \frac{x.im}{y.im}} - x.re}{y.im} \]
    5. Simplified100.0%

      \[\leadsto \color{blue}{\frac{y.re \cdot \frac{x.im}{y.im} - x.re}{y.im}} \]

    if 1.6199999999999999e78 < y.re < 5.50000000000000018e101

    1. Initial program 99.2%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub99.2%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative99.2%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt99.2%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac100.0%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg100.0%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow2100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 99.6%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg99.6%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg99.6%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative99.6%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified99.6%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]
    8. Step-by-step derivation
      1. clear-num100.0%

        \[\leadsto \color{blue}{\frac{1}{\frac{y.re}{x.im - \frac{y.im \cdot x.re}{y.re}}}} \]
      2. inv-pow100.0%

        \[\leadsto \color{blue}{{\left(\frac{y.re}{x.im - \frac{y.im \cdot x.re}{y.re}}\right)}^{-1}} \]
      3. associate-/l*100.0%

        \[\leadsto {\left(\frac{y.re}{x.im - \color{blue}{y.im \cdot \frac{x.re}{y.re}}}\right)}^{-1} \]
    9. Applied egg-rr100.0%

      \[\leadsto \color{blue}{{\left(\frac{y.re}{x.im - y.im \cdot \frac{x.re}{y.re}}\right)}^{-1}} \]
    10. Step-by-step derivation
      1. unpow-1100.0%

        \[\leadsto \color{blue}{\frac{1}{\frac{y.re}{x.im - y.im \cdot \frac{x.re}{y.re}}}} \]
      2. associate-*r/100.0%

        \[\leadsto \frac{1}{\frac{y.re}{x.im - \color{blue}{\frac{y.im \cdot x.re}{y.re}}}} \]
      3. *-commutative100.0%

        \[\leadsto \frac{1}{\frac{y.re}{x.im - \frac{\color{blue}{x.re \cdot y.im}}{y.re}}} \]
      4. associate-*r/100.0%

        \[\leadsto \frac{1}{\frac{y.re}{x.im - \color{blue}{x.re \cdot \frac{y.im}{y.re}}}} \]
    11. Simplified100.0%

      \[\leadsto \color{blue}{\frac{1}{\frac{y.re}{x.im - x.re \cdot \frac{y.im}{y.re}}}} \]

    if 2.6999999999999998e171 < y.re < 2.80000000000000004e171

    1. Initial program 0.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub0.0%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative0.0%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt0.0%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac2.3%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg2.3%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define2.3%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow2100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 4.3%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/36.1%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified36.1%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 4.3%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/36.1%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified36.1%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]

    if 2.2e198 < y.re < 2.3000000000000001e198

    1. Initial program 0.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub0.0%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative0.0%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt0.0%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac3.6%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg3.6%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define3.6%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow2100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 2.7%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/98.4%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified98.4%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 2.7%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/98.4%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified98.4%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    11. Step-by-step derivation
      1. *-commutative98.4%

        \[\leadsto \frac{\color{blue}{\frac{y.re}{y.im} \cdot x.im}}{y.im} \]
      2. *-un-lft-identity98.4%

        \[\leadsto \frac{\frac{y.re}{y.im} \cdot x.im}{\color{blue}{1 \cdot y.im}} \]
      3. times-frac100.0%

        \[\leadsto \color{blue}{\frac{\frac{y.re}{y.im}}{1} \cdot \frac{x.im}{y.im}} \]
    12. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\frac{\frac{y.re}{y.im}}{1} \cdot \frac{x.im}{y.im}} \]
  3. Recombined 14 regimes into one program.
  4. Final simplification94.8%

    \[\leadsto \begin{array}{l} \mathbf{if}\;y.re \leq -1 \cdot 10^{-51}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq -1.6 \cdot 10^{-76}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.re \leq -5.8 \cdot 10^{-77}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.re \leq -4.5 \cdot 10^{-81}:\\ \;\;\;\;\frac{y.im \cdot x.re}{y.re \cdot \left(-y.re\right) - y.im \cdot y.im}\\ \mathbf{elif}\;y.re \leq -3.5 \cdot 10^{-101}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.re \leq -3.3 \cdot 10^{-101}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.re \leq -1.5 \cdot 10^{-103}:\\ \;\;\;\;\frac{y.re \cdot x.im}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;y.re \leq -1.55 \cdot 10^{-170}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.re \leq -1.5 \cdot 10^{-170}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq -7 \cdot 10^{-194}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.re \leq -1.45 \cdot 10^{-198}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 2.15 \cdot 10^{-284}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.re \leq 2.2 \cdot 10^{-284}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.re \leq 2.25 \cdot 10^{-263}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.re \leq 2.3 \cdot 10^{-263}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.re \leq 1.3 \cdot 10^{-210}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.re \leq 4.8 \cdot 10^{-210}:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 7.5 \cdot 10^{-210}:\\ \;\;\;\;\frac{x.im}{y.re} - \frac{y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 2.5 \cdot 10^{-187}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.re \leq 2.7 \cdot 10^{-187}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 4.1 \cdot 10^{-165}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.re \leq 8.4 \cdot 10^{-150}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.re \leq 2.05 \cdot 10^{-137}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.re \leq 2.1 \cdot 10^{-137}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 8.5 \cdot 10^{-123}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.re \leq 5.2 \cdot 10^{-122}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 1.05 \cdot 10^{-109}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.re \leq 7.5 \cdot 10^{-99}:\\ \;\;\;\;\frac{y.im \cdot x.re}{y.re \cdot \left(-y.re\right) - y.im \cdot y.im}\\ \mathbf{elif}\;y.re \leq 1.85 \cdot 10^{-98}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 2.7 \cdot 10^{-52}:\\ \;\;\;\;\frac{y.im \cdot x.re}{y.re \cdot \left(-y.re\right) - y.im \cdot y.im}\\ \mathbf{elif}\;y.re \leq 1.72 \cdot 10^{-43}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 8.2 \cdot 10^{-26}:\\ \;\;\;\;\frac{y.re \cdot x.im}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;y.re \leq 7500000:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 1.7 \cdot 10^{+21}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.re \leq 3.6 \cdot 10^{+37}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.re \leq 3.95 \cdot 10^{+37}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.re \leq 10^{+57}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 2.7 \cdot 10^{+57}:\\ \;\;\;\;\frac{y.re \cdot \frac{x.im}{y.im} - x.re}{y.im}\\ \mathbf{elif}\;y.re \leq 1.6 \cdot 10^{+78}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.re \leq 1.62 \cdot 10^{+78}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.re \leq 5.5 \cdot 10^{+101}:\\ \;\;\;\;\frac{1}{\frac{y.re}{x.im - x.re \cdot \frac{y.im}{y.re}}}\\ \mathbf{elif}\;y.re \leq 3.5 \cdot 10^{+117}:\\ \;\;\;\;\frac{y.re \cdot x.im}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{elif}\;y.re \leq 3.6 \cdot 10^{+117}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.re \leq 2 \cdot 10^{+136}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 2.02 \cdot 10^{+136}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.re \leq 2.1 \cdot 10^{+163}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 2.15 \cdot 10^{+163}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;y.re \leq 2.7 \cdot 10^{+171}:\\ \;\;\;\;\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 2.8 \cdot 10^{+171}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.re \leq 2.2 \cdot 10^{+198}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 2.3 \cdot 10^{+198}:\\ \;\;\;\;\frac{y.re}{y.im} \cdot \frac{x.im}{y.im}\\ \mathbf{elif}\;y.re \leq 2.9 \cdot 10^{+207}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 3 \cdot 10^{+207}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;y.re \leq 2.35 \cdot 10^{+224}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.re \leq 2.4 \cdot 10^{+224}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{else}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \end{array} \]
  5. Add Preprocessing

Alternative 19: 51.8% accurate, 0.1× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{x.re}{-y.im}\\ t_1 := \frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{if}\;x.re \leq 2 \cdot 10^{-110}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x.re \leq 1.65 \cdot 10^{-83}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x.re \leq 3.5 \cdot 10^{-76}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x.re \leq 1.9 \cdot 10^{-73}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x.re \leq 1.85 \cdot 10^{-66}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;x.re \leq 4.1 \cdot 10^{-66}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x.re \leq 6.5 \cdot 10^{-54}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;x.re \leq 7.2 \cdot 10^{-40}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x.re \leq 1.6 \cdot 10^{-39}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;x.re \leq 1.42 \cdot 10^{-30}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x.re \leq 2.5 \cdot 10^{-28}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;x.re \leq 5 \cdot 10^{-26}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x.re \leq 8.8 \cdot 10^{+15}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x.re \leq 9 \cdot 10^{+17}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x.re \leq 1.1 \cdot 10^{+22}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;x.re \leq 1.15 \cdot 10^{+22}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;x.re \leq 3.8 \cdot 10^{+57}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x.re \leq 7.6 \cdot 10^{+59}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x.re \leq 5.5 \cdot 10^{+101}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x.re \leq 2.25 \cdot 10^{+136}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x.re \leq 8.2 \cdot 10^{+156}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;x.re \leq 2.35 \cdot 10^{+162}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x.re \leq 5.1 \cdot 10^{+169}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;x.re \leq 2.4 \cdot 10^{+171} \lor \neg \left(x.re \leq 3 \cdot 10^{+173} \lor \neg \left(x.re \leq 7.4 \cdot 10^{+173}\right) \land \left(x.re \leq 3 \cdot 10^{+188} \lor \neg \left(x.re \leq 1.16 \cdot 10^{+193}\right) \land \left(x.re \leq 1.7 \cdot 10^{+218} \lor \neg \left(x.re \leq 4.4 \cdot 10^{+256}\right) \land \left(x.re \leq 2.8 \cdot 10^{+259} \lor \neg \left(x.re \leq 1.9 \cdot 10^{+284}\right) \land x.re \leq 1.1 \cdot 10^{+297}\right)\right)\right)\right):\\ \;\;\;\;t\_0\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
(FPCore (x.re x.im y.re y.im)
 :precision binary64
 (let* ((t_0 (/ x.re (- y.im))) (t_1 (/ (- x.im (* x.re (/ y.im y.re))) y.re)))
   (if (<= x.re 2e-110)
     t_1
     (if (<= x.re 1.65e-83)
       t_0
       (if (<= x.re 3.5e-76)
         t_1
         (if (<= x.re 1.9e-73)
           t_0
           (if (<= x.re 1.85e-66)
             (/ x.im y.re)
             (if (<= x.re 4.1e-66)
               t_0
               (if (<= x.re 6.5e-54)
                 (/ x.im y.re)
                 (if (<= x.re 7.2e-40)
                   t_0
                   (if (<= x.re 1.6e-39)
                     (/ (* x.im (/ y.re y.im)) y.im)
                     (if (<= x.re 1.42e-30)
                       t_0
                       (if (<= x.re 2.5e-28)
                         (/ x.im y.re)
                         (if (<= x.re 5e-26)
                           t_0
                           (if (<= x.re 8.8e+15)
                             t_1
                             (if (<= x.re 9e+17)
                               t_0
                               (if (<= x.re 1.1e+22)
                                 (/ x.im y.re)
                                 (if (<= x.re 1.15e+22)
                                   (* x.im (/ (/ y.re y.im) y.im))
                                   (if (<= x.re 3.8e+57)
                                     t_1
                                     (if (<= x.re 7.6e+59)
                                       t_0
                                       (if (<= x.re 5.5e+101)
                                         t_1
                                         (if (<= x.re 2.25e+136)
                                           t_0
                                           (if (<= x.re 8.2e+156)
                                             (/ x.im y.re)
                                             (if (<= x.re 2.35e+162)
                                               t_0
                                               (if (<= x.re 5.1e+169)
                                                 (/ x.im y.re)
                                                 (if (or (<= x.re 2.4e+171)
                                                         (not
                                                          (or (<= x.re 3e+173)
                                                              (and (not
                                                                    (<=
                                                                     x.re
                                                                     7.4e+173))
                                                                   (or (<=
                                                                        x.re
                                                                        3e+188)
                                                                       (and (not
                                                                             (<=
                                                                              x.re
                                                                              1.16e+193))
                                                                            (or (<=
                                                                                 x.re
                                                                                 1.7e+218)
                                                                                (and (not
                                                                                      (<=
                                                                                       x.re
                                                                                       4.4e+256))
                                                                                     (or (<=
                                                                                          x.re
                                                                                          2.8e+259)
                                                                                         (and (not
                                                                                               (<=
                                                                                                x.re
                                                                                                1.9e+284))
                                                                                              (<=
                                                                                               x.re
                                                                                               1.1e+297)))))))))))
                                                   t_0
                                                   t_1))))))))))))))))))))))))))
double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double t_0 = x_46_re / -y_46_im;
	double t_1 = (x_46_im - (x_46_re * (y_46_im / y_46_re))) / y_46_re;
	double tmp;
	if (x_46_re <= 2e-110) {
		tmp = t_1;
	} else if (x_46_re <= 1.65e-83) {
		tmp = t_0;
	} else if (x_46_re <= 3.5e-76) {
		tmp = t_1;
	} else if (x_46_re <= 1.9e-73) {
		tmp = t_0;
	} else if (x_46_re <= 1.85e-66) {
		tmp = x_46_im / y_46_re;
	} else if (x_46_re <= 4.1e-66) {
		tmp = t_0;
	} else if (x_46_re <= 6.5e-54) {
		tmp = x_46_im / y_46_re;
	} else if (x_46_re <= 7.2e-40) {
		tmp = t_0;
	} else if (x_46_re <= 1.6e-39) {
		tmp = (x_46_im * (y_46_re / y_46_im)) / y_46_im;
	} else if (x_46_re <= 1.42e-30) {
		tmp = t_0;
	} else if (x_46_re <= 2.5e-28) {
		tmp = x_46_im / y_46_re;
	} else if (x_46_re <= 5e-26) {
		tmp = t_0;
	} else if (x_46_re <= 8.8e+15) {
		tmp = t_1;
	} else if (x_46_re <= 9e+17) {
		tmp = t_0;
	} else if (x_46_re <= 1.1e+22) {
		tmp = x_46_im / y_46_re;
	} else if (x_46_re <= 1.15e+22) {
		tmp = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	} else if (x_46_re <= 3.8e+57) {
		tmp = t_1;
	} else if (x_46_re <= 7.6e+59) {
		tmp = t_0;
	} else if (x_46_re <= 5.5e+101) {
		tmp = t_1;
	} else if (x_46_re <= 2.25e+136) {
		tmp = t_0;
	} else if (x_46_re <= 8.2e+156) {
		tmp = x_46_im / y_46_re;
	} else if (x_46_re <= 2.35e+162) {
		tmp = t_0;
	} else if (x_46_re <= 5.1e+169) {
		tmp = x_46_im / y_46_re;
	} else if ((x_46_re <= 2.4e+171) || !((x_46_re <= 3e+173) || (!(x_46_re <= 7.4e+173) && ((x_46_re <= 3e+188) || (!(x_46_re <= 1.16e+193) && ((x_46_re <= 1.7e+218) || (!(x_46_re <= 4.4e+256) && ((x_46_re <= 2.8e+259) || (!(x_46_re <= 1.9e+284) && (x_46_re <= 1.1e+297)))))))))) {
		tmp = t_0;
	} else {
		tmp = t_1;
	}
	return tmp;
}
real(8) function code(x_46re, x_46im, y_46re, y_46im)
    real(8), intent (in) :: x_46re
    real(8), intent (in) :: x_46im
    real(8), intent (in) :: y_46re
    real(8), intent (in) :: y_46im
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: tmp
    t_0 = x_46re / -y_46im
    t_1 = (x_46im - (x_46re * (y_46im / y_46re))) / y_46re
    if (x_46re <= 2d-110) then
        tmp = t_1
    else if (x_46re <= 1.65d-83) then
        tmp = t_0
    else if (x_46re <= 3.5d-76) then
        tmp = t_1
    else if (x_46re <= 1.9d-73) then
        tmp = t_0
    else if (x_46re <= 1.85d-66) then
        tmp = x_46im / y_46re
    else if (x_46re <= 4.1d-66) then
        tmp = t_0
    else if (x_46re <= 6.5d-54) then
        tmp = x_46im / y_46re
    else if (x_46re <= 7.2d-40) then
        tmp = t_0
    else if (x_46re <= 1.6d-39) then
        tmp = (x_46im * (y_46re / y_46im)) / y_46im
    else if (x_46re <= 1.42d-30) then
        tmp = t_0
    else if (x_46re <= 2.5d-28) then
        tmp = x_46im / y_46re
    else if (x_46re <= 5d-26) then
        tmp = t_0
    else if (x_46re <= 8.8d+15) then
        tmp = t_1
    else if (x_46re <= 9d+17) then
        tmp = t_0
    else if (x_46re <= 1.1d+22) then
        tmp = x_46im / y_46re
    else if (x_46re <= 1.15d+22) then
        tmp = x_46im * ((y_46re / y_46im) / y_46im)
    else if (x_46re <= 3.8d+57) then
        tmp = t_1
    else if (x_46re <= 7.6d+59) then
        tmp = t_0
    else if (x_46re <= 5.5d+101) then
        tmp = t_1
    else if (x_46re <= 2.25d+136) then
        tmp = t_0
    else if (x_46re <= 8.2d+156) then
        tmp = x_46im / y_46re
    else if (x_46re <= 2.35d+162) then
        tmp = t_0
    else if (x_46re <= 5.1d+169) then
        tmp = x_46im / y_46re
    else if ((x_46re <= 2.4d+171) .or. (.not. (x_46re <= 3d+173) .or. (.not. (x_46re <= 7.4d+173)) .and. (x_46re <= 3d+188) .or. (.not. (x_46re <= 1.16d+193)) .and. (x_46re <= 1.7d+218) .or. (.not. (x_46re <= 4.4d+256)) .and. (x_46re <= 2.8d+259) .or. (.not. (x_46re <= 1.9d+284)) .and. (x_46re <= 1.1d+297))) then
        tmp = t_0
    else
        tmp = t_1
    end if
    code = tmp
end function
public static double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double t_0 = x_46_re / -y_46_im;
	double t_1 = (x_46_im - (x_46_re * (y_46_im / y_46_re))) / y_46_re;
	double tmp;
	if (x_46_re <= 2e-110) {
		tmp = t_1;
	} else if (x_46_re <= 1.65e-83) {
		tmp = t_0;
	} else if (x_46_re <= 3.5e-76) {
		tmp = t_1;
	} else if (x_46_re <= 1.9e-73) {
		tmp = t_0;
	} else if (x_46_re <= 1.85e-66) {
		tmp = x_46_im / y_46_re;
	} else if (x_46_re <= 4.1e-66) {
		tmp = t_0;
	} else if (x_46_re <= 6.5e-54) {
		tmp = x_46_im / y_46_re;
	} else if (x_46_re <= 7.2e-40) {
		tmp = t_0;
	} else if (x_46_re <= 1.6e-39) {
		tmp = (x_46_im * (y_46_re / y_46_im)) / y_46_im;
	} else if (x_46_re <= 1.42e-30) {
		tmp = t_0;
	} else if (x_46_re <= 2.5e-28) {
		tmp = x_46_im / y_46_re;
	} else if (x_46_re <= 5e-26) {
		tmp = t_0;
	} else if (x_46_re <= 8.8e+15) {
		tmp = t_1;
	} else if (x_46_re <= 9e+17) {
		tmp = t_0;
	} else if (x_46_re <= 1.1e+22) {
		tmp = x_46_im / y_46_re;
	} else if (x_46_re <= 1.15e+22) {
		tmp = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	} else if (x_46_re <= 3.8e+57) {
		tmp = t_1;
	} else if (x_46_re <= 7.6e+59) {
		tmp = t_0;
	} else if (x_46_re <= 5.5e+101) {
		tmp = t_1;
	} else if (x_46_re <= 2.25e+136) {
		tmp = t_0;
	} else if (x_46_re <= 8.2e+156) {
		tmp = x_46_im / y_46_re;
	} else if (x_46_re <= 2.35e+162) {
		tmp = t_0;
	} else if (x_46_re <= 5.1e+169) {
		tmp = x_46_im / y_46_re;
	} else if ((x_46_re <= 2.4e+171) || !((x_46_re <= 3e+173) || (!(x_46_re <= 7.4e+173) && ((x_46_re <= 3e+188) || (!(x_46_re <= 1.16e+193) && ((x_46_re <= 1.7e+218) || (!(x_46_re <= 4.4e+256) && ((x_46_re <= 2.8e+259) || (!(x_46_re <= 1.9e+284) && (x_46_re <= 1.1e+297)))))))))) {
		tmp = t_0;
	} else {
		tmp = t_1;
	}
	return tmp;
}
def code(x_46_re, x_46_im, y_46_re, y_46_im):
	t_0 = x_46_re / -y_46_im
	t_1 = (x_46_im - (x_46_re * (y_46_im / y_46_re))) / y_46_re
	tmp = 0
	if x_46_re <= 2e-110:
		tmp = t_1
	elif x_46_re <= 1.65e-83:
		tmp = t_0
	elif x_46_re <= 3.5e-76:
		tmp = t_1
	elif x_46_re <= 1.9e-73:
		tmp = t_0
	elif x_46_re <= 1.85e-66:
		tmp = x_46_im / y_46_re
	elif x_46_re <= 4.1e-66:
		tmp = t_0
	elif x_46_re <= 6.5e-54:
		tmp = x_46_im / y_46_re
	elif x_46_re <= 7.2e-40:
		tmp = t_0
	elif x_46_re <= 1.6e-39:
		tmp = (x_46_im * (y_46_re / y_46_im)) / y_46_im
	elif x_46_re <= 1.42e-30:
		tmp = t_0
	elif x_46_re <= 2.5e-28:
		tmp = x_46_im / y_46_re
	elif x_46_re <= 5e-26:
		tmp = t_0
	elif x_46_re <= 8.8e+15:
		tmp = t_1
	elif x_46_re <= 9e+17:
		tmp = t_0
	elif x_46_re <= 1.1e+22:
		tmp = x_46_im / y_46_re
	elif x_46_re <= 1.15e+22:
		tmp = x_46_im * ((y_46_re / y_46_im) / y_46_im)
	elif x_46_re <= 3.8e+57:
		tmp = t_1
	elif x_46_re <= 7.6e+59:
		tmp = t_0
	elif x_46_re <= 5.5e+101:
		tmp = t_1
	elif x_46_re <= 2.25e+136:
		tmp = t_0
	elif x_46_re <= 8.2e+156:
		tmp = x_46_im / y_46_re
	elif x_46_re <= 2.35e+162:
		tmp = t_0
	elif x_46_re <= 5.1e+169:
		tmp = x_46_im / y_46_re
	elif (x_46_re <= 2.4e+171) or not ((x_46_re <= 3e+173) or (not (x_46_re <= 7.4e+173) and ((x_46_re <= 3e+188) or (not (x_46_re <= 1.16e+193) and ((x_46_re <= 1.7e+218) or (not (x_46_re <= 4.4e+256) and ((x_46_re <= 2.8e+259) or (not (x_46_re <= 1.9e+284) and (x_46_re <= 1.1e+297))))))))):
		tmp = t_0
	else:
		tmp = t_1
	return tmp
function code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = Float64(x_46_re / Float64(-y_46_im))
	t_1 = Float64(Float64(x_46_im - Float64(x_46_re * Float64(y_46_im / y_46_re))) / y_46_re)
	tmp = 0.0
	if (x_46_re <= 2e-110)
		tmp = t_1;
	elseif (x_46_re <= 1.65e-83)
		tmp = t_0;
	elseif (x_46_re <= 3.5e-76)
		tmp = t_1;
	elseif (x_46_re <= 1.9e-73)
		tmp = t_0;
	elseif (x_46_re <= 1.85e-66)
		tmp = Float64(x_46_im / y_46_re);
	elseif (x_46_re <= 4.1e-66)
		tmp = t_0;
	elseif (x_46_re <= 6.5e-54)
		tmp = Float64(x_46_im / y_46_re);
	elseif (x_46_re <= 7.2e-40)
		tmp = t_0;
	elseif (x_46_re <= 1.6e-39)
		tmp = Float64(Float64(x_46_im * Float64(y_46_re / y_46_im)) / y_46_im);
	elseif (x_46_re <= 1.42e-30)
		tmp = t_0;
	elseif (x_46_re <= 2.5e-28)
		tmp = Float64(x_46_im / y_46_re);
	elseif (x_46_re <= 5e-26)
		tmp = t_0;
	elseif (x_46_re <= 8.8e+15)
		tmp = t_1;
	elseif (x_46_re <= 9e+17)
		tmp = t_0;
	elseif (x_46_re <= 1.1e+22)
		tmp = Float64(x_46_im / y_46_re);
	elseif (x_46_re <= 1.15e+22)
		tmp = Float64(x_46_im * Float64(Float64(y_46_re / y_46_im) / y_46_im));
	elseif (x_46_re <= 3.8e+57)
		tmp = t_1;
	elseif (x_46_re <= 7.6e+59)
		tmp = t_0;
	elseif (x_46_re <= 5.5e+101)
		tmp = t_1;
	elseif (x_46_re <= 2.25e+136)
		tmp = t_0;
	elseif (x_46_re <= 8.2e+156)
		tmp = Float64(x_46_im / y_46_re);
	elseif (x_46_re <= 2.35e+162)
		tmp = t_0;
	elseif (x_46_re <= 5.1e+169)
		tmp = Float64(x_46_im / y_46_re);
	elseif ((x_46_re <= 2.4e+171) || !((x_46_re <= 3e+173) || (!(x_46_re <= 7.4e+173) && ((x_46_re <= 3e+188) || (!(x_46_re <= 1.16e+193) && ((x_46_re <= 1.7e+218) || (!(x_46_re <= 4.4e+256) && ((x_46_re <= 2.8e+259) || (!(x_46_re <= 1.9e+284) && (x_46_re <= 1.1e+297))))))))))
		tmp = t_0;
	else
		tmp = t_1;
	end
	return tmp
end
function tmp_2 = code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = x_46_re / -y_46_im;
	t_1 = (x_46_im - (x_46_re * (y_46_im / y_46_re))) / y_46_re;
	tmp = 0.0;
	if (x_46_re <= 2e-110)
		tmp = t_1;
	elseif (x_46_re <= 1.65e-83)
		tmp = t_0;
	elseif (x_46_re <= 3.5e-76)
		tmp = t_1;
	elseif (x_46_re <= 1.9e-73)
		tmp = t_0;
	elseif (x_46_re <= 1.85e-66)
		tmp = x_46_im / y_46_re;
	elseif (x_46_re <= 4.1e-66)
		tmp = t_0;
	elseif (x_46_re <= 6.5e-54)
		tmp = x_46_im / y_46_re;
	elseif (x_46_re <= 7.2e-40)
		tmp = t_0;
	elseif (x_46_re <= 1.6e-39)
		tmp = (x_46_im * (y_46_re / y_46_im)) / y_46_im;
	elseif (x_46_re <= 1.42e-30)
		tmp = t_0;
	elseif (x_46_re <= 2.5e-28)
		tmp = x_46_im / y_46_re;
	elseif (x_46_re <= 5e-26)
		tmp = t_0;
	elseif (x_46_re <= 8.8e+15)
		tmp = t_1;
	elseif (x_46_re <= 9e+17)
		tmp = t_0;
	elseif (x_46_re <= 1.1e+22)
		tmp = x_46_im / y_46_re;
	elseif (x_46_re <= 1.15e+22)
		tmp = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	elseif (x_46_re <= 3.8e+57)
		tmp = t_1;
	elseif (x_46_re <= 7.6e+59)
		tmp = t_0;
	elseif (x_46_re <= 5.5e+101)
		tmp = t_1;
	elseif (x_46_re <= 2.25e+136)
		tmp = t_0;
	elseif (x_46_re <= 8.2e+156)
		tmp = x_46_im / y_46_re;
	elseif (x_46_re <= 2.35e+162)
		tmp = t_0;
	elseif (x_46_re <= 5.1e+169)
		tmp = x_46_im / y_46_re;
	elseif ((x_46_re <= 2.4e+171) || ~(((x_46_re <= 3e+173) || (~((x_46_re <= 7.4e+173)) && ((x_46_re <= 3e+188) || (~((x_46_re <= 1.16e+193)) && ((x_46_re <= 1.7e+218) || (~((x_46_re <= 4.4e+256)) && ((x_46_re <= 2.8e+259) || (~((x_46_re <= 1.9e+284)) && (x_46_re <= 1.1e+297)))))))))))
		tmp = t_0;
	else
		tmp = t_1;
	end
	tmp_2 = tmp;
end
code[x$46$re_, x$46$im_, y$46$re_, y$46$im_] := Block[{t$95$0 = N[(x$46$re / (-y$46$im)), $MachinePrecision]}, Block[{t$95$1 = N[(N[(x$46$im - N[(x$46$re * N[(y$46$im / y$46$re), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y$46$re), $MachinePrecision]}, If[LessEqual[x$46$re, 2e-110], t$95$1, If[LessEqual[x$46$re, 1.65e-83], t$95$0, If[LessEqual[x$46$re, 3.5e-76], t$95$1, If[LessEqual[x$46$re, 1.9e-73], t$95$0, If[LessEqual[x$46$re, 1.85e-66], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[x$46$re, 4.1e-66], t$95$0, If[LessEqual[x$46$re, 6.5e-54], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[x$46$re, 7.2e-40], t$95$0, If[LessEqual[x$46$re, 1.6e-39], N[(N[(x$46$im * N[(y$46$re / y$46$im), $MachinePrecision]), $MachinePrecision] / y$46$im), $MachinePrecision], If[LessEqual[x$46$re, 1.42e-30], t$95$0, If[LessEqual[x$46$re, 2.5e-28], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[x$46$re, 5e-26], t$95$0, If[LessEqual[x$46$re, 8.8e+15], t$95$1, If[LessEqual[x$46$re, 9e+17], t$95$0, If[LessEqual[x$46$re, 1.1e+22], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[x$46$re, 1.15e+22], N[(x$46$im * N[(N[(y$46$re / y$46$im), $MachinePrecision] / y$46$im), $MachinePrecision]), $MachinePrecision], If[LessEqual[x$46$re, 3.8e+57], t$95$1, If[LessEqual[x$46$re, 7.6e+59], t$95$0, If[LessEqual[x$46$re, 5.5e+101], t$95$1, If[LessEqual[x$46$re, 2.25e+136], t$95$0, If[LessEqual[x$46$re, 8.2e+156], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[x$46$re, 2.35e+162], t$95$0, If[LessEqual[x$46$re, 5.1e+169], N[(x$46$im / y$46$re), $MachinePrecision], If[Or[LessEqual[x$46$re, 2.4e+171], N[Not[Or[LessEqual[x$46$re, 3e+173], And[N[Not[LessEqual[x$46$re, 7.4e+173]], $MachinePrecision], Or[LessEqual[x$46$re, 3e+188], And[N[Not[LessEqual[x$46$re, 1.16e+193]], $MachinePrecision], Or[LessEqual[x$46$re, 1.7e+218], And[N[Not[LessEqual[x$46$re, 4.4e+256]], $MachinePrecision], Or[LessEqual[x$46$re, 2.8e+259], And[N[Not[LessEqual[x$46$re, 1.9e+284]], $MachinePrecision], LessEqual[x$46$re, 1.1e+297]]]]]]]]]], $MachinePrecision]], t$95$0, t$95$1]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{x.re}{-y.im}\\
t_1 := \frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\
\mathbf{if}\;x.re \leq 2 \cdot 10^{-110}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x.re \leq 1.65 \cdot 10^{-83}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;x.re \leq 3.5 \cdot 10^{-76}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x.re \leq 1.9 \cdot 10^{-73}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;x.re \leq 1.85 \cdot 10^{-66}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;x.re \leq 4.1 \cdot 10^{-66}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;x.re \leq 6.5 \cdot 10^{-54}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;x.re \leq 7.2 \cdot 10^{-40}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;x.re \leq 1.6 \cdot 10^{-39}:\\
\;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\

\mathbf{elif}\;x.re \leq 1.42 \cdot 10^{-30}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;x.re \leq 2.5 \cdot 10^{-28}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;x.re \leq 5 \cdot 10^{-26}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;x.re \leq 8.8 \cdot 10^{+15}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x.re \leq 9 \cdot 10^{+17}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;x.re \leq 1.1 \cdot 10^{+22}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;x.re \leq 1.15 \cdot 10^{+22}:\\
\;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\

\mathbf{elif}\;x.re \leq 3.8 \cdot 10^{+57}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x.re \leq 7.6 \cdot 10^{+59}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;x.re \leq 5.5 \cdot 10^{+101}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x.re \leq 2.25 \cdot 10^{+136}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;x.re \leq 8.2 \cdot 10^{+156}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;x.re \leq 2.35 \cdot 10^{+162}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;x.re \leq 5.1 \cdot 10^{+169}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;x.re \leq 2.4 \cdot 10^{+171} \lor \neg \left(x.re \leq 3 \cdot 10^{+173} \lor \neg \left(x.re \leq 7.4 \cdot 10^{+173}\right) \land \left(x.re \leq 3 \cdot 10^{+188} \lor \neg \left(x.re \leq 1.16 \cdot 10^{+193}\right) \land \left(x.re \leq 1.7 \cdot 10^{+218} \lor \neg \left(x.re \leq 4.4 \cdot 10^{+256}\right) \land \left(x.re \leq 2.8 \cdot 10^{+259} \lor \neg \left(x.re \leq 1.9 \cdot 10^{+284}\right) \land x.re \leq 1.1 \cdot 10^{+297}\right)\right)\right)\right):\\
\;\;\;\;t\_0\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 5 regimes
  2. if x.re < 2.0000000000000001e-110 or 1.65e-83 < x.re < 3.49999999999999997e-76 or 5.00000000000000019e-26 < x.re < 8.8e15 or 1.1500000000000001e22 < x.re < 3.7999999999999999e57 or 7.6000000000000002e59 < x.re < 5.50000000000000018e101 or 2.39999999999999998e171 < x.re < 2.9999999999999998e173 or 7.39999999999999972e173 < x.re < 3.0000000000000001e188 or 1.1600000000000001e193 < x.re < 1.70000000000000004e218 or 4.3999999999999999e256 < x.re < 2.8000000000000001e259 or 1.8999999999999999e284 < x.re < 1.09999999999999996e297

    1. Initial program 64.2%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around inf 67.3%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    4. Step-by-step derivation
      1. remove-double-neg67.3%

        \[\leadsto \frac{\color{blue}{\left(-\left(-x.im\right)\right)} + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      2. mul-1-neg67.3%

        \[\leadsto \frac{\left(-\color{blue}{-1 \cdot x.im}\right) + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      3. neg-mul-167.3%

        \[\leadsto \frac{\color{blue}{-1 \cdot \left(-1 \cdot x.im\right)} + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      4. distribute-lft-in67.3%

        \[\leadsto \frac{\color{blue}{-1 \cdot \left(-1 \cdot x.im + \frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      5. mul-1-neg67.3%

        \[\leadsto \frac{\color{blue}{-\left(-1 \cdot x.im + \frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      6. distribute-neg-in67.3%

        \[\leadsto \frac{\color{blue}{\left(--1 \cdot x.im\right) + \left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      7. mul-1-neg67.3%

        \[\leadsto \frac{\left(-\color{blue}{\left(-x.im\right)}\right) + \left(-\frac{x.re \cdot y.im}{y.re}\right)}{y.re} \]
      8. remove-double-neg67.3%

        \[\leadsto \frac{\color{blue}{x.im} + \left(-\frac{x.re \cdot y.im}{y.re}\right)}{y.re} \]
      9. unsub-neg67.3%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      10. associate-/l*69.7%

        \[\leadsto \frac{x.im - \color{blue}{x.re \cdot \frac{y.im}{y.re}}}{y.re} \]
    5. Simplified69.7%

      \[\leadsto \color{blue}{\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}} \]

    if 2.0000000000000001e-110 < x.re < 1.65e-83 or 3.49999999999999997e-76 < x.re < 1.9000000000000001e-73 or 1.8500000000000001e-66 < x.re < 4.09999999999999998e-66 or 6.49999999999999991e-54 < x.re < 7.2e-40 or 1.5999999999999999e-39 < x.re < 1.42e-30 or 2.5000000000000001e-28 < x.re < 5.00000000000000019e-26 or 8.8e15 < x.re < 9e17 or 3.7999999999999999e57 < x.re < 7.6000000000000002e59 or 5.50000000000000018e101 < x.re < 2.25e136 or 8.2000000000000003e156 < x.re < 2.35000000000000001e162 or 5.10000000000000008e169 < x.re < 2.39999999999999998e171 or 2.9999999999999998e173 < x.re < 7.39999999999999972e173 or 3.0000000000000001e188 < x.re < 1.1600000000000001e193 or 1.70000000000000004e218 < x.re < 4.3999999999999999e256 or 2.8000000000000001e259 < x.re < 1.8999999999999999e284 or 1.09999999999999996e297 < x.re

    1. Initial program 46.9%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around 0 95.7%

      \[\leadsto \color{blue}{-1 \cdot \frac{x.re}{y.im}} \]
    4. Step-by-step derivation
      1. associate-*r/95.7%

        \[\leadsto \color{blue}{\frac{-1 \cdot x.re}{y.im}} \]
      2. neg-mul-195.7%

        \[\leadsto \frac{\color{blue}{-x.re}}{y.im} \]
    5. Simplified95.7%

      \[\leadsto \color{blue}{\frac{-x.re}{y.im}} \]

    if 1.9000000000000001e-73 < x.re < 1.8500000000000001e-66 or 4.09999999999999998e-66 < x.re < 6.49999999999999991e-54 or 1.42e-30 < x.re < 2.5000000000000001e-28 or 9e17 < x.re < 1.1e22 or 2.25e136 < x.re < 8.2000000000000003e156 or 2.35000000000000001e162 < x.re < 5.10000000000000008e169

    1. Initial program 24.6%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around inf 100.0%

      \[\leadsto \color{blue}{\frac{x.im}{y.re}} \]

    if 7.2e-40 < x.re < 1.5999999999999999e-39

    1. Initial program 6.2%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub6.2%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative6.2%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt6.2%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac6.2%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg6.2%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define6.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define98.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*98.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt98.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow298.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define98.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr98.4%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 98.4%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/98.4%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified98.4%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 98.4%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/98.4%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified98.4%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]

    if 1.1e22 < x.re < 1.1500000000000001e22

    1. Initial program 100.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub100.0%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative100.0%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt100.0%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac100.0%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg100.0%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow2100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 100.0%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 100.0%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified100.0%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    11. Step-by-step derivation
      1. associate-/l*100.0%

        \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]
    12. Applied egg-rr100.0%

      \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]
  3. Recombined 5 regimes into one program.
  4. Final simplification74.8%

    \[\leadsto \begin{array}{l} \mathbf{if}\;x.re \leq 2 \cdot 10^{-110}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;x.re \leq 1.65 \cdot 10^{-83}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;x.re \leq 3.5 \cdot 10^{-76}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;x.re \leq 1.9 \cdot 10^{-73}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;x.re \leq 1.85 \cdot 10^{-66}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;x.re \leq 4.1 \cdot 10^{-66}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;x.re \leq 6.5 \cdot 10^{-54}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;x.re \leq 7.2 \cdot 10^{-40}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;x.re \leq 1.6 \cdot 10^{-39}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;x.re \leq 1.42 \cdot 10^{-30}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;x.re \leq 2.5 \cdot 10^{-28}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;x.re \leq 5 \cdot 10^{-26}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;x.re \leq 8.8 \cdot 10^{+15}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;x.re \leq 9 \cdot 10^{+17}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;x.re \leq 1.1 \cdot 10^{+22}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;x.re \leq 1.15 \cdot 10^{+22}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;x.re \leq 3.8 \cdot 10^{+57}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;x.re \leq 7.6 \cdot 10^{+59}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;x.re \leq 5.5 \cdot 10^{+101}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;x.re \leq 2.25 \cdot 10^{+136}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;x.re \leq 8.2 \cdot 10^{+156}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;x.re \leq 2.35 \cdot 10^{+162}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;x.re \leq 5.1 \cdot 10^{+169}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;x.re \leq 2.4 \cdot 10^{+171} \lor \neg \left(x.re \leq 3 \cdot 10^{+173} \lor \neg \left(x.re \leq 7.4 \cdot 10^{+173}\right) \land \left(x.re \leq 3 \cdot 10^{+188} \lor \neg \left(x.re \leq 1.16 \cdot 10^{+193}\right) \land \left(x.re \leq 1.7 \cdot 10^{+218} \lor \neg \left(x.re \leq 4.4 \cdot 10^{+256}\right) \land \left(x.re \leq 2.8 \cdot 10^{+259} \lor \neg \left(x.re \leq 1.9 \cdot 10^{+284}\right) \land x.re \leq 1.1 \cdot 10^{+297}\right)\right)\right)\right):\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{else}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \end{array} \]
  5. Add Preprocessing

Alternative 20: 51.8% accurate, 0.1× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{x.re}{-y.im}\\ t_1 := \frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ t_2 := \frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{if}\;x.re \leq 1.3 \cdot 10^{-111}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x.re \leq 1.42 \cdot 10^{-83}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x.re \leq 4.1 \cdot 10^{-76}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x.re \leq 2.25 \cdot 10^{-73}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x.re \leq 1.85 \cdot 10^{-66}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;x.re \leq 1.9 \cdot 10^{-66}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x.re \leq 5.2 \cdot 10^{-54}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;x.re \leq 1.55 \cdot 10^{-39}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x.re \leq 2.7 \cdot 10^{-39}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;x.re \leq 2.95 \cdot 10^{-30}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x.re \leq 1.9 \cdot 10^{-29}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;x.re \leq 1.25 \cdot 10^{-20}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x.re \leq 6 \cdot 10^{+17}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x.re \leq 6.2 \cdot 10^{+17}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x.re \leq 1.1 \cdot 10^{+22}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;x.re \leq 1.15 \cdot 10^{+22}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;x.re \leq 3.8 \cdot 10^{+57}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x.re \leq 4.2 \cdot 10^{+58}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x.re \leq 3 \cdot 10^{+101}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x.re \leq 1.12 \cdot 10^{+151}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x.re \leq 1.92 \cdot 10^{+155}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;x.re \leq 2.8 \cdot 10^{+161}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x.re \leq 2.15 \cdot 10^{+170}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;x.re \leq 4.5 \cdot 10^{+171}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x.re \leq 4.85 \cdot 10^{+173}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x.re \leq 1.36 \cdot 10^{+174}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x.re \leq 3 \cdot 10^{+188}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x.re \leq 2.1 \cdot 10^{+193}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x.re \leq 1.9 \cdot 10^{+224}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x.re \leq 2.35 \cdot 10^{+256}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x.re \leq 3.75 \cdot 10^{+258}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x.re \leq 7 \cdot 10^{+286} \lor \neg \left(x.re \leq 1.65 \cdot 10^{+299}\right):\\ \;\;\;\;t\_0\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
(FPCore (x.re x.im y.re y.im)
 :precision binary64
 (let* ((t_0 (/ x.re (- y.im)))
        (t_1 (/ (- x.im (* y.im (/ x.re y.re))) y.re))
        (t_2 (/ (- x.im (* x.re (/ y.im y.re))) y.re)))
   (if (<= x.re 1.3e-111)
     t_2
     (if (<= x.re 1.42e-83)
       t_0
       (if (<= x.re 4.1e-76)
         t_1
         (if (<= x.re 2.25e-73)
           t_0
           (if (<= x.re 1.85e-66)
             (/ x.im y.re)
             (if (<= x.re 1.9e-66)
               t_0
               (if (<= x.re 5.2e-54)
                 (/ x.im y.re)
                 (if (<= x.re 1.55e-39)
                   t_0
                   (if (<= x.re 2.7e-39)
                     (/ (* x.im (/ y.re y.im)) y.im)
                     (if (<= x.re 2.95e-30)
                       t_0
                       (if (<= x.re 1.9e-29)
                         (/ x.im y.re)
                         (if (<= x.re 1.25e-20)
                           t_0
                           (if (<= x.re 6e+17)
                             t_2
                             (if (<= x.re 6.2e+17)
                               t_0
                               (if (<= x.re 1.1e+22)
                                 (/ x.im y.re)
                                 (if (<= x.re 1.15e+22)
                                   (* x.im (/ (/ y.re y.im) y.im))
                                   (if (<= x.re 3.8e+57)
                                     t_2
                                     (if (<= x.re 4.2e+58)
                                       t_0
                                       (if (<= x.re 3e+101)
                                         t_2
                                         (if (<= x.re 1.12e+151)
                                           t_0
                                           (if (<= x.re 1.92e+155)
                                             (/ x.im y.re)
                                             (if (<= x.re 2.8e+161)
                                               t_0
                                               (if (<= x.re 2.15e+170)
                                                 (/ x.im y.re)
                                                 (if (<= x.re 4.5e+171)
                                                   t_0
                                                   (if (<= x.re 4.85e+173)
                                                     t_2
                                                     (if (<= x.re 1.36e+174)
                                                       t_0
                                                       (if (<= x.re 3e+188)
                                                         t_2
                                                         (if (<= x.re 2.1e+193)
                                                           t_0
                                                           (if (<=
                                                                x.re
                                                                1.9e+224)
                                                             t_2
                                                             (if (<=
                                                                  x.re
                                                                  2.35e+256)
                                                               t_0
                                                               (if (<=
                                                                    x.re
                                                                    3.75e+258)
                                                                 t_2
                                                                 (if (or (<=
                                                                          x.re
                                                                          7e+286)
                                                                         (not
                                                                          (<=
                                                                           x.re
                                                                           1.65e+299)))
                                                                   t_0
                                                                   t_1))))))))))))))))))))))))))))))))))
double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double t_0 = x_46_re / -y_46_im;
	double t_1 = (x_46_im - (y_46_im * (x_46_re / y_46_re))) / y_46_re;
	double t_2 = (x_46_im - (x_46_re * (y_46_im / y_46_re))) / y_46_re;
	double tmp;
	if (x_46_re <= 1.3e-111) {
		tmp = t_2;
	} else if (x_46_re <= 1.42e-83) {
		tmp = t_0;
	} else if (x_46_re <= 4.1e-76) {
		tmp = t_1;
	} else if (x_46_re <= 2.25e-73) {
		tmp = t_0;
	} else if (x_46_re <= 1.85e-66) {
		tmp = x_46_im / y_46_re;
	} else if (x_46_re <= 1.9e-66) {
		tmp = t_0;
	} else if (x_46_re <= 5.2e-54) {
		tmp = x_46_im / y_46_re;
	} else if (x_46_re <= 1.55e-39) {
		tmp = t_0;
	} else if (x_46_re <= 2.7e-39) {
		tmp = (x_46_im * (y_46_re / y_46_im)) / y_46_im;
	} else if (x_46_re <= 2.95e-30) {
		tmp = t_0;
	} else if (x_46_re <= 1.9e-29) {
		tmp = x_46_im / y_46_re;
	} else if (x_46_re <= 1.25e-20) {
		tmp = t_0;
	} else if (x_46_re <= 6e+17) {
		tmp = t_2;
	} else if (x_46_re <= 6.2e+17) {
		tmp = t_0;
	} else if (x_46_re <= 1.1e+22) {
		tmp = x_46_im / y_46_re;
	} else if (x_46_re <= 1.15e+22) {
		tmp = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	} else if (x_46_re <= 3.8e+57) {
		tmp = t_2;
	} else if (x_46_re <= 4.2e+58) {
		tmp = t_0;
	} else if (x_46_re <= 3e+101) {
		tmp = t_2;
	} else if (x_46_re <= 1.12e+151) {
		tmp = t_0;
	} else if (x_46_re <= 1.92e+155) {
		tmp = x_46_im / y_46_re;
	} else if (x_46_re <= 2.8e+161) {
		tmp = t_0;
	} else if (x_46_re <= 2.15e+170) {
		tmp = x_46_im / y_46_re;
	} else if (x_46_re <= 4.5e+171) {
		tmp = t_0;
	} else if (x_46_re <= 4.85e+173) {
		tmp = t_2;
	} else if (x_46_re <= 1.36e+174) {
		tmp = t_0;
	} else if (x_46_re <= 3e+188) {
		tmp = t_2;
	} else if (x_46_re <= 2.1e+193) {
		tmp = t_0;
	} else if (x_46_re <= 1.9e+224) {
		tmp = t_2;
	} else if (x_46_re <= 2.35e+256) {
		tmp = t_0;
	} else if (x_46_re <= 3.75e+258) {
		tmp = t_2;
	} else if ((x_46_re <= 7e+286) || !(x_46_re <= 1.65e+299)) {
		tmp = t_0;
	} else {
		tmp = t_1;
	}
	return tmp;
}
real(8) function code(x_46re, x_46im, y_46re, y_46im)
    real(8), intent (in) :: x_46re
    real(8), intent (in) :: x_46im
    real(8), intent (in) :: y_46re
    real(8), intent (in) :: y_46im
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: t_2
    real(8) :: tmp
    t_0 = x_46re / -y_46im
    t_1 = (x_46im - (y_46im * (x_46re / y_46re))) / y_46re
    t_2 = (x_46im - (x_46re * (y_46im / y_46re))) / y_46re
    if (x_46re <= 1.3d-111) then
        tmp = t_2
    else if (x_46re <= 1.42d-83) then
        tmp = t_0
    else if (x_46re <= 4.1d-76) then
        tmp = t_1
    else if (x_46re <= 2.25d-73) then
        tmp = t_0
    else if (x_46re <= 1.85d-66) then
        tmp = x_46im / y_46re
    else if (x_46re <= 1.9d-66) then
        tmp = t_0
    else if (x_46re <= 5.2d-54) then
        tmp = x_46im / y_46re
    else if (x_46re <= 1.55d-39) then
        tmp = t_0
    else if (x_46re <= 2.7d-39) then
        tmp = (x_46im * (y_46re / y_46im)) / y_46im
    else if (x_46re <= 2.95d-30) then
        tmp = t_0
    else if (x_46re <= 1.9d-29) then
        tmp = x_46im / y_46re
    else if (x_46re <= 1.25d-20) then
        tmp = t_0
    else if (x_46re <= 6d+17) then
        tmp = t_2
    else if (x_46re <= 6.2d+17) then
        tmp = t_0
    else if (x_46re <= 1.1d+22) then
        tmp = x_46im / y_46re
    else if (x_46re <= 1.15d+22) then
        tmp = x_46im * ((y_46re / y_46im) / y_46im)
    else if (x_46re <= 3.8d+57) then
        tmp = t_2
    else if (x_46re <= 4.2d+58) then
        tmp = t_0
    else if (x_46re <= 3d+101) then
        tmp = t_2
    else if (x_46re <= 1.12d+151) then
        tmp = t_0
    else if (x_46re <= 1.92d+155) then
        tmp = x_46im / y_46re
    else if (x_46re <= 2.8d+161) then
        tmp = t_0
    else if (x_46re <= 2.15d+170) then
        tmp = x_46im / y_46re
    else if (x_46re <= 4.5d+171) then
        tmp = t_0
    else if (x_46re <= 4.85d+173) then
        tmp = t_2
    else if (x_46re <= 1.36d+174) then
        tmp = t_0
    else if (x_46re <= 3d+188) then
        tmp = t_2
    else if (x_46re <= 2.1d+193) then
        tmp = t_0
    else if (x_46re <= 1.9d+224) then
        tmp = t_2
    else if (x_46re <= 2.35d+256) then
        tmp = t_0
    else if (x_46re <= 3.75d+258) then
        tmp = t_2
    else if ((x_46re <= 7d+286) .or. (.not. (x_46re <= 1.65d+299))) then
        tmp = t_0
    else
        tmp = t_1
    end if
    code = tmp
end function
public static double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	double t_0 = x_46_re / -y_46_im;
	double t_1 = (x_46_im - (y_46_im * (x_46_re / y_46_re))) / y_46_re;
	double t_2 = (x_46_im - (x_46_re * (y_46_im / y_46_re))) / y_46_re;
	double tmp;
	if (x_46_re <= 1.3e-111) {
		tmp = t_2;
	} else if (x_46_re <= 1.42e-83) {
		tmp = t_0;
	} else if (x_46_re <= 4.1e-76) {
		tmp = t_1;
	} else if (x_46_re <= 2.25e-73) {
		tmp = t_0;
	} else if (x_46_re <= 1.85e-66) {
		tmp = x_46_im / y_46_re;
	} else if (x_46_re <= 1.9e-66) {
		tmp = t_0;
	} else if (x_46_re <= 5.2e-54) {
		tmp = x_46_im / y_46_re;
	} else if (x_46_re <= 1.55e-39) {
		tmp = t_0;
	} else if (x_46_re <= 2.7e-39) {
		tmp = (x_46_im * (y_46_re / y_46_im)) / y_46_im;
	} else if (x_46_re <= 2.95e-30) {
		tmp = t_0;
	} else if (x_46_re <= 1.9e-29) {
		tmp = x_46_im / y_46_re;
	} else if (x_46_re <= 1.25e-20) {
		tmp = t_0;
	} else if (x_46_re <= 6e+17) {
		tmp = t_2;
	} else if (x_46_re <= 6.2e+17) {
		tmp = t_0;
	} else if (x_46_re <= 1.1e+22) {
		tmp = x_46_im / y_46_re;
	} else if (x_46_re <= 1.15e+22) {
		tmp = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	} else if (x_46_re <= 3.8e+57) {
		tmp = t_2;
	} else if (x_46_re <= 4.2e+58) {
		tmp = t_0;
	} else if (x_46_re <= 3e+101) {
		tmp = t_2;
	} else if (x_46_re <= 1.12e+151) {
		tmp = t_0;
	} else if (x_46_re <= 1.92e+155) {
		tmp = x_46_im / y_46_re;
	} else if (x_46_re <= 2.8e+161) {
		tmp = t_0;
	} else if (x_46_re <= 2.15e+170) {
		tmp = x_46_im / y_46_re;
	} else if (x_46_re <= 4.5e+171) {
		tmp = t_0;
	} else if (x_46_re <= 4.85e+173) {
		tmp = t_2;
	} else if (x_46_re <= 1.36e+174) {
		tmp = t_0;
	} else if (x_46_re <= 3e+188) {
		tmp = t_2;
	} else if (x_46_re <= 2.1e+193) {
		tmp = t_0;
	} else if (x_46_re <= 1.9e+224) {
		tmp = t_2;
	} else if (x_46_re <= 2.35e+256) {
		tmp = t_0;
	} else if (x_46_re <= 3.75e+258) {
		tmp = t_2;
	} else if ((x_46_re <= 7e+286) || !(x_46_re <= 1.65e+299)) {
		tmp = t_0;
	} else {
		tmp = t_1;
	}
	return tmp;
}
def code(x_46_re, x_46_im, y_46_re, y_46_im):
	t_0 = x_46_re / -y_46_im
	t_1 = (x_46_im - (y_46_im * (x_46_re / y_46_re))) / y_46_re
	t_2 = (x_46_im - (x_46_re * (y_46_im / y_46_re))) / y_46_re
	tmp = 0
	if x_46_re <= 1.3e-111:
		tmp = t_2
	elif x_46_re <= 1.42e-83:
		tmp = t_0
	elif x_46_re <= 4.1e-76:
		tmp = t_1
	elif x_46_re <= 2.25e-73:
		tmp = t_0
	elif x_46_re <= 1.85e-66:
		tmp = x_46_im / y_46_re
	elif x_46_re <= 1.9e-66:
		tmp = t_0
	elif x_46_re <= 5.2e-54:
		tmp = x_46_im / y_46_re
	elif x_46_re <= 1.55e-39:
		tmp = t_0
	elif x_46_re <= 2.7e-39:
		tmp = (x_46_im * (y_46_re / y_46_im)) / y_46_im
	elif x_46_re <= 2.95e-30:
		tmp = t_0
	elif x_46_re <= 1.9e-29:
		tmp = x_46_im / y_46_re
	elif x_46_re <= 1.25e-20:
		tmp = t_0
	elif x_46_re <= 6e+17:
		tmp = t_2
	elif x_46_re <= 6.2e+17:
		tmp = t_0
	elif x_46_re <= 1.1e+22:
		tmp = x_46_im / y_46_re
	elif x_46_re <= 1.15e+22:
		tmp = x_46_im * ((y_46_re / y_46_im) / y_46_im)
	elif x_46_re <= 3.8e+57:
		tmp = t_2
	elif x_46_re <= 4.2e+58:
		tmp = t_0
	elif x_46_re <= 3e+101:
		tmp = t_2
	elif x_46_re <= 1.12e+151:
		tmp = t_0
	elif x_46_re <= 1.92e+155:
		tmp = x_46_im / y_46_re
	elif x_46_re <= 2.8e+161:
		tmp = t_0
	elif x_46_re <= 2.15e+170:
		tmp = x_46_im / y_46_re
	elif x_46_re <= 4.5e+171:
		tmp = t_0
	elif x_46_re <= 4.85e+173:
		tmp = t_2
	elif x_46_re <= 1.36e+174:
		tmp = t_0
	elif x_46_re <= 3e+188:
		tmp = t_2
	elif x_46_re <= 2.1e+193:
		tmp = t_0
	elif x_46_re <= 1.9e+224:
		tmp = t_2
	elif x_46_re <= 2.35e+256:
		tmp = t_0
	elif x_46_re <= 3.75e+258:
		tmp = t_2
	elif (x_46_re <= 7e+286) or not (x_46_re <= 1.65e+299):
		tmp = t_0
	else:
		tmp = t_1
	return tmp
function code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = Float64(x_46_re / Float64(-y_46_im))
	t_1 = Float64(Float64(x_46_im - Float64(y_46_im * Float64(x_46_re / y_46_re))) / y_46_re)
	t_2 = Float64(Float64(x_46_im - Float64(x_46_re * Float64(y_46_im / y_46_re))) / y_46_re)
	tmp = 0.0
	if (x_46_re <= 1.3e-111)
		tmp = t_2;
	elseif (x_46_re <= 1.42e-83)
		tmp = t_0;
	elseif (x_46_re <= 4.1e-76)
		tmp = t_1;
	elseif (x_46_re <= 2.25e-73)
		tmp = t_0;
	elseif (x_46_re <= 1.85e-66)
		tmp = Float64(x_46_im / y_46_re);
	elseif (x_46_re <= 1.9e-66)
		tmp = t_0;
	elseif (x_46_re <= 5.2e-54)
		tmp = Float64(x_46_im / y_46_re);
	elseif (x_46_re <= 1.55e-39)
		tmp = t_0;
	elseif (x_46_re <= 2.7e-39)
		tmp = Float64(Float64(x_46_im * Float64(y_46_re / y_46_im)) / y_46_im);
	elseif (x_46_re <= 2.95e-30)
		tmp = t_0;
	elseif (x_46_re <= 1.9e-29)
		tmp = Float64(x_46_im / y_46_re);
	elseif (x_46_re <= 1.25e-20)
		tmp = t_0;
	elseif (x_46_re <= 6e+17)
		tmp = t_2;
	elseif (x_46_re <= 6.2e+17)
		tmp = t_0;
	elseif (x_46_re <= 1.1e+22)
		tmp = Float64(x_46_im / y_46_re);
	elseif (x_46_re <= 1.15e+22)
		tmp = Float64(x_46_im * Float64(Float64(y_46_re / y_46_im) / y_46_im));
	elseif (x_46_re <= 3.8e+57)
		tmp = t_2;
	elseif (x_46_re <= 4.2e+58)
		tmp = t_0;
	elseif (x_46_re <= 3e+101)
		tmp = t_2;
	elseif (x_46_re <= 1.12e+151)
		tmp = t_0;
	elseif (x_46_re <= 1.92e+155)
		tmp = Float64(x_46_im / y_46_re);
	elseif (x_46_re <= 2.8e+161)
		tmp = t_0;
	elseif (x_46_re <= 2.15e+170)
		tmp = Float64(x_46_im / y_46_re);
	elseif (x_46_re <= 4.5e+171)
		tmp = t_0;
	elseif (x_46_re <= 4.85e+173)
		tmp = t_2;
	elseif (x_46_re <= 1.36e+174)
		tmp = t_0;
	elseif (x_46_re <= 3e+188)
		tmp = t_2;
	elseif (x_46_re <= 2.1e+193)
		tmp = t_0;
	elseif (x_46_re <= 1.9e+224)
		tmp = t_2;
	elseif (x_46_re <= 2.35e+256)
		tmp = t_0;
	elseif (x_46_re <= 3.75e+258)
		tmp = t_2;
	elseif ((x_46_re <= 7e+286) || !(x_46_re <= 1.65e+299))
		tmp = t_0;
	else
		tmp = t_1;
	end
	return tmp
end
function tmp_2 = code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = x_46_re / -y_46_im;
	t_1 = (x_46_im - (y_46_im * (x_46_re / y_46_re))) / y_46_re;
	t_2 = (x_46_im - (x_46_re * (y_46_im / y_46_re))) / y_46_re;
	tmp = 0.0;
	if (x_46_re <= 1.3e-111)
		tmp = t_2;
	elseif (x_46_re <= 1.42e-83)
		tmp = t_0;
	elseif (x_46_re <= 4.1e-76)
		tmp = t_1;
	elseif (x_46_re <= 2.25e-73)
		tmp = t_0;
	elseif (x_46_re <= 1.85e-66)
		tmp = x_46_im / y_46_re;
	elseif (x_46_re <= 1.9e-66)
		tmp = t_0;
	elseif (x_46_re <= 5.2e-54)
		tmp = x_46_im / y_46_re;
	elseif (x_46_re <= 1.55e-39)
		tmp = t_0;
	elseif (x_46_re <= 2.7e-39)
		tmp = (x_46_im * (y_46_re / y_46_im)) / y_46_im;
	elseif (x_46_re <= 2.95e-30)
		tmp = t_0;
	elseif (x_46_re <= 1.9e-29)
		tmp = x_46_im / y_46_re;
	elseif (x_46_re <= 1.25e-20)
		tmp = t_0;
	elseif (x_46_re <= 6e+17)
		tmp = t_2;
	elseif (x_46_re <= 6.2e+17)
		tmp = t_0;
	elseif (x_46_re <= 1.1e+22)
		tmp = x_46_im / y_46_re;
	elseif (x_46_re <= 1.15e+22)
		tmp = x_46_im * ((y_46_re / y_46_im) / y_46_im);
	elseif (x_46_re <= 3.8e+57)
		tmp = t_2;
	elseif (x_46_re <= 4.2e+58)
		tmp = t_0;
	elseif (x_46_re <= 3e+101)
		tmp = t_2;
	elseif (x_46_re <= 1.12e+151)
		tmp = t_0;
	elseif (x_46_re <= 1.92e+155)
		tmp = x_46_im / y_46_re;
	elseif (x_46_re <= 2.8e+161)
		tmp = t_0;
	elseif (x_46_re <= 2.15e+170)
		tmp = x_46_im / y_46_re;
	elseif (x_46_re <= 4.5e+171)
		tmp = t_0;
	elseif (x_46_re <= 4.85e+173)
		tmp = t_2;
	elseif (x_46_re <= 1.36e+174)
		tmp = t_0;
	elseif (x_46_re <= 3e+188)
		tmp = t_2;
	elseif (x_46_re <= 2.1e+193)
		tmp = t_0;
	elseif (x_46_re <= 1.9e+224)
		tmp = t_2;
	elseif (x_46_re <= 2.35e+256)
		tmp = t_0;
	elseif (x_46_re <= 3.75e+258)
		tmp = t_2;
	elseif ((x_46_re <= 7e+286) || ~((x_46_re <= 1.65e+299)))
		tmp = t_0;
	else
		tmp = t_1;
	end
	tmp_2 = tmp;
end
code[x$46$re_, x$46$im_, y$46$re_, y$46$im_] := Block[{t$95$0 = N[(x$46$re / (-y$46$im)), $MachinePrecision]}, Block[{t$95$1 = N[(N[(x$46$im - N[(y$46$im * N[(x$46$re / y$46$re), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y$46$re), $MachinePrecision]}, Block[{t$95$2 = N[(N[(x$46$im - N[(x$46$re * N[(y$46$im / y$46$re), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y$46$re), $MachinePrecision]}, If[LessEqual[x$46$re, 1.3e-111], t$95$2, If[LessEqual[x$46$re, 1.42e-83], t$95$0, If[LessEqual[x$46$re, 4.1e-76], t$95$1, If[LessEqual[x$46$re, 2.25e-73], t$95$0, If[LessEqual[x$46$re, 1.85e-66], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[x$46$re, 1.9e-66], t$95$0, If[LessEqual[x$46$re, 5.2e-54], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[x$46$re, 1.55e-39], t$95$0, If[LessEqual[x$46$re, 2.7e-39], N[(N[(x$46$im * N[(y$46$re / y$46$im), $MachinePrecision]), $MachinePrecision] / y$46$im), $MachinePrecision], If[LessEqual[x$46$re, 2.95e-30], t$95$0, If[LessEqual[x$46$re, 1.9e-29], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[x$46$re, 1.25e-20], t$95$0, If[LessEqual[x$46$re, 6e+17], t$95$2, If[LessEqual[x$46$re, 6.2e+17], t$95$0, If[LessEqual[x$46$re, 1.1e+22], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[x$46$re, 1.15e+22], N[(x$46$im * N[(N[(y$46$re / y$46$im), $MachinePrecision] / y$46$im), $MachinePrecision]), $MachinePrecision], If[LessEqual[x$46$re, 3.8e+57], t$95$2, If[LessEqual[x$46$re, 4.2e+58], t$95$0, If[LessEqual[x$46$re, 3e+101], t$95$2, If[LessEqual[x$46$re, 1.12e+151], t$95$0, If[LessEqual[x$46$re, 1.92e+155], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[x$46$re, 2.8e+161], t$95$0, If[LessEqual[x$46$re, 2.15e+170], N[(x$46$im / y$46$re), $MachinePrecision], If[LessEqual[x$46$re, 4.5e+171], t$95$0, If[LessEqual[x$46$re, 4.85e+173], t$95$2, If[LessEqual[x$46$re, 1.36e+174], t$95$0, If[LessEqual[x$46$re, 3e+188], t$95$2, If[LessEqual[x$46$re, 2.1e+193], t$95$0, If[LessEqual[x$46$re, 1.9e+224], t$95$2, If[LessEqual[x$46$re, 2.35e+256], t$95$0, If[LessEqual[x$46$re, 3.75e+258], t$95$2, If[Or[LessEqual[x$46$re, 7e+286], N[Not[LessEqual[x$46$re, 1.65e+299]], $MachinePrecision]], t$95$0, t$95$1]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{x.re}{-y.im}\\
t_1 := \frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\
t_2 := \frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\
\mathbf{if}\;x.re \leq 1.3 \cdot 10^{-111}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x.re \leq 1.42 \cdot 10^{-83}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;x.re \leq 4.1 \cdot 10^{-76}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x.re \leq 2.25 \cdot 10^{-73}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;x.re \leq 1.85 \cdot 10^{-66}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;x.re \leq 1.9 \cdot 10^{-66}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;x.re \leq 5.2 \cdot 10^{-54}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;x.re \leq 1.55 \cdot 10^{-39}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;x.re \leq 2.7 \cdot 10^{-39}:\\
\;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\

\mathbf{elif}\;x.re \leq 2.95 \cdot 10^{-30}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;x.re \leq 1.9 \cdot 10^{-29}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;x.re \leq 1.25 \cdot 10^{-20}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;x.re \leq 6 \cdot 10^{+17}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x.re \leq 6.2 \cdot 10^{+17}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;x.re \leq 1.1 \cdot 10^{+22}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;x.re \leq 1.15 \cdot 10^{+22}:\\
\;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\

\mathbf{elif}\;x.re \leq 3.8 \cdot 10^{+57}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x.re \leq 4.2 \cdot 10^{+58}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;x.re \leq 3 \cdot 10^{+101}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x.re \leq 1.12 \cdot 10^{+151}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;x.re \leq 1.92 \cdot 10^{+155}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;x.re \leq 2.8 \cdot 10^{+161}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;x.re \leq 2.15 \cdot 10^{+170}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;x.re \leq 4.5 \cdot 10^{+171}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;x.re \leq 4.85 \cdot 10^{+173}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x.re \leq 1.36 \cdot 10^{+174}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;x.re \leq 3 \cdot 10^{+188}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x.re \leq 2.1 \cdot 10^{+193}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;x.re \leq 1.9 \cdot 10^{+224}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x.re \leq 2.35 \cdot 10^{+256}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;x.re \leq 3.75 \cdot 10^{+258}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x.re \leq 7 \cdot 10^{+286} \lor \neg \left(x.re \leq 1.65 \cdot 10^{+299}\right):\\
\;\;\;\;t\_0\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 6 regimes
  2. if x.re < 1.29999999999999991e-111 or 1.25e-20 < x.re < 6e17 or 1.1500000000000001e22 < x.re < 3.7999999999999999e57 or 4.20000000000000024e58 < x.re < 2.99999999999999993e101 or 4.49999999999999969e171 < x.re < 4.84999999999999997e173 or 1.36000000000000008e174 < x.re < 3.0000000000000001e188 or 2.1e193 < x.re < 1.90000000000000013e224 or 2.34999999999999984e256 < x.re < 3.75000000000000016e258

    1. Initial program 64.4%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around inf 67.2%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    4. Step-by-step derivation
      1. remove-double-neg67.2%

        \[\leadsto \frac{\color{blue}{\left(-\left(-x.im\right)\right)} + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      2. mul-1-neg67.2%

        \[\leadsto \frac{\left(-\color{blue}{-1 \cdot x.im}\right) + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      3. neg-mul-167.2%

        \[\leadsto \frac{\color{blue}{-1 \cdot \left(-1 \cdot x.im\right)} + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re} \]
      4. distribute-lft-in67.2%

        \[\leadsto \frac{\color{blue}{-1 \cdot \left(-1 \cdot x.im + \frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      5. mul-1-neg67.2%

        \[\leadsto \frac{\color{blue}{-\left(-1 \cdot x.im + \frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      6. distribute-neg-in67.2%

        \[\leadsto \frac{\color{blue}{\left(--1 \cdot x.im\right) + \left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      7. mul-1-neg67.2%

        \[\leadsto \frac{\left(-\color{blue}{\left(-x.im\right)}\right) + \left(-\frac{x.re \cdot y.im}{y.re}\right)}{y.re} \]
      8. remove-double-neg67.2%

        \[\leadsto \frac{\color{blue}{x.im} + \left(-\frac{x.re \cdot y.im}{y.re}\right)}{y.re} \]
      9. unsub-neg67.2%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      10. associate-/l*69.1%

        \[\leadsto \frac{x.im - \color{blue}{x.re \cdot \frac{y.im}{y.re}}}{y.re} \]
    5. Simplified69.1%

      \[\leadsto \color{blue}{\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}} \]

    if 1.29999999999999991e-111 < x.re < 1.4199999999999999e-83 or 4.0999999999999998e-76 < x.re < 2.25e-73 or 1.8500000000000001e-66 < x.re < 1.8999999999999999e-66 or 5.20000000000000004e-54 < x.re < 1.54999999999999985e-39 or 2.7000000000000001e-39 < x.re < 2.9499999999999999e-30 or 1.89999999999999988e-29 < x.re < 1.25e-20 or 6e17 < x.re < 6.2e17 or 3.7999999999999999e57 < x.re < 4.20000000000000024e58 or 2.99999999999999993e101 < x.re < 1.12000000000000004e151 or 1.92000000000000012e155 < x.re < 2.80000000000000021e161 or 2.1499999999999999e170 < x.re < 4.49999999999999969e171 or 4.84999999999999997e173 < x.re < 1.36000000000000008e174 or 3.0000000000000001e188 < x.re < 2.1e193 or 1.90000000000000013e224 < x.re < 2.34999999999999984e256 or 3.75000000000000016e258 < x.re < 7.00000000000000002e286 or 1.65000000000000005e299 < x.re

    1. Initial program 46.9%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around 0 95.7%

      \[\leadsto \color{blue}{-1 \cdot \frac{x.re}{y.im}} \]
    4. Step-by-step derivation
      1. associate-*r/95.7%

        \[\leadsto \color{blue}{\frac{-1 \cdot x.re}{y.im}} \]
      2. neg-mul-195.7%

        \[\leadsto \frac{\color{blue}{-x.re}}{y.im} \]
    5. Simplified95.7%

      \[\leadsto \color{blue}{\frac{-x.re}{y.im}} \]

    if 1.4199999999999999e-83 < x.re < 4.0999999999999998e-76 or 7.00000000000000002e286 < x.re < 1.65000000000000005e299

    1. Initial program 50.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub50.0%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative50.0%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt50.0%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac50.8%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg50.8%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define50.8%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define75.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*75.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt75.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow275.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define75.5%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr75.5%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.re around inf 75.7%

      \[\leadsto \color{blue}{\frac{x.im + -1 \cdot \frac{x.re \cdot y.im}{y.re}}{y.re}} \]
    6. Step-by-step derivation
      1. mul-1-neg75.7%

        \[\leadsto \frac{x.im + \color{blue}{\left(-\frac{x.re \cdot y.im}{y.re}\right)}}{y.re} \]
      2. unsub-neg75.7%

        \[\leadsto \frac{\color{blue}{x.im - \frac{x.re \cdot y.im}{y.re}}}{y.re} \]
      3. *-commutative75.7%

        \[\leadsto \frac{x.im - \frac{\color{blue}{y.im \cdot x.re}}{y.re}}{y.re} \]
    7. Simplified75.7%

      \[\leadsto \color{blue}{\frac{x.im - \frac{y.im \cdot x.re}{y.re}}{y.re}} \]
    8. Step-by-step derivation
      1. associate-/l*99.6%

        \[\leadsto \frac{x.im - \color{blue}{y.im \cdot \frac{x.re}{y.re}}}{y.re} \]
    9. Applied egg-rr99.6%

      \[\leadsto \frac{x.im - \color{blue}{y.im \cdot \frac{x.re}{y.re}}}{y.re} \]

    if 2.25e-73 < x.re < 1.8500000000000001e-66 or 1.8999999999999999e-66 < x.re < 5.20000000000000004e-54 or 2.9499999999999999e-30 < x.re < 1.89999999999999988e-29 or 6.2e17 < x.re < 1.1e22 or 1.12000000000000004e151 < x.re < 1.92000000000000012e155 or 2.80000000000000021e161 < x.re < 2.1499999999999999e170

    1. Initial program 24.6%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Taylor expanded in y.re around inf 100.0%

      \[\leadsto \color{blue}{\frac{x.im}{y.re}} \]

    if 1.54999999999999985e-39 < x.re < 2.7000000000000001e-39

    1. Initial program 6.2%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub6.2%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative6.2%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt6.2%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac6.2%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg6.2%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define6.2%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define98.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*98.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt98.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow298.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define98.4%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr98.4%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 98.4%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/98.4%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified98.4%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 98.4%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/98.4%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified98.4%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]

    if 1.1e22 < x.re < 1.1500000000000001e22

    1. Initial program 100.0%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. div-sub100.0%

        \[\leadsto \color{blue}{\frac{x.im \cdot y.re}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}} \]
      2. *-commutative100.0%

        \[\leadsto \frac{\color{blue}{y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      3. add-sqr-sqrt100.0%

        \[\leadsto \frac{y.re \cdot x.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      4. times-frac100.0%

        \[\leadsto \color{blue}{\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} - \frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
      5. fma-neg100.0%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right)} \]
      6. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      7. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}}, -\frac{x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\right) \]
      8. associate-/l*100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -\color{blue}{x.re \cdot \frac{y.im}{y.re \cdot y.re + y.im \cdot y.im}}\right) \]
      9. add-sqr-sqrt100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\right) \]
      10. pow2100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{\color{blue}{{\left(\sqrt{y.re \cdot y.re + y.im \cdot y.im}\right)}^{2}}}\right) \]
      11. hypot-define100.0%

        \[\leadsto \mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\color{blue}{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}}^{2}}\right) \]
    4. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)}, \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}, -x.re \cdot \frac{y.im}{{\left(\mathsf{hypot}\left(y.re, y.im\right)\right)}^{2}}\right)} \]
    5. Taylor expanded in y.im around inf 100.0%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re}{y.im} - x.re}{y.im}} \]
    6. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}} - x.re}{y.im} \]
    7. Simplified100.0%

      \[\leadsto \color{blue}{\frac{x.im \cdot \frac{y.re}{y.im} - x.re}{y.im}} \]
    8. Taylor expanded in x.im around inf 100.0%

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re}{y.im}}}{y.im} \]
    9. Step-by-step derivation
      1. associate-*r/100.0%

        \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    10. Simplified100.0%

      \[\leadsto \frac{\color{blue}{x.im \cdot \frac{y.re}{y.im}}}{y.im} \]
    11. Step-by-step derivation
      1. associate-/l*100.0%

        \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]
    12. Applied egg-rr100.0%

      \[\leadsto \color{blue}{x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}} \]
  3. Recombined 6 regimes into one program.
  4. Final simplification74.9%

    \[\leadsto \begin{array}{l} \mathbf{if}\;x.re \leq 1.3 \cdot 10^{-111}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;x.re \leq 1.42 \cdot 10^{-83}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;x.re \leq 4.1 \cdot 10^{-76}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{elif}\;x.re \leq 2.25 \cdot 10^{-73}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;x.re \leq 1.85 \cdot 10^{-66}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;x.re \leq 1.9 \cdot 10^{-66}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;x.re \leq 5.2 \cdot 10^{-54}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;x.re \leq 1.55 \cdot 10^{-39}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;x.re \leq 2.7 \cdot 10^{-39}:\\ \;\;\;\;\frac{x.im \cdot \frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;x.re \leq 2.95 \cdot 10^{-30}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;x.re \leq 1.9 \cdot 10^{-29}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;x.re \leq 1.25 \cdot 10^{-20}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;x.re \leq 6 \cdot 10^{+17}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;x.re \leq 6.2 \cdot 10^{+17}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;x.re \leq 1.1 \cdot 10^{+22}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;x.re \leq 1.15 \cdot 10^{+22}:\\ \;\;\;\;x.im \cdot \frac{\frac{y.re}{y.im}}{y.im}\\ \mathbf{elif}\;x.re \leq 3.8 \cdot 10^{+57}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;x.re \leq 4.2 \cdot 10^{+58}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;x.re \leq 3 \cdot 10^{+101}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;x.re \leq 1.12 \cdot 10^{+151}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;x.re \leq 1.92 \cdot 10^{+155}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;x.re \leq 2.8 \cdot 10^{+161}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;x.re \leq 2.15 \cdot 10^{+170}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;x.re \leq 4.5 \cdot 10^{+171}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;x.re \leq 4.85 \cdot 10^{+173}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;x.re \leq 1.36 \cdot 10^{+174}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;x.re \leq 3 \cdot 10^{+188}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;x.re \leq 2.1 \cdot 10^{+193}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;x.re \leq 1.9 \cdot 10^{+224}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;x.re \leq 2.35 \cdot 10^{+256}:\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{elif}\;x.re \leq 3.75 \cdot 10^{+258}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;x.re \leq 7 \cdot 10^{+286} \lor \neg \left(x.re \leq 1.65 \cdot 10^{+299}\right):\\ \;\;\;\;\frac{x.re}{-y.im}\\ \mathbf{else}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \end{array} \]
  5. Add Preprocessing

Alternative 21: 41.5% accurate, 5.0× speedup?

\[\begin{array}{l} \\ \frac{x.im}{y.re} \end{array} \]
(FPCore (x.re x.im y.re y.im) :precision binary64 (/ x.im y.re))
double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	return x_46_im / y_46_re;
}
real(8) function code(x_46re, x_46im, y_46re, y_46im)
    real(8), intent (in) :: x_46re
    real(8), intent (in) :: x_46im
    real(8), intent (in) :: y_46re
    real(8), intent (in) :: y_46im
    code = x_46im / y_46re
end function
public static double code(double x_46_re, double x_46_im, double y_46_re, double y_46_im) {
	return x_46_im / y_46_re;
}
def code(x_46_re, x_46_im, y_46_re, y_46_im):
	return x_46_im / y_46_re
function code(x_46_re, x_46_im, y_46_re, y_46_im)
	return Float64(x_46_im / y_46_re)
end
function tmp = code(x_46_re, x_46_im, y_46_re, y_46_im)
	tmp = x_46_im / y_46_re;
end
code[x$46$re_, x$46$im_, y$46$re_, y$46$im_] := N[(x$46$im / y$46$re), $MachinePrecision]
\begin{array}{l}

\\
\frac{x.im}{y.re}
\end{array}
Derivation
  1. Initial program 60.1%

    \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
  2. Add Preprocessing
  3. Taylor expanded in y.re around inf 45.9%

    \[\leadsto \color{blue}{\frac{x.im}{y.re}} \]
  4. Add Preprocessing

Reproduce

?
herbie shell --seed 2024096 
(FPCore (x.re x.im y.re y.im)
  :name "_divideComplex, imaginary part"
  :precision binary64
  (/ (- (* x.im y.re) (* x.re y.im)) (+ (* y.re y.re) (* y.im y.im))))