Average Error: 43.8 → 0.9
Time: 15.5s
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{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\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{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}{2} \cdot \sin y i\right))
double f(double x, double y) {
        double r48805 = x;
        double r48806 = exp(r48805);
        double r48807 = -r48805;
        double r48808 = exp(r48807);
        double r48809 = r48806 + r48808;
        double r48810 = 2.0;
        double r48811 = r48809 / r48810;
        double r48812 = y;
        double r48813 = cos(r48812);
        double r48814 = r48811 * r48813;
        double r48815 = r48806 - r48808;
        double r48816 = r48815 / r48810;
        double r48817 = sin(r48812);
        double r48818 = r48816 * r48817;
        double r48819 = /* ERROR: no complex support in C */;
        double r48820 = /* ERROR: no complex support in C */;
        return r48820;
}

double f(double x, double y) {
        double r48821 = x;
        double r48822 = exp(r48821);
        double r48823 = -r48821;
        double r48824 = exp(r48823);
        double r48825 = r48822 + r48824;
        double r48826 = 2.0;
        double r48827 = r48825 / r48826;
        double r48828 = y;
        double r48829 = cos(r48828);
        double r48830 = r48827 * r48829;
        double r48831 = 0.3333333333333333;
        double r48832 = 3.0;
        double r48833 = pow(r48821, r48832);
        double r48834 = r48831 * r48833;
        double r48835 = 0.016666666666666666;
        double r48836 = 5.0;
        double r48837 = pow(r48821, r48836);
        double r48838 = r48835 * r48837;
        double r48839 = 2.0;
        double r48840 = r48839 * r48821;
        double r48841 = r48838 + r48840;
        double r48842 = r48834 + r48841;
        double r48843 = r48842 / r48826;
        double r48844 = sin(r48828);
        double r48845 = r48843 * r48844;
        double r48846 = /* ERROR: no complex support in C */;
        double r48847 = /* ERROR: no complex support in C */;
        return r48847;
}

Error

Bits error versus x

Bits error versus y

Derivation

  1. Initial program 43.8

    \[\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.9

    \[\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. Final simplification0.9

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

Reproduce

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