Average Error: 25.7 → 25.7
Time: 9.4s
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 r63227 = x_im;
        double r63228 = y_re;
        double r63229 = r63227 * r63228;
        double r63230 = x_re;
        double r63231 = y_im;
        double r63232 = r63230 * r63231;
        double r63233 = r63229 - r63232;
        double r63234 = r63228 * r63228;
        double r63235 = r63231 * r63231;
        double r63236 = r63234 + r63235;
        double r63237 = r63233 / r63236;
        return r63237;
}

double f(double x_re, double x_im, double y_re, double y_im) {
        double r63238 = x_im;
        double r63239 = y_re;
        double r63240 = r63238 * r63239;
        double r63241 = x_re;
        double r63242 = y_im;
        double r63243 = r63241 * r63242;
        double r63244 = r63240 - r63243;
        double r63245 = r63239 * r63239;
        double r63246 = r63242 * r63242;
        double r63247 = r63245 + r63246;
        double r63248 = sqrt(r63247);
        double r63249 = r63244 / r63248;
        double r63250 = r63249 / r63248;
        return r63250;
}

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))))