Average Error: 43.5 → 0.6
Time: 22.1s
Precision: 64
\[\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
\[\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{\mathsf{fma}\left(\frac{1}{3}, {x}^{3}, \mathsf{fma}\left(\frac{1}{60}, {x}^{5}, 2 \cdot x\right)\right)}{2} \cdot \sin y i\right))\]
\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{\mathsf{fma}\left(\frac{1}{3}, {x}^{3}, \mathsf{fma}\left(\frac{1}{60}, {x}^{5}, 2 \cdot x\right)\right)}{2} \cdot \sin y i\right))
double f(double x, double y) {
        double r51789 = x;
        double r51790 = exp(r51789);
        double r51791 = -r51789;
        double r51792 = exp(r51791);
        double r51793 = r51790 + r51792;
        double r51794 = 2.0;
        double r51795 = r51793 / r51794;
        double r51796 = y;
        double r51797 = cos(r51796);
        double r51798 = r51795 * r51797;
        double r51799 = r51790 - r51792;
        double r51800 = r51799 / r51794;
        double r51801 = sin(r51796);
        double r51802 = r51800 * r51801;
        double r51803 = /* ERROR: no complex support in C */;
        double r51804 = /* ERROR: no complex support in C */;
        return r51804;
}

double f(double x, double y) {
        double r51805 = x;
        double r51806 = exp(r51805);
        double r51807 = -r51805;
        double r51808 = exp(r51807);
        double r51809 = r51806 + r51808;
        double r51810 = 2.0;
        double r51811 = r51809 / r51810;
        double r51812 = y;
        double r51813 = cos(r51812);
        double r51814 = r51811 * r51813;
        double r51815 = 0.3333333333333333;
        double r51816 = 3.0;
        double r51817 = pow(r51805, r51816);
        double r51818 = 0.016666666666666666;
        double r51819 = 5.0;
        double r51820 = pow(r51805, r51819);
        double r51821 = 2.0;
        double r51822 = r51821 * r51805;
        double r51823 = fma(r51818, r51820, r51822);
        double r51824 = fma(r51815, r51817, r51823);
        double r51825 = r51824 / r51810;
        double r51826 = sin(r51812);
        double r51827 = r51825 * r51826;
        double r51828 = /* ERROR: no complex support in C */;
        double r51829 = /* ERROR: no complex support in C */;
        return r51829;
}

Error

Bits error versus x

Bits error versus y

Derivation

  1. Initial program 43.5

    \[\Im(\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.6

    \[\leadsto \Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{\color{blue}{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}}{2} \cdot \sin y i\right))\]
  3. Simplified0.6

    \[\leadsto \Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{\color{blue}{\mathsf{fma}\left(\frac{1}{3}, {x}^{3}, \mathsf{fma}\left(\frac{1}{60}, {x}^{5}, 2 \cdot x\right)\right)}}{2} \cdot \sin y i\right))\]
  4. Final simplification0.6

    \[\leadsto \Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{\mathsf{fma}\left(\frac{1}{3}, {x}^{3}, \mathsf{fma}\left(\frac{1}{60}, {x}^{5}, 2 \cdot x\right)\right)}{2} \cdot \sin y i\right))\]

Reproduce

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