Average Error: 43.6 → 0.7
Time: 31.2s
Precision: 64
\[\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
\[\left(\frac{1}{60} \cdot {x}^{5} + \left({x}^{3} \cdot \frac{1}{3} + \left(x + x\right)\right)\right) \cdot \frac{\sin y}{2}\]
\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
\left(\frac{1}{60} \cdot {x}^{5} + \left({x}^{3} \cdot \frac{1}{3} + \left(x + x\right)\right)\right) \cdot \frac{\sin y}{2}
double f(double x, double y) {
        double r50564 = x;
        double r50565 = exp(r50564);
        double r50566 = -r50564;
        double r50567 = exp(r50566);
        double r50568 = r50565 + r50567;
        double r50569 = 2.0;
        double r50570 = r50568 / r50569;
        double r50571 = y;
        double r50572 = cos(r50571);
        double r50573 = r50570 * r50572;
        double r50574 = r50565 - r50567;
        double r50575 = r50574 / r50569;
        double r50576 = sin(r50571);
        double r50577 = r50575 * r50576;
        double r50578 = /* ERROR: no complex support in C */;
        double r50579 = /* ERROR: no complex support in C */;
        return r50579;
}

double f(double x, double y) {
        double r50580 = 0.016666666666666666;
        double r50581 = x;
        double r50582 = 5.0;
        double r50583 = pow(r50581, r50582);
        double r50584 = r50580 * r50583;
        double r50585 = 3.0;
        double r50586 = pow(r50581, r50585);
        double r50587 = 0.3333333333333333;
        double r50588 = r50586 * r50587;
        double r50589 = r50581 + r50581;
        double r50590 = r50588 + r50589;
        double r50591 = r50584 + r50590;
        double r50592 = y;
        double r50593 = sin(r50592);
        double r50594 = 2.0;
        double r50595 = r50593 / r50594;
        double r50596 = r50591 * r50595;
        return r50596;
}

Error

Bits error versus x

Bits error versus y

Derivation

  1. Initial program 43.6

    \[\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
  2. Simplified43.6

    \[\leadsto \color{blue}{\frac{\sin y}{2} \cdot \left(e^{x} - e^{-x}\right)}\]
  3. Taylor expanded around 0 0.7

    \[\leadsto \frac{\sin y}{2} \cdot \color{blue}{\left(2 \cdot x + \left(\frac{1}{3} \cdot {x}^{3} + \frac{1}{60} \cdot {x}^{5}\right)\right)}\]
  4. Simplified0.7

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

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

Reproduce

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