Average Error: 1.1 → 1.1
Time: 9.0s
Precision: 64
\[\frac{x.im \cdot y.re - x.re \cdot y.im}{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}\]
double f(double x_re, double x_im, double y_re, double y_im) {
        double r780244 = x_im;
        double r780245 = y_re;
        double r780246 = r780244 * r780245;
        double r780247 = x_re;
        double r780248 = y_im;
        double r780249 = r780247 * r780248;
        double r780250 = r780246 - r780249;
        double r780251 = r780245 * r780245;
        double r780252 = r780248 * r780248;
        double r780253 = r780251 + r780252;
        double r780254 = r780250 / r780253;
        return r780254;
}

double f(double x_re, double x_im, double y_re, double y_im) {
        double r780255 = x_im;
        double r780256 = y_re;
        double r780257 = r780255 * r780256;
        double r780258 = x_re;
        double r780259 = y_im;
        double r780260 = r780258 * r780259;
        double r780261 = r780257 - r780260;
        double r780262 = r780256 * r780256;
        double r780263 = r780259 * r780259;
        double r780264 = r780262 + r780263;
        double r780265 = r780261 / r780264;
        return r780265;
}

\frac{x.im \cdot y.re - x.re \cdot y.im}{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}

Error

Bits error versus x.re

Bits error versus x.im

Bits error versus y.re

Bits error versus y.im

Derivation

  1. Initial program 1.1

    \[\frac{\left(\left(x.im \cdot y.re\right) - \left(x.re \cdot y.im\right)\right)}{\left(\frac{\left(y.re \cdot y.re\right)}{\left(y.im \cdot y.im\right)}\right)}\]
  2. Final simplification1.1

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

Reproduce

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