Average Error: 0.0 → 0.0
Time: 6.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 r42984 = x;
        double r42985 = exp(r42984);
        double r42986 = -r42984;
        double r42987 = exp(r42986);
        double r42988 = r42985 + r42987;
        double r42989 = 2.0;
        double r42990 = r42988 / r42989;
        double r42991 = y;
        double r42992 = cos(r42991);
        double r42993 = r42990 * r42992;
        double r42994 = r42985 - r42987;
        double r42995 = r42994 / r42989;
        double r42996 = sin(r42991);
        double r42997 = r42995 * r42996;
        double r42998 = /* ERROR: no complex support in C */;
        double r42999 = /* ERROR: no complex support in C */;
        return r42999;
}

double f(double x, double y) {
        double r43000 = x;
        double r43001 = exp(r43000);
        double r43002 = -r43000;
        double r43003 = exp(r43002);
        double r43004 = r43001 + r43003;
        double r43005 = 2.0;
        double r43006 = r43004 / r43005;
        double r43007 = sqrt(r43006);
        double r43008 = y;
        double r43009 = cos(r43008);
        double r43010 = r43007 * r43009;
        double r43011 = r43007 * r43010;
        double r43012 = r43001 - r43003;
        double r43013 = r43012 / r43005;
        double r43014 = sin(r43008);
        double r43015 = r43013 * r43014;
        double r43016 = /* ERROR: no complex support in C */;
        double r43017 = /* ERROR: no complex support in C */;
        return r43017;
}

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 2020081 
(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)))))