?

Average Accuracy: 58.4% → 84.0%
Time: 21.8s
Precision: binary64
Cost: 15688

?

\[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
\[\begin{array}{l} t_0 := x.im \cdot y.re - x.re \cdot y.im\\ t_1 := \frac{t_0}{y.re \cdot y.re + y.im \cdot y.im}\\ \mathbf{if}\;t_1 \leq -\infty:\\ \;\;\;\;\frac{x.im - \frac{x.re}{\frac{y.re}{y.im}}}{y.re}\\ \mathbf{elif}\;t_1 \leq 5 \cdot 10^{+247}:\\ \;\;\;\;\frac{\frac{t_0}{\mathsf{hypot}\left(y.re, y.im\right)}}{\mathsf{hypot}\left(y.re, y.im\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)} \cdot \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}\\ \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))))
(FPCore (x.re x.im y.re y.im)
 :precision binary64
 (let* ((t_0 (- (* x.im y.re) (* x.re y.im)))
        (t_1 (/ t_0 (+ (* y.re y.re) (* y.im y.im)))))
   (if (<= t_1 (- INFINITY))
     (/ (- x.im (/ x.re (/ y.re y.im))) y.re)
     (if (<= t_1 5e+247)
       (/ (/ t_0 (hypot y.re y.im)) (hypot y.re y.im))
       (* (/ y.re (hypot y.re y.im)) (/ x.im (hypot y.re 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));
}
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) - (x_46_re * y_46_im);
	double t_1 = t_0 / ((y_46_re * y_46_re) + (y_46_im * y_46_im));
	double tmp;
	if (t_1 <= -((double) INFINITY)) {
		tmp = (x_46_im - (x_46_re / (y_46_re / y_46_im))) / y_46_re;
	} else if (t_1 <= 5e+247) {
		tmp = (t_0 / hypot(y_46_re, y_46_im)) / hypot(y_46_re, y_46_im);
	} else {
		tmp = (y_46_re / hypot(y_46_re, y_46_im)) * (x_46_im / hypot(y_46_re, y_46_im));
	}
	return tmp;
}
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));
}
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) - (x_46_re * y_46_im);
	double t_1 = t_0 / ((y_46_re * y_46_re) + (y_46_im * y_46_im));
	double tmp;
	if (t_1 <= -Double.POSITIVE_INFINITY) {
		tmp = (x_46_im - (x_46_re / (y_46_re / y_46_im))) / y_46_re;
	} else if (t_1 <= 5e+247) {
		tmp = (t_0 / Math.hypot(y_46_re, y_46_im)) / Math.hypot(y_46_re, y_46_im);
	} else {
		tmp = (y_46_re / Math.hypot(y_46_re, y_46_im)) * (x_46_im / Math.hypot(y_46_re, y_46_im));
	}
	return tmp;
}
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))
def code(x_46_re, x_46_im, y_46_re, y_46_im):
	t_0 = (x_46_im * y_46_re) - (x_46_re * y_46_im)
	t_1 = t_0 / ((y_46_re * y_46_re) + (y_46_im * y_46_im))
	tmp = 0
	if t_1 <= -math.inf:
		tmp = (x_46_im - (x_46_re / (y_46_re / y_46_im))) / y_46_re
	elif t_1 <= 5e+247:
		tmp = (t_0 / math.hypot(y_46_re, y_46_im)) / math.hypot(y_46_re, y_46_im)
	else:
		tmp = (y_46_re / math.hypot(y_46_re, y_46_im)) * (x_46_im / math.hypot(y_46_re, y_46_im))
	return tmp
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 code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = Float64(Float64(x_46_im * y_46_re) - Float64(x_46_re * y_46_im))
	t_1 = Float64(t_0 / Float64(Float64(y_46_re * y_46_re) + Float64(y_46_im * y_46_im)))
	tmp = 0.0
	if (t_1 <= Float64(-Inf))
		tmp = Float64(Float64(x_46_im - Float64(x_46_re / Float64(y_46_re / y_46_im))) / y_46_re);
	elseif (t_1 <= 5e+247)
		tmp = Float64(Float64(t_0 / hypot(y_46_re, y_46_im)) / hypot(y_46_re, y_46_im));
	else
		tmp = Float64(Float64(y_46_re / hypot(y_46_re, y_46_im)) * Float64(x_46_im / hypot(y_46_re, y_46_im)));
	end
	return tmp
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
function tmp_2 = code(x_46_re, x_46_im, y_46_re, y_46_im)
	t_0 = (x_46_im * y_46_re) - (x_46_re * y_46_im);
	t_1 = t_0 / ((y_46_re * y_46_re) + (y_46_im * y_46_im));
	tmp = 0.0;
	if (t_1 <= -Inf)
		tmp = (x_46_im - (x_46_re / (y_46_re / y_46_im))) / y_46_re;
	elseif (t_1 <= 5e+247)
		tmp = (t_0 / hypot(y_46_re, y_46_im)) / hypot(y_46_re, y_46_im);
	else
		tmp = (y_46_re / hypot(y_46_re, y_46_im)) * (x_46_im / hypot(y_46_re, y_46_im));
	end
	tmp_2 = tmp;
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]
code[x$46$re_, x$46$im_, y$46$re_, y$46$im_] := Block[{t$95$0 = N[(N[(x$46$im * y$46$re), $MachinePrecision] - N[(x$46$re * y$46$im), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(t$95$0 / N[(N[(y$46$re * y$46$re), $MachinePrecision] + N[(y$46$im * y$46$im), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$1, (-Infinity)], N[(N[(x$46$im - N[(x$46$re / N[(y$46$re / y$46$im), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / y$46$re), $MachinePrecision], If[LessEqual[t$95$1, 5e+247], N[(N[(t$95$0 / N[Sqrt[y$46$re ^ 2 + y$46$im ^ 2], $MachinePrecision]), $MachinePrecision] / N[Sqrt[y$46$re ^ 2 + y$46$im ^ 2], $MachinePrecision]), $MachinePrecision], 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]), $MachinePrecision]]]]]
\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}
\begin{array}{l}
t_0 := x.im \cdot y.re - x.re \cdot y.im\\
t_1 := \frac{t_0}{y.re \cdot y.re + y.im \cdot y.im}\\
\mathbf{if}\;t_1 \leq -\infty:\\
\;\;\;\;\frac{x.im - \frac{x.re}{\frac{y.re}{y.im}}}{y.re}\\

\mathbf{elif}\;t_1 \leq 5 \cdot 10^{+247}:\\
\;\;\;\;\frac{\frac{t_0}{\mathsf{hypot}\left(y.re, y.im\right)}}{\mathsf{hypot}\left(y.re, y.im\right)}\\

\mathbf{else}:\\
\;\;\;\;\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)} \cdot \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}\\


\end{array}

Error?

Try it out?

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation?

  1. Split input into 3 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 0.0%

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

      \[\leadsto \color{blue}{\frac{x.im}{y.re} + -1 \cdot \frac{x.re \cdot y.im}{{y.re}^{2}}} \]
    3. Simplified47.9%

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

      [Start]31.0

      \[ \frac{x.im}{y.re} + -1 \cdot \frac{x.re \cdot y.im}{{y.re}^{2}} \]

      mul-1-neg [=>]31.0

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

      unsub-neg [=>]31.0

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

      unpow2 [=>]31.0

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

      times-frac [=>]47.9

      \[ \frac{x.im}{y.re} - \color{blue}{\frac{x.re}{y.re} \cdot \frac{y.im}{y.re}} \]
    4. Taylor expanded in x.im around 0 31.0%

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

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

      [Start]31.0

      \[ \frac{x.im}{y.re} + -1 \cdot \frac{x.re \cdot y.im}{{y.re}^{2}} \]

      mul-1-neg [=>]31.0

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

      unpow2 [=>]31.0

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

      associate-*l/ [<=]34.1

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

      distribute-lft-neg-in [=>]34.1

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

      cancel-sign-sub-inv [<=]34.1

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

      associate-*l/ [=>]31.0

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

      times-frac [=>]47.9

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

      associate-*l/ [=>]49.6

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

      div-sub [<=]49.6

      \[ \color{blue}{\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}} \]
    6. Applied egg-rr49.5%

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

      [Start]49.6

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

      clear-num [=>]49.5

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

      un-div-inv [=>]49.5

      \[ \frac{x.im - \color{blue}{\frac{x.re}{\frac{y.re}{y.im}}}}{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))) < 5.00000000000000023e247

    1. Initial program 81.6%

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \]
    2. Applied egg-rr98.8%

      \[\leadsto \color{blue}{\frac{1}{\mathsf{hypot}\left(y.re, y.im\right)} \cdot \frac{x.im \cdot y.re - x.re \cdot y.im}{\mathsf{hypot}\left(y.re, y.im\right)}} \]
      Proof

      [Start]81.6

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

      *-un-lft-identity [=>]81.6

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

      add-sqr-sqrt [=>]81.6

      \[ \frac{1 \cdot \left(x.im \cdot y.re - x.re \cdot y.im\right)}{\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}}} \]

      times-frac [=>]81.6

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

      hypot-def [=>]81.6

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

      hypot-def [=>]98.8

      \[ \frac{1}{\mathsf{hypot}\left(y.re, y.im\right)} \cdot \frac{x.im \cdot y.re - x.re \cdot y.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}} \]
    3. Applied egg-rr99.0%

      \[\leadsto \color{blue}{\frac{\frac{x.im \cdot y.re - x.re \cdot y.im}{\mathsf{hypot}\left(y.re, y.im\right)}}{\mathsf{hypot}\left(y.re, y.im\right)}} \]
      Proof

      [Start]98.8

      \[ \frac{1}{\mathsf{hypot}\left(y.re, y.im\right)} \cdot \frac{x.im \cdot y.re - x.re \cdot y.im}{\mathsf{hypot}\left(y.re, y.im\right)} \]

      associate-*l/ [=>]99.0

      \[ \color{blue}{\frac{1 \cdot \frac{x.im \cdot y.re - x.re \cdot y.im}{\mathsf{hypot}\left(y.re, y.im\right)}}{\mathsf{hypot}\left(y.re, y.im\right)}} \]

      *-un-lft-identity [<=]99.0

      \[ \frac{\color{blue}{\frac{x.im \cdot y.re - x.re \cdot y.im}{\mathsf{hypot}\left(y.re, y.im\right)}}}{\mathsf{hypot}\left(y.re, y.im\right)} \]

    if 5.00000000000000023e247 < (/.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 5.7%

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

      \[\leadsto \color{blue}{\frac{y.re \cdot x.im}{{y.re}^{2} + {y.im}^{2}}} \]
    3. Simplified4.5%

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

      [Start]4.5

      \[ \frac{y.re \cdot x.im}{{y.re}^{2} + {y.im}^{2}} \]

      unpow2 [=>]4.5

      \[ \frac{y.re \cdot x.im}{\color{blue}{y.re \cdot y.re} + {y.im}^{2}} \]

      unpow2 [=>]4.5

      \[ \frac{y.re \cdot x.im}{y.re \cdot y.re + \color{blue}{y.im \cdot y.im}} \]
    4. Applied egg-rr49.7%

      \[\leadsto \color{blue}{\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)} \cdot \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}} \]
      Proof

      [Start]4.5

      \[ \frac{y.re \cdot x.im}{y.re \cdot y.re + y.im \cdot y.im} \]

      add-sqr-sqrt [=>]4.5

      \[ \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}}} \]

      times-frac [=>]10.6

      \[ \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}}} \]

      hypot-def [=>]10.6

      \[ \frac{y.re}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}} \cdot \frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \]

      hypot-def [=>]49.7

      \[ \frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)} \cdot \frac{x.im}{\color{blue}{\mathsf{hypot}\left(y.re, y.im\right)}} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification84.0%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \leq -\infty:\\ \;\;\;\;\frac{x.im - \frac{x.re}{\frac{y.re}{y.im}}}{y.re}\\ \mathbf{elif}\;\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im} \leq 5 \cdot 10^{+247}:\\ \;\;\;\;\frac{\frac{x.im \cdot y.re - x.re \cdot y.im}{\mathsf{hypot}\left(y.re, y.im\right)}}{\mathsf{hypot}\left(y.re, y.im\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)} \cdot \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}\\ \end{array} \]

