Average Error: 25.7 → 25.7
Time: 20.3s
Precision: 64
\[\frac{x.re \cdot y.re + x.im \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\]
\[\frac{1}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im \cdot y.im + x.re \cdot y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\]
\frac{x.re \cdot y.re + x.im \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}
\frac{1}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im \cdot y.im + x.re \cdot y.re}{\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 r1360795 = x_re;
        double r1360796 = y_re;
        double r1360797 = r1360795 * r1360796;
        double r1360798 = x_im;
        double r1360799 = y_im;
        double r1360800 = r1360798 * r1360799;
        double r1360801 = r1360797 + r1360800;
        double r1360802 = r1360796 * r1360796;
        double r1360803 = r1360799 * r1360799;
        double r1360804 = r1360802 + r1360803;
        double r1360805 = r1360801 / r1360804;
        return r1360805;
}

double f(double x_re, double x_im, double y_re, double y_im) {
        double r1360806 = 1.0;
        double r1360807 = y_re;
        double r1360808 = r1360807 * r1360807;
        double r1360809 = y_im;
        double r1360810 = r1360809 * r1360809;
        double r1360811 = r1360808 + r1360810;
        double r1360812 = sqrt(r1360811);
        double r1360813 = r1360806 / r1360812;
        double r1360814 = x_im;
        double r1360815 = r1360814 * r1360809;
        double r1360816 = x_re;
        double r1360817 = r1360816 * r1360807;
        double r1360818 = r1360815 + r1360817;
        double r1360819 = r1360818 / r1360812;
        double r1360820 = r1360813 * r1360819;
        return r1360820;
}

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.re \cdot y.re + x.im \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.re \cdot y.re + x.im \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.re \cdot y.re + x.im \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. Using strategy rm
  6. Applied *-un-lft-identity25.7

    \[\leadsto \frac{\frac{x.re \cdot y.re + x.im \cdot y.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}}{\color{blue}{1 \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\]
  7. Applied associate-/r*25.7

    \[\leadsto \color{blue}{\frac{\frac{\frac{x.re \cdot y.re + x.im \cdot y.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}}{1}}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\]
  8. Simplified25.7

    \[\leadsto \frac{\color{blue}{\frac{x.im \cdot y.im + x.re \cdot y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}}}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\]
  9. Using strategy rm
  10. Applied add-sqr-sqrt25.8

    \[\leadsto \frac{\frac{x.im \cdot y.im + x.re \cdot y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}}{\color{blue}{\sqrt{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \sqrt{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}}}\]
  11. Applied add-sqr-sqrt25.9

    \[\leadsto \frac{\frac{x.im \cdot y.im + x.re \cdot y.re}{\color{blue}{\sqrt{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \sqrt{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}}}}{\sqrt{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \sqrt{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\]
  12. Applied *-un-lft-identity25.9

    \[\leadsto \frac{\frac{\color{blue}{1 \cdot \left(x.im \cdot y.im + x.re \cdot y.re\right)}}{\sqrt{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \sqrt{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}}}{\sqrt{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \sqrt{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\]
  13. Applied times-frac26.0

    \[\leadsto \frac{\color{blue}{\frac{1}{\sqrt{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} \cdot \frac{x.im \cdot y.im + x.re \cdot y.re}{\sqrt{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}}}}{\sqrt{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \sqrt{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\]
  14. Applied times-frac26.0

    \[\leadsto \color{blue}{\frac{\frac{1}{\sqrt{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}}}{\sqrt{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} \cdot \frac{\frac{x.im \cdot y.im + x.re \cdot y.re}{\sqrt{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}}}{\sqrt{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}}}\]
  15. Simplified25.9

    \[\leadsto \color{blue}{\frac{1}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}} \cdot \frac{\frac{x.im \cdot y.im + x.re \cdot y.re}{\sqrt{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}}}{\sqrt{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\]
  16. Simplified25.7

    \[\leadsto \frac{1}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \color{blue}{\frac{y.re \cdot x.re + x.im \cdot y.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\]
  17. Final simplification25.7

    \[\leadsto \frac{1}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im \cdot y.im + x.re \cdot y.re}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\]

Reproduce

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