Average Error: 25.8 → 17.9
Time: 14.7s
Precision: binary64
Cost: 27272
\[\frac{x.re \cdot y.re + x.im \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\]
\[\begin{array}{l} \mathbf{if}\;y.im \leq -3.6836303645104744 \cdot 10^{+137} \lor \neg \left(y.im \leq 4.0463340212107907 \cdot 10^{+55}\right):\\ \;\;\;\;\frac{x.im}{y.im}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{y.re \cdot x.re + y.im \cdot x.im}{\sqrt{{y.re}^{2} + {y.im}^{2}}}}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\\ \end{array}\]
\frac{x.re \cdot y.re + x.im \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}
\begin{array}{l}
\mathbf{if}\;y.im \leq -3.6836303645104744 \cdot 10^{+137} \lor \neg \left(y.im \leq 4.0463340212107907 \cdot 10^{+55}\right):\\
\;\;\;\;\frac{x.im}{y.im}\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{y.re \cdot x.re + y.im \cdot x.im}{\sqrt{{y.re}^{2} + {y.im}^{2}}}}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\\

\end{array}
(FPCore (x.re x.im y.re y.im)
 :precision binary64
 (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))))
(FPCore (x.re x.im y.re y.im)
 :precision binary64
 (if (or (<= y.im -3.6836303645104744e+137)
         (not (<= y.im 4.0463340212107907e+55)))
   (/ x.im y.im)
   (/
    (/
     (+ (* y.re x.re) (* y.im x.im))
     (sqrt (+ (pow y.re 2.0) (pow y.im 2.0))))
    (sqrt (+ (* 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_re * y_46_re) + (x_46_im * 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 <= -3.6836303645104744e+137) || !(y_46_im <= 4.0463340212107907e+55)) {
		tmp = x_46_im / y_46_im;
	} else {
		tmp = (((y_46_re * x_46_re) + (y_46_im * x_46_im)) / 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));
	}
	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.4
Cost79424
\[\frac{\sqrt[3]{y.re \cdot x.re + y.im \cdot x.im} \cdot \sqrt[3]{y.re \cdot x.re + y.im \cdot x.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.re + y.im \cdot x.im}}{\sqrt[3]{{y.re}^{2} + {y.im}^{2}}}\]
Alternative 2
Error45.0
Cost72512
\[\frac{\sqrt{y.re \cdot x.re + y.im \cdot x.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.re + y.im \cdot x.im}}{\sqrt[3]{{y.re}^{2} + {y.im}^{2}}}\]
Alternative 3
Error25.9
Cost72128
\[\frac{1}{\sqrt{{y.re}^{2} + {y.im}^{2}}} \cdot \frac{y.re \cdot x.re + y.im \cdot x.im}{\sqrt{\sqrt{{y.re}^{2} + {y.im}^{2}}} \cdot \sqrt{\sqrt{{y.re}^{2} + {y.im}^{2}}}}\]
Alternative 4
Error26.4
Cost60352
\[\frac{1}{\sqrt[3]{\frac{{y.re}^{2} + {y.im}^{2}}{y.re \cdot x.re + y.im \cdot x.im}} \cdot \left(\sqrt[3]{\frac{{y.re}^{2} + {y.im}^{2}}{y.re \cdot x.re + y.im \cdot x.im}} \cdot \sqrt[3]{\frac{{y.re}^{2} + {y.im}^{2}}{y.re \cdot x.re + y.im \cdot x.im}}\right)}\]
Alternative 5
Error26.2
Cost60224
\[\sqrt[3]{\frac{y.re \cdot x.re + y.im \cdot x.im}{{y.re}^{2} + {y.im}^{2}}} \cdot \left(\sqrt[3]{\frac{y.re \cdot x.re + y.im \cdot x.im}{{y.re}^{2} + {y.im}^{2}}} \cdot \sqrt[3]{\frac{y.re \cdot x.re + y.im \cdot x.im}{{y.re}^{2} + {y.im}^{2}}}\right)\]
Alternative 6
Error26.2
Cost59840
\[\frac{\sqrt[3]{y.re \cdot x.re + y.im \cdot x.im} \cdot \sqrt[3]{y.re \cdot x.re + y.im \cdot x.im}}{\sqrt{{y.re}^{2} + {y.im}^{2}}} \cdot \frac{\sqrt[3]{y.re \cdot x.re + y.im \cdot x.im}}{\sqrt{{y.re}^{2} + {y.im}^{2}}}\]
Alternative 7
Error26.3
Cost59328
\[\frac{1}{\left(\sqrt[3]{{y.re}^{2} + {y.im}^{2}} \cdot \sqrt[3]{{y.re}^{2} + {y.im}^{2}}\right) \cdot \frac{\sqrt[3]{{y.re}^{2} + {y.im}^{2}}}{y.re \cdot x.re + y.im \cdot x.im}}\]
Alternative 8
Error26.3
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.re + y.im \cdot x.im}{\sqrt[3]{{y.re}^{2} + {y.im}^{2}}}\]
Alternative 9
Error44.8
Cost52928
\[\frac{\sqrt{y.re \cdot x.re + y.im \cdot x.im}}{\sqrt{{y.re}^{2} + {y.im}^{2}}} \cdot \frac{\sqrt{y.re \cdot x.re + y.im \cdot x.im}}{\sqrt{{y.re}^{2} + {y.im}^{2}}}\]
Alternative 10
Error51.7
Cost52672
\[\frac{1}{\sqrt{{y.re}^{2} + {y.im}^{2}}} \cdot \frac{y.re \cdot x.re + y.im \cdot x.im}{\sqrt{\sqrt{{y.re}^{2} + {y.im}^{2}}} \cdot \sqrt{y.re}}\]
Alternative 11
Error26.3
Cost46528
\[\frac{\frac{y.re \cdot x.re + y.im \cdot x.im}{\sqrt[3]{{y.re}^{2} + {y.im}^{2}} \cdot \sqrt[3]{{y.re}^{2} + {y.im}^{2}}}}{\sqrt[3]{y.re \cdot y.re + y.im \cdot y.im}}\]
Alternative 12
Error40.0
Cost40128
\[\sqrt{\frac{y.re \cdot x.re + y.im \cdot x.im}{{y.re}^{2} + {y.im}^{2}}} \cdot \sqrt{\frac{y.re \cdot x.re + y.im \cdot x.im}{{y.re}^{2} + {y.im}^{2}}}\]
Alternative 13
Error25.8
Cost39744
\[\frac{1}{\sqrt{{y.re}^{2} + {y.im}^{2}}} \cdot \frac{y.re \cdot x.re + y.im \cdot x.im}{\sqrt{{y.re}^{2} + {y.im}^{2}}}\]
Alternative 14
Error26.3
Cost33856
\[\left(\sqrt[3]{y.re \cdot x.re + y.im \cdot x.im} \cdot \sqrt[3]{y.re \cdot x.re + y.im \cdot x.im}\right) \cdot \frac{\sqrt[3]{y.re \cdot x.re + y.im \cdot x.im}}{{y.re}^{2} + {y.im}^{2}}\]
Alternative 15
Error44.8
Cost26944
\[\sqrt{y.re \cdot x.re + y.im \cdot x.im} \cdot \frac{\sqrt{y.re \cdot x.re + y.im \cdot x.im}}{{y.re}^{2} + {y.im}^{2}}\]
Alternative 16
Error25.7
Cost26944
\[\frac{\frac{y.re \cdot x.re + y.im \cdot x.im}{\sqrt{{y.re}^{2} + {y.im}^{2}}}}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\]
Alternative 17
Error40.9
Cost26496
\[\sqrt[3]{{\left(\frac{y.re \cdot x.re + y.im \cdot x.im}{{y.re}^{2} + {y.im}^{2}}\right)}^{3}}\]
Alternative 18
Error41.0
Cost26432
\[e^{\log \left(\frac{y.re \cdot x.re + y.im \cdot x.im}{{y.re}^{2} + {y.im}^{2}}\right)}\]
Alternative 19
Error44.2
Cost20992
\[\frac{1}{\left(\frac{y.re}{x.re} + \frac{{y.im}^{2}}{y.re} \cdot \frac{{x.im}^{2}}{{x.re}^{3}}\right) + \frac{y.im}{x.re} \cdot \left(\frac{y.im}{y.re} - \frac{x.im}{x.re}\right)}\]
Alternative 20
Error38.9
Cost20992
\[\frac{1}{\frac{y.re}{y.im} \cdot \left(\frac{y.re}{x.im} + \frac{y.re \cdot {x.re}^{2}}{{x.im}^{3}}\right) + \left(\frac{y.im}{x.im} - \frac{y.re \cdot x.re}{{x.im}^{2}}\right)}\]
Alternative 21
Error47.4
Cost20352
\[\frac{1}{\sqrt{{y.re}^{2} + {y.im}^{2}}} \cdot \frac{y.re \cdot x.re + y.im \cdot x.im}{-y.im}\]
Alternative 22
Error46.7
Cost20352
\[\frac{1}{-y.im} \cdot \frac{y.re \cdot x.re + y.im \cdot x.im}{\sqrt{{y.re}^{2} + {y.im}^{2}}}\]
Alternative 23
Error54.7
Cost15168
\[\frac{y.re \cdot x.re + y.im \cdot x.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 24
Error51.8
Cost14656
\[\frac{\frac{{y.re}^{2} \cdot \left(x.re \cdot x.re\right) - {y.im}^{2} \cdot \left(x.im \cdot x.im\right)}{y.re \cdot x.re - y.im \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im}\]
Alternative 25
Error41.5
Cost14656
\[\frac{\left(y.re \cdot x.re\right) \cdot \left(y.re \cdot x.re\right) - \left(y.im \cdot x.im\right) \cdot \left(y.im \cdot x.im\right)}{\left({y.re}^{2} + {y.im}^{2}\right) \cdot \left(y.re \cdot x.re - y.im \cdot x.im\right)}\]
Alternative 26
Error44.8
Cost14272
\[\frac{\sqrt{y.re \cdot x.re + y.im \cdot x.im} \cdot \sqrt{y.re \cdot x.re + y.im \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im}\]
Alternative 27
Error48.7
Cost14144
\[\frac{y.re \cdot x.re + y.im \cdot x.im}{{y.re}^{4} - {y.im}^{4}} \cdot \left(y.re \cdot y.re - y.im \cdot y.im\right)\]
Alternative 28
Error45.5
Cost13824
\[\frac{\sqrt[3]{{\left(y.re \cdot x.re + y.im \cdot x.im\right)}^{3}}}{y.re \cdot y.re + y.im \cdot y.im}\]
Alternative 29
Error26.0
Cost13760
\[\left(y.re \cdot x.re + y.im \cdot x.im\right) \cdot \frac{1}{{y.re}^{2} + {y.im}^{2}}\]
Alternative 30
Error25.9
Cost13760
\[\frac{1}{\frac{{y.re}^{2} + {y.im}^{2}}{y.re \cdot x.re + y.im \cdot x.im}}\]
Alternative 31
Error39.1
Cost13504
\[\frac{1}{\frac{{y.re}^{2} + {y.im}^{2}}{y.im \cdot x.im}}\]
Alternative 32
Error39.5
Cost13504
\[\frac{1}{\frac{{y.re}^{2} + {y.im}^{2}}{y.re \cdot x.re}}\]
Alternative 33
Error39.0
Cost13376
\[\frac{y.im \cdot x.im}{{y.re}^{2} + {y.im}^{2}}\]
Alternative 34
Error39.4
Cost13376
\[\frac{y.re \cdot x.re}{{y.re}^{2} + {y.im}^{2}}\]
Alternative 35
Error25.8
Cost960
\[\frac{y.re \cdot x.re + y.im \cdot x.im}{y.re \cdot y.re + y.im \cdot y.im}\]
Alternative 36
Error39.4
Cost704
\[\frac{y.re \cdot x.re}{y.re \cdot y.re + y.im \cdot y.im}\]
Alternative 37
Error39.0
Cost704
\[\frac{y.im \cdot x.im}{y.re \cdot y.re + y.im \cdot y.im}\]
Alternative 38
Error37.9
Cost320
\[\frac{1}{\frac{y.re}{x.re}}\]
Alternative 39
Error37.1
Cost320
\[\frac{1}{\frac{y.im}{x.im}}\]
Alternative 40
Error37.8
Cost192
\[\frac{x.re}{y.re}\]
Alternative 41
Error36.9
Cost192
\[\frac{x.im}{y.im}\]
Alternative 42
Error61.6
Cost64
\[1\]
Alternative 43
Error52.3
Cost64
\[0\]
Alternative 44
Error61.6
Cost64
\[-1\]

Error

Derivation

  1. Split input into 2 regimes
  2. if y.im < -3.6836303645104744e137 or 4.0463340212107907e55 < y.im

    1. Initial program 38.6

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

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

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

    if -3.6836303645104744e137 < y.im < 4.0463340212107907e55

    1. Initial program 18.4

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

      \[\leadsto \frac{x.re \cdot y.re + x.im \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_70418.3

      \[\leadsto \color{blue}{\frac{\frac{x.re \cdot y.re + x.im \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. Simplified18.3

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;y.im \leq -3.6836303645104744 \cdot 10^{+137} \lor \neg \left(y.im \leq 4.0463340212107907 \cdot 10^{+55}\right):\\ \;\;\;\;\frac{x.im}{y.im}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{y.re \cdot x.re + y.im \cdot x.im}{\sqrt{{y.re}^{2} + {y.im}^{2}}}}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\\ \end{array}\]

Reproduce

herbie shell --seed 2021022 
(FPCore (x.re x.im y.re y.im)
  :name "_divideComplex, real part"
  :precision binary64
  (/ (+ (* x.re y.re) (* x.im y.im)) (+ (* y.re y.re) (* y.im y.im))))