Average Error: 0.0 → 0.0
Time: 21.6s
Precision: 64
\[\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
\[\Re(\left(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \left(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \cos y\right) + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
\Re(\left(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \left(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \cos y\right) + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
double f(double x, double y) {
        double r34457 = x;
        double r34458 = exp(r34457);
        double r34459 = -r34457;
        double r34460 = exp(r34459);
        double r34461 = r34458 + r34460;
        double r34462 = 2.0;
        double r34463 = r34461 / r34462;
        double r34464 = y;
        double r34465 = cos(r34464);
        double r34466 = r34463 * r34465;
        double r34467 = r34458 - r34460;
        double r34468 = r34467 / r34462;
        double r34469 = sin(r34464);
        double r34470 = r34468 * r34469;
        double r34471 = /* ERROR: no complex support in C */;
        double r34472 = /* ERROR: no complex support in C */;
        return r34472;
}

double f(double x, double y) {
        double r34473 = x;
        double r34474 = exp(r34473);
        double r34475 = -r34473;
        double r34476 = exp(r34475);
        double r34477 = r34474 + r34476;
        double r34478 = 2.0;
        double r34479 = r34477 / r34478;
        double r34480 = sqrt(r34479);
        double r34481 = y;
        double r34482 = cos(r34481);
        double r34483 = r34480 * r34482;
        double r34484 = r34480 * r34483;
        double r34485 = r34474 - r34476;
        double r34486 = r34485 / r34478;
        double r34487 = sin(r34481);
        double r34488 = r34486 * r34487;
        double r34489 = /* ERROR: no complex support in C */;
        double r34490 = /* ERROR: no complex support in C */;
        return r34490;
}

Error

Bits error versus x

Bits error versus y

Derivation

  1. Initial program 0.0

    \[\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
  2. Using strategy rm
  3. Applied add-sqr-sqrt0.0

    \[\leadsto \Re(\left(\color{blue}{\left(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \sqrt{\frac{e^{x} + e^{-x}}{2}}\right)} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
  4. Applied associate-*l*0.0

    \[\leadsto \Re(\left(\color{blue}{\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \left(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \cos y\right)} + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
  5. Final simplification0.0

    \[\leadsto \Re(\left(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \left(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \cos y\right) + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]

Reproduce

herbie shell --seed 2020047 +o rules:numerics
(FPCore (x y)
  :name "Euler formula real part (p55)"
  :precision binary64
  (re (complex (* (/ (+ (exp x) (exp (- x))) 2) (cos y)) (* (/ (- (exp x) (exp (- x))) 2) (sin y)))))