Average Error: 25.9 → 25.9
Time: 17.1s
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 r2967573 = x_im;
        double r2967574 = y_re;
        double r2967575 = r2967573 * r2967574;
        double r2967576 = x_re;
        double r2967577 = y_im;
        double r2967578 = r2967576 * r2967577;
        double r2967579 = r2967575 - r2967578;
        double r2967580 = r2967574 * r2967574;
        double r2967581 = r2967577 * r2967577;
        double r2967582 = r2967580 + r2967581;
        double r2967583 = r2967579 / r2967582;
        return r2967583;
}

double f(double x_re, double x_im, double y_re, double y_im) {
        double r2967584 = x_im;
        double r2967585 = y_re;
        double r2967586 = r2967584 * r2967585;
        double r2967587 = x_re;
        double r2967588 = y_im;
        double r2967589 = r2967587 * r2967588;
        double r2967590 = r2967586 - r2967589;
        double r2967591 = r2967585 * r2967585;
        double r2967592 = r2967588 * r2967588;
        double r2967593 = r2967591 + r2967592;
        double r2967594 = sqrt(r2967593);
        double r2967595 = r2967590 / r2967594;
        double r2967596 = r2967595 / r2967594;
        return r2967596;
}

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.9

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

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

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

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