Average Error: 0.0 → 0.7
Time: 5.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(\frac{{x}^{2} + \left(\frac{1}{12} \cdot {x}^{4} + 2\right)}{2} \cdot \cos y + \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(\frac{{x}^{2} + \left(\frac{1}{12} \cdot {x}^{4} + 2\right)}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
double f(double x, double y) {
        double r29658 = x;
        double r29659 = exp(r29658);
        double r29660 = -r29658;
        double r29661 = exp(r29660);
        double r29662 = r29659 + r29661;
        double r29663 = 2.0;
        double r29664 = r29662 / r29663;
        double r29665 = y;
        double r29666 = cos(r29665);
        double r29667 = r29664 * r29666;
        double r29668 = r29659 - r29661;
        double r29669 = r29668 / r29663;
        double r29670 = sin(r29665);
        double r29671 = r29669 * r29670;
        double r29672 = /* ERROR: no complex support in C */;
        double r29673 = /* ERROR: no complex support in C */;
        return r29673;
}

double f(double x, double y) {
        double r29674 = x;
        double r29675 = 2.0;
        double r29676 = pow(r29674, r29675);
        double r29677 = 0.08333333333333333;
        double r29678 = 4.0;
        double r29679 = pow(r29674, r29678);
        double r29680 = r29677 * r29679;
        double r29681 = r29680 + r29675;
        double r29682 = r29676 + r29681;
        double r29683 = 2.0;
        double r29684 = r29682 / r29683;
        double r29685 = y;
        double r29686 = cos(r29685);
        double r29687 = r29684 * r29686;
        double r29688 = exp(r29674);
        double r29689 = -r29674;
        double r29690 = exp(r29689);
        double r29691 = r29688 - r29690;
        double r29692 = r29691 / r29683;
        double r29693 = sin(r29685);
        double r29694 = r29692 * r29693;
        double r29695 = /* ERROR: no complex support in C */;
        double r29696 = /* ERROR: no complex support in C */;
        return r29696;
}

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. Taylor expanded around 0 0.7

    \[\leadsto \Re(\left(\frac{\color{blue}{{x}^{2} + \left(\frac{1}{12} \cdot {x}^{4} + 2\right)}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
  3. Final simplification0.7

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

Reproduce

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