Average Error: 43.3 → 0.7
Time: 32.4s
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{\left(x + x\right) + \left({x}^{5} \cdot \frac{1}{60} + \left(\frac{1}{3} \cdot \left(x \cdot x\right)\right) \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{\left(x + x\right) + \left({x}^{5} \cdot \frac{1}{60} + \left(\frac{1}{3} \cdot \left(x \cdot x\right)\right) \cdot x\right)}{2} \cdot \sin y i\right))
double f(double x, double y) {
        double r1008421 = x;
        double r1008422 = exp(r1008421);
        double r1008423 = -r1008421;
        double r1008424 = exp(r1008423);
        double r1008425 = r1008422 + r1008424;
        double r1008426 = 2.0;
        double r1008427 = r1008425 / r1008426;
        double r1008428 = y;
        double r1008429 = cos(r1008428);
        double r1008430 = r1008427 * r1008429;
        double r1008431 = r1008422 - r1008424;
        double r1008432 = r1008431 / r1008426;
        double r1008433 = sin(r1008428);
        double r1008434 = r1008432 * r1008433;
        double r1008435 = /* ERROR: no complex support in C */;
        double r1008436 = /* ERROR: no complex support in C */;
        return r1008436;
}

double f(double x, double y) {
        double r1008437 = x;
        double r1008438 = exp(r1008437);
        double r1008439 = -r1008437;
        double r1008440 = exp(r1008439);
        double r1008441 = r1008438 + r1008440;
        double r1008442 = 2.0;
        double r1008443 = r1008441 / r1008442;
        double r1008444 = y;
        double r1008445 = cos(r1008444);
        double r1008446 = r1008443 * r1008445;
        double r1008447 = r1008437 + r1008437;
        double r1008448 = 5.0;
        double r1008449 = pow(r1008437, r1008448);
        double r1008450 = 0.016666666666666666;
        double r1008451 = r1008449 * r1008450;
        double r1008452 = 0.3333333333333333;
        double r1008453 = r1008437 * r1008437;
        double r1008454 = r1008452 * r1008453;
        double r1008455 = r1008454 * r1008437;
        double r1008456 = r1008451 + r1008455;
        double r1008457 = r1008447 + r1008456;
        double r1008458 = r1008457 / r1008442;
        double r1008459 = sin(r1008444);
        double r1008460 = r1008458 * r1008459;
        double r1008461 = /* ERROR: no complex support in C */;
        double r1008462 = /* ERROR: no complex support in C */;
        return r1008462;
}

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. Taylor expanded around 0 0.7

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

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

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

Reproduce

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