Average Error: 25.7 → 25.7
Time: 4.9s
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 r67252 = x_im;
        double r67253 = y_re;
        double r67254 = r67252 * r67253;
        double r67255 = x_re;
        double r67256 = y_im;
        double r67257 = r67255 * r67256;
        double r67258 = r67254 - r67257;
        double r67259 = r67253 * r67253;
        double r67260 = r67256 * r67256;
        double r67261 = r67259 + r67260;
        double r67262 = r67258 / r67261;
        return r67262;
}

double f(double x_re, double x_im, double y_re, double y_im) {
        double r67263 = x_im;
        double r67264 = y_re;
        double r67265 = r67263 * r67264;
        double r67266 = x_re;
        double r67267 = y_im;
        double r67268 = r67266 * r67267;
        double r67269 = r67265 - r67268;
        double r67270 = r67264 * r67264;
        double r67271 = r67267 * r67267;
        double r67272 = r67270 + r67271;
        double r67273 = sqrt(r67272);
        double r67274 = r67269 / r67273;
        double r67275 = r67274 / r67273;
        return r67275;
}

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 25.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-sqrt25.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*25.7

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

    \[\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 2020047 
(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))))