Average Error: 43.4 → 0.8
Time: 1.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 \cdot \left(\left(x \cdot \frac{1}{3}\right) \cdot x + 2\right) + {x}^{5} \cdot \frac{1}{60}}{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(\left(x \cdot \frac{1}{3}\right) \cdot x + 2\right) + {x}^{5} \cdot \frac{1}{60}}{2} \cdot \sin y i\right))
double f(double x, double y) {
        double r1910559 = x;
        double r1910560 = exp(r1910559);
        double r1910561 = -r1910559;
        double r1910562 = exp(r1910561);
        double r1910563 = r1910560 + r1910562;
        double r1910564 = 2.0;
        double r1910565 = r1910563 / r1910564;
        double r1910566 = y;
        double r1910567 = cos(r1910566);
        double r1910568 = r1910565 * r1910567;
        double r1910569 = r1910560 - r1910562;
        double r1910570 = r1910569 / r1910564;
        double r1910571 = sin(r1910566);
        double r1910572 = r1910570 * r1910571;
        double r1910573 = /* ERROR: no complex support in C */;
        double r1910574 = /* ERROR: no complex support in C */;
        return r1910574;
}

double f(double x, double y) {
        double r1910575 = x;
        double r1910576 = exp(r1910575);
        double r1910577 = -r1910575;
        double r1910578 = exp(r1910577);
        double r1910579 = r1910576 + r1910578;
        double r1910580 = 2.0;
        double r1910581 = r1910579 / r1910580;
        double r1910582 = y;
        double r1910583 = cos(r1910582);
        double r1910584 = r1910581 * r1910583;
        double r1910585 = 0.3333333333333333;
        double r1910586 = r1910575 * r1910585;
        double r1910587 = r1910586 * r1910575;
        double r1910588 = r1910587 + r1910580;
        double r1910589 = r1910575 * r1910588;
        double r1910590 = 5.0;
        double r1910591 = pow(r1910575, r1910590);
        double r1910592 = 0.016666666666666666;
        double r1910593 = r1910591 * r1910592;
        double r1910594 = r1910589 + r1910593;
        double r1910595 = r1910594 / r1910580;
        double r1910596 = sin(r1910582);
        double r1910597 = r1910595 * r1910596;
        double r1910598 = /* ERROR: no complex support in C */;
        double r1910599 = /* ERROR: no complex support in C */;
        return r1910599;
}

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

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

Reproduce

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