Average Error: 25.7 → 14.2
Time: 10.0s
Precision: binary64
Cost: 28228
\[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\]
\[\begin{array}{l} \mathbf{if}\;y.im \leq -1.1437132202364462 \cdot 10^{+93}:\\ \;\;\;\;\frac{-x.re}{y.im}\\ \mathbf{elif}\;y.im \leq -2.5652367524611406 \cdot 10^{-141}:\\ \;\;\;\;\frac{\frac{y.re \cdot x.im - y.im \cdot x.re}{\sqrt{{y.re}^{2} + {y.im}^{2}}}}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\\ \mathbf{elif}\;y.im \leq 1.5711842677325443 \cdot 10^{-128}:\\ \;\;\;\;\frac{x.im}{y.re} - \frac{y.im \cdot x.re}{{y.re}^{2}}\\ \mathbf{elif}\;y.im \leq 1.400268501927579 \cdot 10^{+125}:\\ \;\;\;\;\frac{\frac{y.re \cdot x.im - y.im \cdot x.re}{\sqrt{{y.re}^{2} + {y.im}^{2}}}}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\\ \mathbf{else}:\\ \;\;\;\;\frac{-x.re}{y.im}\\ \end{array}\]
\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}
\begin{array}{l}
\mathbf{if}\;y.im \leq -1.1437132202364462 \cdot 10^{+93}:\\
\;\;\;\;\frac{-x.re}{y.im}\\

\mathbf{elif}\;y.im \leq -2.5652367524611406 \cdot 10^{-141}:\\
\;\;\;\;\frac{\frac{y.re \cdot x.im - y.im \cdot x.re}{\sqrt{{y.re}^{2} + {y.im}^{2}}}}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\\

\mathbf{elif}\;y.im \leq 1.5711842677325443 \cdot 10^{-128}:\\
\;\;\;\;\frac{x.im}{y.re} - \frac{y.im \cdot x.re}{{y.re}^{2}}\\

\mathbf{elif}\;y.im \leq 1.400268501927579 \cdot 10^{+125}:\\
\;\;\;\;\frac{\frac{y.re \cdot x.im - y.im \cdot x.re}{\sqrt{{y.re}^{2} + {y.im}^{2}}}}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\\

