Average Error: 25.9 → 25.9
Time: 17.2s
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 r2701413 = x_im;
        double r2701414 = y_re;
        double r2701415 = r2701413 * r2701414;
        double r2701416 = x_re;
        double r2701417 = y_im;
        double r2701418 = r2701416 * r2701417;
        double r2701419 = r2701415 - r2701418;
        double r2701420 = r2701414 * r2701414;
        double r2701421 = r2701417 * r2701417;
        double r2701422 = r2701420 + r2701421;
        double r2701423 = r2701419 / r2701422;
        return r2701423;
}

double f(double x_re, double x_im, double y_re, double y_im) {
        double r2701424 = x_im;
        double r2701425 = y_re;
        double r2701426 = r2701424 * r2701425;
        double r2701427 = x_re;
        double r2701428 = y_im;
        double r2701429 = r2701427 * r2701428;
        double r2701430 = r2701426 - r2701429;
        double r2701431 = r2701425 * r2701425;
        double r2701432 = r2701428 * r2701428;
        double r2701433 = r2701431 + r2701432;
        double r2701434 = sqrt(r2701433);
        double r2701435 = r2701430 / r2701434;
        double r2701436 = r2701435 / r2701434;
        return r2701436;
}

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