Average Error: 26.6 → 16.2
Time: 17.4s
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 -2.623594142603243 \cdot 10^{+102}:\\ \;\;\;\;\frac{-x.re}{y.im}\\ \mathbf{elif}\;y.im \leq -3.5075870245798887 \cdot 10^{-162}:\\ \;\;\;\;\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.7736026235522196 \cdot 10^{-115}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 5.618016963658139 \cdot 10^{+45}:\\ \;\;\;\;\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{y.re \cdot x.im}{{y.im}^{2}} - \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 -2.623594142603243 \cdot 10^{+102}:\\
\;\;\;\;\frac{-x.re}{y.im}\\

\mathbf{elif}\;y.im \leq -3.5075870245798887 \cdot 10^{-162}:\\
\;\;\;\;\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.7736026235522196 \cdot 10^{-115}:\\
\;\;\;\;\frac{x.im}{y.re}\\

\mathbf{elif}\;y.im \leq 5.618016963658139 \cdot 10^{+45}:\\
\;\;\;\;\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{y.re \cdot x.im}{{y.im}^{2}} - \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 -2.623594142603243e+102)
   (/ (- x.re) y.im)
   (if (<= y.im -3.5075870245798887e-162)
     (/
      (/
       (- (* 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.7736026235522196e-115)
       (/ x.im y.re)
       (if (<= y.im 5.618016963658139e+45)
         (/
          (/
           (- (* 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))))
         (- (/ (* y.re x.im) (pow y.im 2.0)) (/ 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 <= -2.623594142603243e+102) {
		tmp = -x_46_re / y_46_im;
	} else if (y_46_im <= -3.5075870245798887e-162) {
		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.7736026235522196e-115) {
		tmp = x_46_im / y_46_re;
	} else if (y_46_im <= 5.618016963658139e+45) {
		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 = ((y_46_re * x_46_im) / pow(y_46_im, 2.0)) - (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
Error27.1
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.3
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
Error27.0
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
Error27.0
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.7
Cost59456
\[\frac{\frac{y.re \cdot x.im - x.re \cdot y.im}{\sqrt{\sqrt{{y.re}^{2} + {y.im}^{2}}}} \cdot \frac{1}{\sqrt{\sqrt{{y.re}^{2} + {y.im}^{2}}}}}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\]
Alternative 6
Error26.6
Cost59328
\[\frac{\frac{\frac{y.re \cdot x.im - x.re \cdot y.im}{\sqrt{\sqrt{{y.re}^{2} + {y.im}^{2}}}}}{\sqrt{\sqrt{{y.re}^{2} + {y.im}^{2}}}}}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\]
Alternative 7
Error27.0
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 8
Error27.0
Cost46528
\[\frac{\frac{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}}}}{\sqrt[3]{y.re \cdot y.re + y.im \cdot y.im}}\]
Alternative 9
Error40.3
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 10
Error26.6
Cost39744
\[\frac{1}{\sqrt{{y.re}^{2} + {y.im}^{2}}} \cdot \frac{y.re \cdot x.im - x.re \cdot y.im}{\sqrt{{y.re}^{2} + {y.im}^{2}}}\]
Alternative 11
Error27.0
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 12
Error45.2
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 13
Error26.5
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 14
Error26.6
Cost26816
\[\frac{y.re \cdot x.im}{{y.re}^{2} + {y.im}^{2}} - \frac{x.re \cdot y.im}{{y.re}^{2} + {y.im}^{2}}\]
Alternative 15
Error41.7
Cost26496
\[\sqrt[3]{{\left(\frac{y.re \cdot x.im - x.re \cdot y.im}{{y.re}^{2} + {y.im}^{2}}\right)}^{3}}\]
Alternative 16
Error27.0
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 17
Error47.2
Cost20224
\[\frac{\frac{y.re \cdot x.im - x.re \cdot y.im}{\sqrt{{y.re}^{2} + {y.im}^{2}}}}{-y.im}\]
Alternative 18
Error47.1
Cost20224
\[\frac{\frac{y.re \cdot x.im - x.re \cdot y.im}{\sqrt{{y.re}^{2} + {y.im}^{2}}}}{-y.re}\]
Alternative 19
Error54.9
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 20
Error51.8
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)}{x.re \cdot y.im + y.re \cdot x.im}}{y.re \cdot y.re + y.im \cdot y.im}\]
Alternative 21
Error41.8
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(x.re \cdot y.im + y.re \cdot x.im\right)}\]
Alternative 22
Error49.2
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 23
Error26.7
Cost13760
\[\left(y.re \cdot x.im - x.re \cdot y.im\right) \cdot \frac{1}{{y.re}^{2} + {y.im}^{2}}\]
Alternative 24
Error26.7
Cost13760
\[\frac{1}{\frac{{y.re}^{2} + {y.im}^{2}}{y.re \cdot x.im - x.re \cdot y.im}}\]
Alternative 25
Error40.0
Cost13440
\[\frac{-x.re \cdot y.im}{{y.re}^{2} + {y.im}^{2}}\]
Alternative 26
Error39.3
Cost13376
\[\frac{y.re \cdot x.im}{{y.re}^{2} + {y.im}^{2}}\]
Alternative 27
Error48.0
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.9
Cost7552
\[\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
Error48.2
Cost7488
\[\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 30
Error47.1
Cost7360
\[\frac{\frac{y.re \cdot x.im}{y.im} - x.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\]
Alternative 31
Error46.9
Cost7360
\[\frac{\frac{x.re \cdot y.im}{y.re} - x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\]
Alternative 32
Error46.9
Cost7360
\[\frac{x.re - \frac{y.re \cdot x.im}{y.im}}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\]
Alternative 33
Error34.8
Cost7040
\[\frac{y.re \cdot x.im}{{y.im}^{2}} - \frac{x.re}{y.im}\]
Alternative 34
Error47.5
Cost6976
\[\frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\]
Alternative 35
Error26.6
Cost960
\[\frac{y.re \cdot x.im - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\]
Alternative 36
Error40.0
Cost768
\[\frac{-x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\]
Alternative 37
Error39.3
Cost704
\[\frac{y.re \cdot x.im}{y.re \cdot y.re + y.im \cdot y.im}\]
Alternative 38
Error37.5
Cost256
\[\frac{-x.re}{y.im}\]
Alternative 39
Error37.3
Cost192
\[\frac{x.im}{y.re}\]
Alternative 40
Error61.6
Cost64
\[1\]
Alternative 41
Error52.3
Cost64
\[0\]
Alternative 42
Error61.6
Cost64
\[-1\]

Error

Derivation

  1. Split input into 4 regimes
  2. if y.im < -2.6235941426032431e102

    1. Initial program 41.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 around 0 17.6

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

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

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

    if -2.6235941426032431e102 < y.im < -3.5075870245798887e-162 or 1.7736026235522196e-115 < y.im < 5.61801696365813873e45

    1. Initial program 15.7

      \[\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_351015.7

      \[\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_343215.6

      \[\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.6

      \[\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.6

      \[\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 -3.5075870245798887e-162 < y.im < 1.7736026235522196e-115

    1. Initial program 22.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 around inf 15.4

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

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

    if 5.61801696365813873e45 < y.im

    1. Initial program 36.1

      \[\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 16.8

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;y.im \leq -2.623594142603243 \cdot 10^{+102}:\\ \;\;\;\;\frac{-x.re}{y.im}\\ \mathbf{elif}\;y.im \leq -3.5075870245798887 \cdot 10^{-162}:\\ \;\;\;\;\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.7736026235522196 \cdot 10^{-115}:\\ \;\;\;\;\frac{x.im}{y.re}\\ \mathbf{elif}\;y.im \leq 5.618016963658139 \cdot 10^{+45}:\\ \;\;\;\;\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{y.re \cdot x.im}{{y.im}^{2}} - \frac{x.re}{y.im}\\ \end{array}\]

Reproduce

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