Average Error: 0.0 → 0.0
Time: 25.5s
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(\cos y \cdot \sqrt{\frac{e^{x} + e^{-x}}{2}}\right) + \sin y \cdot \frac{e^{x} - e^{-x}}{2} 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(\cos y \cdot \sqrt{\frac{e^{x} + e^{-x}}{2}}\right) + \sin y \cdot \frac{e^{x} - e^{-x}}{2} i\right))
double f(double x, double y) {
        double r1399095 = x;
        double r1399096 = exp(r1399095);
        double r1399097 = -r1399095;
        double r1399098 = exp(r1399097);
        double r1399099 = r1399096 + r1399098;
        double r1399100 = 2.0;
        double r1399101 = r1399099 / r1399100;
        double r1399102 = y;
        double r1399103 = cos(r1399102);
        double r1399104 = r1399101 * r1399103;
        double r1399105 = r1399096 - r1399098;
        double r1399106 = r1399105 / r1399100;
        double r1399107 = sin(r1399102);
        double r1399108 = r1399106 * r1399107;
        double r1399109 = /* ERROR: no complex support in C */;
        double r1399110 = /* ERROR: no complex support in C */;
        return r1399110;
}

double f(double x, double y) {
        double r1399111 = x;
        double r1399112 = exp(r1399111);
        double r1399113 = -r1399111;
        double r1399114 = exp(r1399113);
        double r1399115 = r1399112 + r1399114;
        double r1399116 = 2.0;
        double r1399117 = r1399115 / r1399116;
        double r1399118 = sqrt(r1399117);
        double r1399119 = y;
        double r1399120 = cos(r1399119);
        double r1399121 = r1399120 * r1399118;
        double r1399122 = r1399118 * r1399121;
        double r1399123 = sin(r1399119);
        double r1399124 = r1399112 - r1399114;
        double r1399125 = r1399124 / r1399116;
        double r1399126 = r1399123 * r1399125;
        double r1399127 = /* ERROR: no complex support in C */;
        double r1399128 = /* ERROR: no complex support in C */;
        return r1399128;
}

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(\cos y \cdot \sqrt{\frac{e^{x} + e^{-x}}{2}}\right) + \sin y \cdot \frac{e^{x} - e^{-x}}{2} i\right))\]

Reproduce

herbie shell --seed 2019129 
(FPCore (x y)
  :name "Euler formula real part (p55)"
  (re (complex (* (/ (+ (exp x) (exp (- x))) 2) (cos y)) (* (/ (- (exp x) (exp (- x))) 2) (sin y)))))