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;
}
Try it out
Enter valid numbers for all inputs
Alternatives
| Alternative 1 |
|---|
| Error | 27.1 |
|---|
| Cost | 79424 |
|---|
\[\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 |
|---|
| Error | 45.3 |
|---|
| Cost | 72512 |
|---|
\[\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 |
|---|
| Error | 27.0 |
|---|
| Cost | 60224 |
|---|
\[\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 |
|---|
| Error | 27.0 |
|---|
| Cost | 59840 |
|---|
\[\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 |
|---|
| Error | 26.7 |
|---|
| Cost | 59456 |
|---|
\[\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 |
|---|
| Error | 26.6 |
|---|
| Cost | 59328 |
|---|
\[\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 |
|---|
| Error | 27.0 |
|---|
| Cost | 59328 |
|---|
\[\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 |
|---|
| Error | 27.0 |
|---|
| Cost | 46528 |
|---|
\[\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 |
|---|
| Error | 40.3 |
|---|
| Cost | 40128 |
|---|
\[\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 |
|---|
| Error | 26.6 |
|---|
| Cost | 39744 |
|---|
\[\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 |
|---|
| Error | 27.0 |
|---|
| Cost | 33856 |
|---|
\[\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 |
|---|
| Error | 45.2 |
|---|
| Cost | 26944 |
|---|
\[\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 |
|---|
| Error | 26.5 |
|---|
| Cost | 26944 |
|---|
\[\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 |
|---|
| Error | 26.6 |
|---|
| Cost | 26816 |
|---|
\[\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 |
|---|
| Error | 41.7 |
|---|
| Cost | 26496 |
|---|
\[\sqrt[3]{{\left(\frac{y.re \cdot x.im - x.re \cdot y.im}{{y.re}^{2} + {y.im}^{2}}\right)}^{3}}\]
| Alternative 16 |
|---|
| Error | 27.0 |
|---|
| Cost | 21184 |
|---|
\[\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 |
|---|
| Error | 47.2 |
|---|
| Cost | 20224 |
|---|
\[\frac{\frac{y.re \cdot x.im - x.re \cdot y.im}{\sqrt{{y.re}^{2} + {y.im}^{2}}}}{-y.im}\]
| Alternative 18 |
|---|
| Error | 47.1 |
|---|
| Cost | 20224 |
|---|
\[\frac{\frac{y.re \cdot x.im - x.re \cdot y.im}{\sqrt{{y.re}^{2} + {y.im}^{2}}}}{-y.re}\]
| Alternative 19 |
|---|
| Error | 54.9 |
|---|
| Cost | 15168 |
|---|
\[\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 |
|---|
| Error | 51.8 |
|---|
| Cost | 14656 |
|---|
\[\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 |
|---|
| Error | 41.8 |
|---|
| Cost | 14656 |
|---|
\[\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 |
|---|
| Error | 49.2 |
|---|
| Cost | 14144 |
|---|
\[\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 |
|---|
| Error | 26.7 |
|---|
| Cost | 13760 |
|---|
\[\left(y.re \cdot x.im - x.re \cdot y.im\right) \cdot \frac{1}{{y.re}^{2} + {y.im}^{2}}\]
| Alternative 24 |
|---|
| Error | 26.7 |
|---|
| Cost | 13760 |
|---|
\[\frac{1}{\frac{{y.re}^{2} + {y.im}^{2}}{y.re \cdot x.im - x.re \cdot y.im}}\]
| Alternative 25 |
|---|
| Error | 40.0 |
|---|
| Cost | 13440 |
|---|
\[\frac{-x.re \cdot y.im}{{y.re}^{2} + {y.im}^{2}}\]
| Alternative 26 |
|---|
| Error | 39.3 |
|---|
| Cost | 13376 |
|---|
\[\frac{y.re \cdot x.im}{{y.re}^{2} + {y.im}^{2}}\]
| Alternative 27 |
|---|
| Error | 48.0 |
|---|
| Cost | 7552 |
|---|
\[\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 |
|---|
| Error | 47.9 |
|---|
| Cost | 7552 |
|---|
\[\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 |
|---|
| Error | 48.2 |
|---|
| Cost | 7488 |
|---|
\[\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 |
|---|
| Error | 47.1 |
|---|
| Cost | 7360 |
|---|
\[\frac{\frac{y.re \cdot x.im}{y.im} - x.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\]
| Alternative 31 |
|---|
| Error | 46.9 |
|---|
| Cost | 7360 |
|---|
\[\frac{\frac{x.re \cdot y.im}{y.re} - x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\]
| Alternative 32 |
|---|
| Error | 46.9 |
|---|
| Cost | 7360 |
|---|
\[\frac{x.re - \frac{y.re \cdot x.im}{y.im}}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\]
| Alternative 33 |
|---|
| Error | 34.8 |
|---|
| Cost | 7040 |
|---|
\[\frac{y.re \cdot x.im}{{y.im}^{2}} - \frac{x.re}{y.im}\]
| Alternative 34 |
|---|
| Error | 47.5 |
|---|
| Cost | 6976 |
|---|
\[\frac{x.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\]
| Alternative 35 |
|---|
| Error | 26.6 |
|---|
| Cost | 960 |
|---|
\[\frac{y.re \cdot x.im - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\]
| Alternative 36 |
|---|
| Error | 40.0 |
|---|
| Cost | 768 |
|---|
\[\frac{-x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\]
| Alternative 37 |
|---|
| Error | 39.3 |
|---|
| Cost | 704 |
|---|
\[\frac{y.re \cdot x.im}{y.re \cdot y.re + y.im \cdot y.im}\]
| Alternative 38 |
|---|
| Error | 37.5 |
|---|
| Cost | 256 |
|---|
\[\frac{-x.re}{y.im}\]
| Alternative 39 |
|---|
| Error | 37.3 |
|---|
| Cost | 192 |
|---|
\[\frac{x.im}{y.re}\]
| Alternative 40 |
|---|
| Error | 61.6 |
|---|
| Cost | 64 |
|---|
\[1\]
| Alternative 41 |
|---|
| Error | 52.3 |
|---|
| Cost | 64 |
|---|
\[0\]
| Alternative 42 |
|---|
| Error | 61.6 |
|---|
| Cost | 64 |
|---|
\[-1\]
Error

Derivation
- Split input into 4 regimes
if y.im < -2.6235941426032431e102
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}\]
Taylor expanded around 0 17.6
\[\leadsto \color{blue}{-1 \cdot \frac{x.re}{y.im}}\]
Simplified17.6
\[\leadsto \color{blue}{\frac{-x.re}{y.im}}\]
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
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}\]
- Using strategy
rm 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}}}\]
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}}}\]
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}}\]
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
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}\]
Taylor expanded around inf 15.4
\[\leadsto \color{blue}{\frac{x.im}{y.re}}\]
Simplified15.4
\[\leadsto \color{blue}{\frac{x.im}{y.re}}\]
if 5.61801696365813873e45 < y.im
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}\]
Taylor expanded around 0 16.8
\[\leadsto \color{blue}{\frac{y.re \cdot x.im}{{y.im}^{2}} - \frac{x.re}{y.im}}\]
Simplified16.8
\[\leadsto \color{blue}{\frac{x.im \cdot y.re}{{y.im}^{2}} - \frac{x.re}{y.im}}\]
Simplified16.8
\[\leadsto \color{blue}{\frac{y.re \cdot x.im}{{y.im}^{2}} - \frac{x.re}{y.im}}\]
- Recombined 4 regimes into one program.
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))))