Average Error: 0.0 → 0.0
Time: 19.8s
Precision: 64
\[\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
\[\frac{\cos y}{2} \cdot e^{x} + \frac{\frac{\frac{\cos y}{2}}{\sqrt{e^{x}}}}{\sqrt{e^{x}}}\]
\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
\frac{\cos y}{2} \cdot e^{x} + \frac{\frac{\frac{\cos y}{2}}{\sqrt{e^{x}}}}{\sqrt{e^{x}}}
double f(double x, double y) {
        double r2381831 = x;
        double r2381832 = exp(r2381831);
        double r2381833 = -r2381831;
        double r2381834 = exp(r2381833);
        double r2381835 = r2381832 + r2381834;
        double r2381836 = 2.0;
        double r2381837 = r2381835 / r2381836;
        double r2381838 = y;
        double r2381839 = cos(r2381838);
        double r2381840 = r2381837 * r2381839;
        double r2381841 = r2381832 - r2381834;
        double r2381842 = r2381841 / r2381836;
        double r2381843 = sin(r2381838);
        double r2381844 = r2381842 * r2381843;
        double r2381845 = /* ERROR: no complex support in C */;
        double r2381846 = /* ERROR: no complex support in C */;
        return r2381846;
}

double f(double x, double y) {
        double r2381847 = y;
        double r2381848 = cos(r2381847);
        double r2381849 = 2.0;
        double r2381850 = r2381848 / r2381849;
        double r2381851 = x;
        double r2381852 = exp(r2381851);
        double r2381853 = r2381850 * r2381852;
        double r2381854 = sqrt(r2381852);
        double r2381855 = r2381850 / r2381854;
        double r2381856 = r2381855 / r2381854;
        double r2381857 = r2381853 + r2381856;
        return r2381857;
}

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. Simplified0.0

    \[\leadsto \color{blue}{\frac{\cos y}{2} \cdot e^{x} + \frac{\frac{\cos y}{2}}{e^{x}}}\]
  3. Using strategy rm
  4. Applied *-commutative0.0

    \[\leadsto \color{blue}{e^{x} \cdot \frac{\cos y}{2}} + \frac{\frac{\cos y}{2}}{e^{x}}\]
  5. Using strategy rm
  6. Applied add-sqr-sqrt0.0

    \[\leadsto e^{x} \cdot \frac{\cos y}{2} + \frac{\frac{\cos y}{2}}{\color{blue}{\sqrt{e^{x}} \cdot \sqrt{e^{x}}}}\]
  7. Applied associate-/r*0.0

    \[\leadsto e^{x} \cdot \frac{\cos y}{2} + \color{blue}{\frac{\frac{\frac{\cos y}{2}}{\sqrt{e^{x}}}}{\sqrt{e^{x}}}}\]
  8. Final simplification0.0

    \[\leadsto \frac{\cos y}{2} \cdot e^{x} + \frac{\frac{\frac{\cos y}{2}}{\sqrt{e^{x}}}}{\sqrt{e^{x}}}\]

Reproduce

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