\mathbf{else}:\\
\;\;\;\;\frac{-x.re}{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))))
(FPCore (x.re x.im y.re y.im)
 :precision binary64
 (if (<= y.im -1.1437132202364462e+93)
   (/ (- x.re) y.im)
   (if (<= y.im -2.5652367524611406e-141)
     (/
      (/
       (- (* y.re x.im) (* y.im x.re))
       (sqrt (+ (pow y.re 2.0) (pow y.im 2.0))))
      (sqrt (+ (* y.re y.re) (* y.im y.im))))
     (if (<= y.im 1.5711842677325443e-128)
       (- (/ x.im y.re) (/ (* y.im x.re) (pow y.re 2.0)))
       (if (<= y.im 1.400268501927579e+125)
         (/
          (/
           (- (* y.re x.im) (* y.im x.re))
           (sqrt (+ (pow y.re 2.0) (pow y.im 2.0))))
          (sqrt (+ (* y.re y.re) (* y.im y.im))))
         (/ (- x.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 tmp;
	if (y_46_im <= -1.1437132202364462e+93) {
		tmp = -x_46_re / y_46_im;
	} else if (y_46_im <= -2.5652367524611406e-141) {
		tmp = (((y_46_re * x_46_im) - (y_46_im * x_46_re)) / sqrt(pow(y_46_re, 2.0) + pow(y_46_im, 2.0))) / sqrt((y_46_re * y_46_re) + (y_46_im * y_46_im));
	} else if (y_46_im <= 1.5711842677325443e-128) {
		tmp = (x_46_im / y_46_re) - ((y_46_im * x_46_re) / pow(y_46_re, 2.0));
	} else if (y_46_im <= 1.400268501927579e+125) {
		tmp = (((y_46_re * x_46_im) - (y_46_im * x_46_re)) / sqrt(pow(y_46_re, 2.0) + pow(y_46_im, 2.0))) / sqrt((y_46_re * y_46_re) + (y_46_im * y_46_im));
	} else {
		tmp = -x_46_re / y_46_im;
	}
	return tmp;
}

Error

Bits error versus x.re

Bits error versus x.im

Bits error versus y.re

Bits error versus y.im

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Alternatives

Alternative 1
Error26.3
Cost79424
\[\frac{\sqrt[3]{y.re \cdot x.im - x.re \cdot y.im} \cdot \sqrt[3]{y.re \cdot x.im - x.re \cdot y.im}}{\sqrt[3]{{y.re}^{2} + {y.im}^{2}} \cdot \sqrt[3]{{y.re}^{2} + {y.im}^{2}}} \cdot \frac{\sqrt[3]{y.re \cdot x.im - x.re \cdot y.im}}{\sqrt[3]{{y.re}^{2} + {y.im}^{2}}}\]
Alternative 2
Error45.0
Cost72512
\[\frac{\sqrt{y.re \cdot x.im - x.re \cdot y.im}}{\sqrt[3]{{y.re}^{2} + {y.im}^{2}} \cdot \sqrt[3]{{y.re}^{2} + {y.im}^{2}}} \cdot \frac{\sqrt{y.re \cdot x.im - x.re \cdot y.im}}{\sqrt[3]{{y.re}^{2} + {y.im}^{2}}}\]
Alternative 3
Error26.2
Cost60224
\[\sqrt[3]{\frac{y.re \cdot x.im - x.re \cdot y.im}{{y.re}^{2} + {y.im}^{2}}} \cdot \left(\sqrt[3]{\frac{y.re \cdot x.im - x.re \cdot y.im}{{y.re}^{2} + {y.im}^{2}}} \cdot \sqrt[3]{\frac{y.re \cdot x.im - x.re \cdot y.im}{{y.re}^{2} + {y.im}^{2}}}\right)\]
Alternative 4
Error26.2
Cost59840
\[\frac{\sqrt[3]{y.re \cdot x.im - x.re \cdot y.im} \cdot \sqrt[3]{y.re \cdot x.im - x.re \cdot y.im}}{\sqrt{{y.re}^{2} + {y.im}^{2}}} \cdot \frac{\sqrt[3]{y.re \cdot x.im - x.re \cdot y.im}}{\sqrt{{y.re}^{2} + {y.im}^{2}}}\]
Alternative 5
Error26.2
Cost59328
\[\frac{1}{\sqrt[3]{{y.re}^{2} + {y.im}^{2}} \cdot \sqrt[3]{{y.re}^{2} + {y.im}^{2}}} \cdot \frac{y.re \cdot x.im - x.re \cdot y.im}{\sqrt[3]{{y.re}^{2} + {y.im}^{2}}}\]
Alternative 6
Error44.8
Cost52928
\[\frac{\sqrt{y.re \cdot x.im - x.re \cdot y.im}}{\sqrt{{y.re}^{2} + {y.im}^{2}}} \cdot \frac{\sqrt{y.re \cdot x.im - x.re \cdot y.im}}{\sqrt{{y.re}^{2} + {y.im}^{2}}}\]
Alternative 7
Error27.5
Cost52416
\[\frac{\frac{y.re \cdot x.im - x.re \cdot y.im}{\sqrt{{y.re}^{2} + {y.im}^{2}}}}{e^{\log \left(\sqrt{{y.re}^{2} + {y.im}^{2}}\right)}}\]
Alternative 8
Error39.6
Cost40128
\[\sqrt{\frac{y.re \cdot x.im - x.re \cdot y.im}{{y.re}^{2} + {y.im}^{2}}} \cdot \sqrt{\frac{y.re \cdot x.im - x.re \cdot y.im}{{y.re}^{2} + {y.im}^{2}}}\]
Alternative 9
Error25.7
Cost39744
\[\frac{y.re \cdot x.im - x.re \cdot y.im}{\sqrt{{y.re}^{2} + {y.im}^{2}}} \cdot \frac{1}{\sqrt{{y.re}^{2} + {y.im}^{2}}}\]
Alternative 10
Error26.2
Cost33856
\[\left(\sqrt[3]{y.re \cdot x.im - x.re \cdot y.im} \cdot \sqrt[3]{y.re \cdot x.im - x.re \cdot y.im}\right) \cdot \frac{\sqrt[3]{y.re \cdot x.im - x.re \cdot y.im}}{{y.re}^{2} + {y.im}^{2}}\]
Alternative 11
Error47.1
Cost28096
\[\frac{\frac{{\left(y.re \cdot x.im\right)}^{3} - {\left(x.re \cdot y.im\right)}^{3}}{{y.re}^{2} + {y.im}^{2}}}{\left(y.re \cdot x.im\right) \cdot \left(y.re \cdot x.im\right) + \left(\left(x.re \cdot y.im\right) \cdot \left(x.re \cdot y.im\right) + \left(y.re \cdot x.im\right) \cdot \left(x.re \cdot y.im\right)\right)}\]
Alternative 12
Error25.7
Cost26944
\[\frac{\frac{y.re \cdot x.im - x.re \cdot y.im}{\sqrt{{y.re}^{2} + {y.im}^{2}}}}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\]
Alternative 13
Error44.8
Cost26944
\[\sqrt{y.re \cdot x.im - x.re \cdot y.im} \cdot \frac{\sqrt{y.re \cdot x.im - x.re \cdot y.im}}{{y.re}^{2} + {y.im}^{2}}\]
Alternative 14
Error40.9
Cost26496
\[\sqrt[3]{{\left(\frac{y.re \cdot x.im - x.re \cdot y.im}{{y.re}^{2} + {y.im}^{2}}\right)}^{3}}\]
Alternative 15
Error26.2
Cost21184
\[\frac{\sqrt[3]{y.re \cdot x.im - x.re \cdot y.im} \cdot \left(\sqrt[3]{y.re \cdot x.im - x.re \cdot y.im} \cdot \sqrt[3]{y.re \cdot x.im - x.re \cdot y.im}\right)}{y.re \cdot y.re + y.im \cdot y.im}\]
Alternative 16
Error46.2
Cost20160
\[\frac{\frac{y.re \cdot x.im - x.re \cdot y.im}{\sqrt{{y.re}^{2} + {y.im}^{2}}}}{y.re}\]
Alternative 17
Error54.7
Cost15168
\[\frac{y.re \cdot x.im - x.re \cdot y.im}{{y.re}^{6} + {y.im}^{6}} \cdot \left(\left(y.re \cdot y.re\right) \cdot \left(y.re \cdot y.re\right) + \left(\left(y.im \cdot y.im\right) \cdot \left(y.im \cdot y.im\right) - \left(y.re \cdot y.re\right) \cdot \left(y.im \cdot y.im\right)\right)\right)\]
Alternative 18
Error40.9
Cost14656
\[\frac{\left(y.re \cdot x.im\right) \cdot \left(y.re \cdot x.im\right) - \left(x.re \cdot y.im\right) \cdot \left(x.re \cdot y.im\right)}{\left({y.re}^{2} + {y.im}^{2}\right) \cdot \left(y.re \cdot x.im + x.re \cdot y.im\right)}\]
Alternative 19
Error51.7
Cost14656
\[\frac{\frac{{y.re}^{2} \cdot \left(x.im \cdot x.im\right) - {y.im}^{2} \cdot \left(x.re \cdot x.re\right)}{y.re \cdot x.im + x.re \cdot y.im}}{y.re \cdot y.re + y.im \cdot y.im}\]
Alternative 20
Error44.8
Cost14272
\[\frac{\sqrt{y.re \cdot x.im - x.re \cdot y.im} \cdot \sqrt{y.re \cdot x.im - x.re \cdot y.im}}{y.re \cdot y.re + y.im \cdot y.im}\]
Alternative 21
Error48.5
Cost14144
\[\frac{y.re \cdot x.im - x.re \cdot y.im}{{y.re}^{4} - {y.im}^{4}} \cdot \left(y.re \cdot y.re - y.im \cdot y.im\right)\]
Alternative 22
Error44.9
Cost13824
\[\frac{\sqrt[3]{{\left(y.re \cdot x.im - x.re \cdot y.im\right)}^{3}}}{y.re \cdot y.re + y.im \cdot y.im}\]
Alternative 23
Error25.9
Cost13760
\[\left(y.re \cdot x.im - x.re \cdot y.im\right) \cdot \frac{1}{{y.re}^{2} + {y.im}^{2}}\]
Alternative 24
Error25.9
Cost13760
\[\frac{1}{\frac{{y.re}^{2} + {y.im}^{2}}{y.re \cdot x.im - x.re \cdot y.im}}\]
Alternative 25
Error38.9
Cost13440
\[\frac{\left(-x.re\right) \cdot y.im}{{y.re}^{2} + {y.im}^{2}}\]
Alternative 26
Error38.8
Cost13376
\[\frac{y.re \cdot x.im}{{y.re}^{2} + {y.im}^{2}}\]
Alternative 27
Error47.2
Cost7552
\[\frac{\frac{y.re \cdot x.im - x.re \cdot y.im}{-y.im}}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\]
Alternative 28
Error47.1
Cost7488
\[\frac{\frac{y.re \cdot x.im - x.re \cdot y.im}{y.re}}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\]
Alternative 29
Error46.3
Cost7360
\[\frac{x.re - \frac{y.re \cdot x.im}{y.im}}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\]
Alternative 30
Error46.1
Cost7360
\[\frac{x.im - \frac{x.re \cdot y.im}{y.re}}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\]
Alternative 31
Error46.7
Cost7040
\[\frac{-x.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\]
Alternative 32
Error47.1
Cost7040
\[\frac{-x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\]
Alternative 33
Error35.2
Cost7040
\[\frac{x.im}{y.re} - \frac{x.re \cdot y.im}{{y.re}^{2}}\]
Alternative 34
Error25.7
Cost960
\[\frac{y.re \cdot x.im - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\]
Alternative 35
Error38.9
Cost768
\[\frac{\left(-x.re\right) \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\]
Alternative 36
Error38.8
Cost704
\[\frac{y.re \cdot x.im}{y.re \cdot y.re + y.im \cdot y.im}\]
Alternative 37
Error37.0
Cost256
\[\frac{-x.re}{y.im}\]
Alternative 38
Error37.7
Cost192
\[\frac{x.im}{y.re}\]
Alternative 39
Error61.6
Cost64
\[1\]
Alternative 40
Error51.6
Cost64
\[0\]
Alternative 41
Error61.7
Cost64
\[-1\]

Error

Derivation

  1. Split input into 3 regimes
  2. if y.im < -1.1437132202364462e93 or 1.40026850192757901e125 < y.im

    1. Initial program 39.4

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\]
    2. Taylor expanded around 0 15.3

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

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

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

    if -1.1437132202364462e93 < y.im < -2.56523675246114059e-141 or 1.57118426773254431e-128 < y.im < 1.40026850192757901e125

    1. Initial program 15.8

      \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt_binary64_75915.8

      \[\leadsto \frac{x.im \cdot y.re - x.re \cdot 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}}}\]
    4. Applied associate-/r*_binary64_68115.8

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

      \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.re - x.re \cdot y.im}{\sqrt{{y.re}^{2} + {y.im}^{2}}}}}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\]
    6. Simplified15.8

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

    if -2.56523675246114059e-141 < y.im < 1.57118426773254431e-128

    1. Initial program 23.2

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

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

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

      \[\leadsto \color{blue}{\frac{x.im}{y.re} - \frac{x.re \cdot y.im}{{y.re}^{2}}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification14.2

    \[\leadsto \begin{array}{l} \mathbf{if}\;y.im \leq -1.1437132202364462 \cdot 10^{+93}:\\ \;\;\;\;\frac{-x.re}{y.im}\\ \mathbf{elif}\;y.im \leq -2.5652367524611406 \cdot 10^{-141}:\\ \;\;\;\;\frac{\frac{y.re \cdot x.im - y.im \cdot x.re}{\sqrt{{y.re}^{2} + {y.im}^{2}}}}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\\ \mathbf{elif}\;y.im \leq 1.5711842677325443 \cdot 10^{-128}:\\ \;\;\;\;\frac{x.im}{y.re} - \frac{y.im \cdot x.re}{{y.re}^{2}}\\ \mathbf{elif}\;y.im \leq 1.400268501927579 \cdot 10^{+125}:\\ \;\;\;\;\frac{\frac{y.re \cdot x.im - y.im \cdot x.re}{\sqrt{{y.re}^{2} + {y.im}^{2}}}}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\\ \mathbf{else}:\\ \;\;\;\;\frac{-x.re}{y.im}\\ \end{array}\]

Reproduce

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