Average Error: 43.3 → 0.7
Time: 32.0s
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 r52941 = x;
        double r52942 = exp(r52941);
        double r52943 = -r52941;
        double r52944 = exp(r52943);
        double r52945 = r52942 + r52944;
        double r52946 = 2.0;
        double r52947 = r52945 / r52946;
        double r52948 = y;
        double r52949 = cos(r52948);
        double r52950 = r52947 * r52949;
        double r52951 = r52942 - r52944;
        double r52952 = r52951 / r52946;
        double r52953 = sin(r52948);
        double r52954 = r52952 * r52953;
        double r52955 = /* ERROR: no complex support in C */;
        double r52956 = /* ERROR: no complex support in C */;
        return r52956;
}

double f(double x, double y) {
        double r52957 = 0.3333333333333333;
        double r52958 = x;
        double r52959 = 3.0;
        double r52960 = pow(r52958, r52959);
        double r52961 = r52957 * r52960;
        double r52962 = 0.016666666666666666;
        double r52963 = 5.0;
        double r52964 = pow(r52958, r52963);
        double r52965 = r52962 * r52964;
        double r52966 = 2.0;
        double r52967 = r52966 * r52958;
        double r52968 = r52965 + r52967;
        double r52969 = r52961 + r52968;
        double r52970 = 2.0;
        double r52971 = r52969 / r52970;
        double r52972 = y;
        double r52973 = sin(r52972);
        double r52974 = r52971 * r52973;
        return r52974;
}

Error

Bits error versus x

Bits error versus y

Derivation

  1. Initial program 43.3

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

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

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

    \[\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 2019326 
(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)))))