Average Error: 43.4 → 0.9
Time: 10.6s
Precision: 64
\[\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
\[\frac{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}{2} \cdot \sin y\]
\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
\frac{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}{2} \cdot \sin y
double f(double x, double y) {
        double r42809 = x;
        double r42810 = exp(r42809);
        double r42811 = -r42809;
        double r42812 = exp(r42811);
        double r42813 = r42810 + r42812;
        double r42814 = 2.0;
        double r42815 = r42813 / r42814;
        double r42816 = y;
        double r42817 = cos(r42816);
        double r42818 = r42815 * r42817;
        double r42819 = r42810 - r42812;
        double r42820 = r42819 / r42814;
        double r42821 = sin(r42816);
        double r42822 = r42820 * r42821;
        double r42823 = /* ERROR: no complex support in C */;
        double r42824 = /* ERROR: no complex support in C */;
        return r42824;
}

double f(double x, double y) {
        double r42825 = 0.3333333333333333;
        double r42826 = x;
        double r42827 = 3.0;
        double r42828 = pow(r42826, r42827);
        double r42829 = r42825 * r42828;
        double r42830 = 0.016666666666666666;
        double r42831 = 5.0;
        double r42832 = pow(r42826, r42831);
        double r42833 = r42830 * r42832;
        double r42834 = 2.0;
        double r42835 = r42834 * r42826;
        double r42836 = r42833 + r42835;
        double r42837 = r42829 + r42836;
        double r42838 = 2.0;
        double r42839 = r42837 / r42838;
        double r42840 = y;
        double r42841 = sin(r42840);
        double r42842 = r42839 * r42841;
        return r42842;
}

Error

Bits error versus x

Bits error versus y

Derivation

  1. Initial program 43.4

    \[\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
  2. Simplified43.4

    \[\leadsto \color{blue}{\frac{e^{x} - e^{-x}}{2} \cdot \sin y}\]
  3. Taylor expanded around 0 0.9

    \[\leadsto \frac{\color{blue}{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}}{2} \cdot \sin y\]
  4. Final simplification0.9

    \[\leadsto \frac{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}{2} \cdot \sin y\]

Reproduce

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