Average Error: 43.4 → 0.7
Time: 56.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{\mathsf{fma}\left(2, x, \mathsf{fma}\left(\frac{1}{60}, {x}^{5}, \left(\left(x \cdot x\right) \cdot \frac{1}{3}\right) \cdot x\right)\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{\mathsf{fma}\left(2, x, \mathsf{fma}\left(\frac{1}{60}, {x}^{5}, \left(\left(x \cdot x\right) \cdot \frac{1}{3}\right) \cdot x\right)\right)}{2} \cdot \sin y i\right))
double f(double x, double y) {
        double r1294554 = x;
        double r1294555 = exp(r1294554);
        double r1294556 = -r1294554;
        double r1294557 = exp(r1294556);
        double r1294558 = r1294555 + r1294557;
        double r1294559 = 2.0;
        double r1294560 = r1294558 / r1294559;
        double r1294561 = y;
        double r1294562 = cos(r1294561);
        double r1294563 = r1294560 * r1294562;
        double r1294564 = r1294555 - r1294557;
        double r1294565 = r1294564 / r1294559;
        double r1294566 = sin(r1294561);
        double r1294567 = r1294565 * r1294566;
        double r1294568 = /* ERROR: no complex support in C */;
        double r1294569 = /* ERROR: no complex support in C */;
        return r1294569;
}

double f(double x, double y) {
        double r1294570 = x;
        double r1294571 = exp(r1294570);
        double r1294572 = -r1294570;
        double r1294573 = exp(r1294572);
        double r1294574 = r1294571 + r1294573;
        double r1294575 = 2.0;
        double r1294576 = r1294574 / r1294575;
        double r1294577 = y;
        double r1294578 = cos(r1294577);
        double r1294579 = r1294576 * r1294578;
        double r1294580 = 0.016666666666666666;
        double r1294581 = 5.0;
        double r1294582 = pow(r1294570, r1294581);
        double r1294583 = r1294570 * r1294570;
        double r1294584 = 0.3333333333333333;
        double r1294585 = r1294583 * r1294584;
        double r1294586 = r1294585 * r1294570;
        double r1294587 = fma(r1294580, r1294582, r1294586);
        double r1294588 = fma(r1294575, r1294570, r1294587);
        double r1294589 = r1294588 / r1294575;
        double r1294590 = sin(r1294577);
        double r1294591 = r1294589 * r1294590;
        double r1294592 = /* ERROR: no complex support in C */;
        double r1294593 = /* ERROR: no complex support in C */;
        return r1294593;
}

Error

Bits error versus x

Bits error versus y

Derivation

  1. Initial program 43.4

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

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

Reproduce

herbie shell --seed 2019135 +o rules:numerics
(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)))))