Average Error: 43.1 → 0.8
Time: 34.9s
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{x \cdot \left(\frac{1}{3} \cdot \left(x \cdot x\right)\right) + \left({x}^{5} \cdot \frac{1}{60} + 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{x \cdot \left(\frac{1}{3} \cdot \left(x \cdot x\right)\right) + \left({x}^{5} \cdot \frac{1}{60} + 2 \cdot x\right)}{2} \cdot \sin y i\right))
double f(double x, double y) {
        double r2115089 = x;
        double r2115090 = exp(r2115089);
        double r2115091 = -r2115089;
        double r2115092 = exp(r2115091);
        double r2115093 = r2115090 + r2115092;
        double r2115094 = 2.0;
        double r2115095 = r2115093 / r2115094;
        double r2115096 = y;
        double r2115097 = cos(r2115096);
        double r2115098 = r2115095 * r2115097;
        double r2115099 = r2115090 - r2115092;
        double r2115100 = r2115099 / r2115094;
        double r2115101 = sin(r2115096);
        double r2115102 = r2115100 * r2115101;
        double r2115103 = /* ERROR: no complex support in C */;
        double r2115104 = /* ERROR: no complex support in C */;
        return r2115104;
}

double f(double x, double y) {
        double r2115105 = x;
        double r2115106 = exp(r2115105);
        double r2115107 = -r2115105;
        double r2115108 = exp(r2115107);
        double r2115109 = r2115106 + r2115108;
        double r2115110 = 2.0;
        double r2115111 = r2115109 / r2115110;
        double r2115112 = y;
        double r2115113 = cos(r2115112);
        double r2115114 = r2115111 * r2115113;
        double r2115115 = 0.3333333333333333;
        double r2115116 = r2115105 * r2115105;
        double r2115117 = r2115115 * r2115116;
        double r2115118 = r2115105 * r2115117;
        double r2115119 = 5.0;
        double r2115120 = pow(r2115105, r2115119);
        double r2115121 = 0.016666666666666666;
        double r2115122 = r2115120 * r2115121;
        double r2115123 = r2115110 * r2115105;
        double r2115124 = r2115122 + r2115123;
        double r2115125 = r2115118 + r2115124;
        double r2115126 = r2115125 / r2115110;
        double r2115127 = sin(r2115112);
        double r2115128 = r2115126 * r2115127;
        double r2115129 = /* ERROR: no complex support in C */;
        double r2115130 = /* ERROR: no complex support in C */;
        return r2115130;
}

Error

Bits error versus x

Bits error versus y

Derivation

  1. Initial program 43.1

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

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

    \[\leadsto \Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{\color{blue}{{x}^{5} \cdot \frac{1}{60} + x \cdot \left(2 + \frac{1}{3} \cdot \left(x \cdot x\right)\right)}}{2} \cdot \sin y i\right))\]
  4. Using strategy rm
  5. Applied distribute-rgt-in0.8

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

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

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

Reproduce

herbie shell --seed 2019164 
(FPCore (x y)
  :name "Euler formula imaginary part (p55)"
  (im (complex (* (/ (+ (exp x) (exp (- x))) 2) (cos y)) (* (/ (- (exp x) (exp (- x))) 2) (sin y)))))