Average Error: 26.2 → 26.2
Time: 29.4s
Precision: 64
\[\frac{x.re \cdot y.re + x.im \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\]
\[\frac{x.im \cdot y.im + x.re \cdot y.re}{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{x.im \cdot y.im + x.re \cdot y.re}{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 r2181546 = x_re;
        double r2181547 = y_re;
        double r2181548 = r2181546 * r2181547;
        double r2181549 = x_im;
        double r2181550 = y_im;
        double r2181551 = r2181549 * r2181550;
        double r2181552 = r2181548 + r2181551;
        double r2181553 = r2181547 * r2181547;
        double r2181554 = r2181550 * r2181550;
        double r2181555 = r2181553 + r2181554;
        double r2181556 = r2181552 / r2181555;
        return r2181556;
}

double f(double x_re, double x_im, double y_re, double y_im) {
        double r2181557 = x_im;
        double r2181558 = y_im;
        double r2181559 = r2181557 * r2181558;
        double r2181560 = x_re;
        double r2181561 = y_re;
        double r2181562 = r2181560 * r2181561;
        double r2181563 = r2181559 + r2181562;
        double r2181564 = r2181561 * r2181561;
        double r2181565 = r2181558 * r2181558;
        double r2181566 = r2181564 + r2181565;
        double r2181567 = r2181563 / r2181566;
        return r2181567;
}

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 26.2

    \[\frac{x.re \cdot y.re + x.im \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\]
  2. Final simplification26.2

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

Reproduce

herbie shell --seed 2019146 
(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))))