Alternatives

Alternative 1
Accuracy76.9%
Cost13508
\[\begin{array}{l} t_0 := \frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\\ t_1 := \frac{1}{y.im} \cdot \left(x.im \cdot \frac{y.re}{y.im} - x.re\right)\\ \mathbf{if}\;y.re \leq -2.9 \cdot 10^{+99}:\\ \;\;\;\;\frac{y.re}{\mathsf{hypot}\left(y.re, y.im\right)} \cdot \frac{x.im}{\mathsf{hypot}\left(y.re, y.im\right)}\\ \mathbf{elif}\;y.re \leq -3.4 \cdot 10^{-76}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;y.re \leq -1.9 \cdot 10^{-129}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;y.re \leq -2.7 \cdot 10^{-183}:\\ \;\;\;\;\frac{x.im - \frac{x.re}{\frac{y.re}{y.im}}}{y.re}\\ \mathbf{elif}\;y.re \leq 1.6 \cdot 10^{-50}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;y.re \leq 2.6 \cdot 10^{+30}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;y.re \leq 1.3 \cdot 10^{+53}:\\ \;\;\;\;\frac{-x.re}{y.im}\\ \mathbf{else}:\\ \;\;\;\;\frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \end{array} \]
Alternative 2
Accuracy77.6%
Cost1752
\[\begin{array}{l} t_0 := \frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\\ t_1 := \frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ t_2 := \frac{1}{y.im} \cdot \left(x.im \cdot \frac{y.re}{y.im} - x.re\right)\\ \mathbf{if}\;y.re \leq -5.2 \cdot 10^{+118}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;y.re \leq -8.5 \cdot 10^{-77}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;y.re \leq -1.9 \cdot 10^{-129}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;y.re \leq -2.7 \cdot 10^{-183}:\\ \;\;\;\;\frac{x.im - \frac{x.re}{\frac{y.re}{y.im}}}{y.re}\\ \mathbf{elif}\;y.re \leq 2 \cdot 10^{-52}:\\ \;\;\;\;t_2\\ \mathbf{elif}\;y.re \leq 5 \cdot 10^{+30}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;y.re \leq 10^{+51}:\\ \;\;\;\;\frac{-x.re}{y.im}\\ \mathbf{else}:\\ \;\;\;\;t_1\\ \end{array} \]
Alternative 3
Accuracy73.7%
Cost1232
\[\begin{array}{l} t_0 := \frac{1}{y.im} \cdot \left(x.im \cdot \frac{y.re}{y.im} - x.re\right)\\ t_1 := \frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{if}\;y.re \leq -5.6 \cdot 10^{-26}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;y.re \leq -2.2 \cdot 10^{-129}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;y.re \leq -2.7 \cdot 10^{-183}:\\ \;\;\;\;\frac{x.im - \frac{x.re}{\frac{y.re}{y.im}}}{y.re}\\ \mathbf{elif}\;y.re \leq 2.5 \cdot 10^{+51}:\\ \;\;\;\;t_0\\ \mathbf{else}:\\ \;\;\;\;t_1\\ \end{array} \]
Alternative 4
Accuracy73.7%
Cost1232
\[\begin{array}{l} t_0 := \frac{x.im - y.im \cdot \frac{x.re}{y.re}}{y.re}\\ \mathbf{if}\;y.re \leq -3.9 \cdot 10^{-26}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;y.re \leq -1.9 \cdot 10^{-129}:\\ \;\;\;\;\frac{y.re}{y.im} \cdot \frac{x.im}{y.im} - \frac{x.re}{y.im}\\ \mathbf{elif}\;y.re \leq -2.7 \cdot 10^{-183}:\\ \;\;\;\;\frac{x.im - \frac{x.re}{\frac{y.re}{y.im}}}{y.re}\\ \mathbf{elif}\;y.re \leq 10^{+51}:\\ \;\;\;\;\frac{1}{y.im} \cdot \left(x.im \cdot \frac{y.re}{y.im} - x.re\right)\\ \mathbf{else}:\\ \;\;\;\;t_0\\ \end{array} \]
Alternative 5
Accuracy67.6%
Cost1106
\[\begin{array}{l} \mathbf{if}\;y.re \leq -1.25 \cdot 10^{-25} \lor \neg \left(y.re \leq -1.9 \cdot 10^{-129}\right) \land \left(y.re \leq -2.7 \cdot 10^{-183} \lor \neg \left(y.re \leq 1.8 \cdot 10^{+51}\right)\right):\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{else}:\\ \;\;\;\;\frac{-x.re}{y.im}\\ \end{array} \]
Alternative 6
Accuracy67.9%
Cost1104
\[\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}\\ \mathbf{if}\;y.re \leq -9.2 \cdot 10^{-26}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;y.re \leq -1.9 \cdot 10^{-129}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;y.re \leq -2.7 \cdot 10^{-183}:\\ \;\;\;\;\frac{x.im - x.re \cdot \frac{y.im}{y.re}}{y.re}\\ \mathbf{elif}\;y.re \leq 3.1 \cdot 10^{+51}:\\ \;\;\;\;t_0\\ \mathbf{else}:\\ \;\;\;\;t_1\\ \end{array} \]
Alternative 7
Accuracy67.9%
Cost1104
\[\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}\\ \mathbf{if}\;y.re \leq -1.26 \cdot 10^{-25}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;y.re \leq -2 \cdot 10^{-127}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;y.re \leq -2.7 \cdot 10^{-183}:\\ \;\;\;\;\frac{x.im - \frac{x.re}{\frac{y.re}{y.im}}}{y.re}\\ \mathbf{elif}\;y.re \leq 5.8 \cdot 10^{+51}:\\ \;\;\;\;t_0\\ \mathbf{else}:\\ \;\;\;\;t_1\\ \end{array} \]
Alternative 8
Accuracy61.6%
Cost785
\[\begin{array}{l} \mathbf{if}\;y.re \leq -2.3 \cdot 10^{-26}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.re \leq -1.9 \cdot 10^{-129} \lor \neg \left(y.re \leq -2.7 \cdot 10^{-183}\right) \land y.re \leq 10^{+51}:\\ \;\;\;\;\frac{-x.re}{y.im}\\ \mathbf{else}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \end{array} \]
Alternative 9
Accuracy45.5%
Cost456
\[\begin{array}{l} \mathbf{if}\;y.im \leq -1.8 \cdot 10^{+156}:\\ \;\;\;\;\frac{x.re}{y.im}\\ \mathbf{elif}\;y.im \leq 1.08 \cdot 10^{+229}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{else}:\\ \;\;\;\;\frac{x.re}{y.im}\\ \end{array} \]
Alternative 10
Accuracy8.3%
Cost192
\[\frac{x.im}{y.im} \]
Alternative 11
Accuracy41.1%
Cost192
\[\frac{x.im}{y.re} \]

Error

Reproduce?

herbie shell --seed 2023147 
(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))))