Average Error: 26.1 → 26.0
Time: 16.5s
Precision: 64
\[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\]
\[\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}}\]
\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}
\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}}
double f(double x_re, double x_im, double y_re, double y_im) {
        double r2925090 = x_im;
        double r2925091 = y_re;
        double r2925092 = r2925090 * r2925091;
        double r2925093 = x_re;
        double r2925094 = y_im;
        double r2925095 = r2925093 * r2925094;
        double r2925096 = r2925092 - r2925095;
        double r2925097 = r2925091 * r2925091;
        double r2925098 = r2925094 * r2925094;
        double r2925099 = r2925097 + r2925098;
        double r2925100 = r2925096 / r2925099;
        return r2925100;
}

double f(double x_re, double x_im, double y_re, double y_im) {
        double r2925101 = x_im;
        double r2925102 = y_re;
        double r2925103 = r2925101 * r2925102;
        double r2925104 = x_re;
        double r2925105 = y_im;
        double r2925106 = r2925104 * r2925105;
        double r2925107 = r2925103 - r2925106;
        double r2925108 = r2925102 * r2925102;
        double r2925109 = r2925105 * r2925105;
        double r2925110 = r2925108 + r2925109;
        double r2925111 = sqrt(r2925110);
        double r2925112 = r2925107 / r2925111;
        double r2925113 = r2925112 / r2925111;
        return r2925113;
}

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

Derivation

  1. Initial program 26.1

    \[\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-sqrt26.1

    \[\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*26.0

    \[\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. Final simplification26.0

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

Reproduce

herbie shell --seed 2019163 
(FPCore (x.re x.im y.re y.im)
  :name "_divideComplex, imaginary part"
  (/ (- (* x.im y.re) (* x.re y.im)) (+ (* y.re y.re) (* y.im y.im))))