Average Error: 25.7 → 25.7
Time: 14.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{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}
\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 r2075449 = x_im;
        double r2075450 = y_re;
        double r2075451 = r2075449 * r2075450;
        double r2075452 = x_re;
        double r2075453 = y_im;
        double r2075454 = r2075452 * r2075453;
        double r2075455 = r2075451 - r2075454;
        double r2075456 = r2075450 * r2075450;
        double r2075457 = r2075453 * r2075453;
        double r2075458 = r2075456 + r2075457;
        double r2075459 = r2075455 / r2075458;
        return r2075459;
}

double f(double x_re, double x_im, double y_re, double y_im) {
        double r2075460 = x_im;
        double r2075461 = y_re;
        double r2075462 = r2075460 * r2075461;
        double r2075463 = x_re;
        double r2075464 = y_im;
        double r2075465 = r2075463 * r2075464;
        double r2075466 = r2075462 - r2075465;
        double r2075467 = r2075461 * r2075461;
        double r2075468 = r2075464 * r2075464;
        double r2075469 = r2075467 + r2075468;
        double r2075470 = r2075466 / r2075469;
        return r2075470;
}

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. Final simplification25.7

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