Average Error: 42.9 → 0.8
Time: 5.1m
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}^{5} \cdot \frac{1}{60} + \left(2 + \left(x \cdot \frac{1}{3}\right) \cdot x\right) \cdot x}{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}^{5} \cdot \frac{1}{60} + \left(2 + \left(x \cdot \frac{1}{3}\right) \cdot x\right) \cdot x}{2} \cdot \sin y i\right))
double f(double x, double y) {
        double r33254616 = x;
        double r33254617 = exp(r33254616);
        double r33254618 = -r33254616;
        double r33254619 = exp(r33254618);
        double r33254620 = r33254617 + r33254619;
        double r33254621 = 2.0;
        double r33254622 = r33254620 / r33254621;
        double r33254623 = y;
        double r33254624 = cos(r33254623);
        double r33254625 = r33254622 * r33254624;
        double r33254626 = r33254617 - r33254619;
        double r33254627 = r33254626 / r33254621;
        double r33254628 = sin(r33254623);
        double r33254629 = r33254627 * r33254628;
        double r33254630 = /* ERROR: no complex support in C */;
        double r33254631 = /* ERROR: no complex support in C */;
        return r33254631;
}

double f(double x, double y) {
        double r33254632 = x;
        double r33254633 = exp(r33254632);
        double r33254634 = -r33254632;
        double r33254635 = exp(r33254634);
        double r33254636 = r33254633 + r33254635;
        double r33254637 = 2.0;
        double r33254638 = r33254636 / r33254637;
        double r33254639 = y;
        double r33254640 = cos(r33254639);
        double r33254641 = r33254638 * r33254640;
        double r33254642 = 5.0;
        double r33254643 = pow(r33254632, r33254642);
        double r33254644 = 0.016666666666666666;
        double r33254645 = r33254643 * r33254644;
        double r33254646 = 0.3333333333333333;
        double r33254647 = r33254632 * r33254646;
        double r33254648 = r33254647 * r33254632;
        double r33254649 = r33254637 + r33254648;
        double r33254650 = r33254649 * r33254632;
        double r33254651 = r33254645 + r33254650;
        double r33254652 = r33254651 / r33254637;
        double r33254653 = sin(r33254639);
        double r33254654 = r33254652 * r33254653;
        double r33254655 = /* ERROR: no complex support in C */;
        double r33254656 = /* ERROR: no complex support in C */;
        return r33254656;
}

Error

Bits error versus x

Bits error versus y

Derivation

  1. Initial program 42.9

    \[\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 \cdot \left(x \cdot \left(\frac{1}{3} \cdot x\right) + 2\right) + {x}^{5} \cdot \frac{1}{60}}}{2} \cdot \sin y i\right))\]
  4. Final simplification0.8

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

Reproduce

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