Average Error: 43.8 → 0.8
Time: 43.3s
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(\frac{1}{60}, {x}^{5}, x \cdot \left(\left(x \cdot x\right) \cdot \frac{1}{3}\right) + 2 \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{\mathsf{fma}\left(\frac{1}{60}, {x}^{5}, x \cdot \left(\left(x \cdot x\right) \cdot \frac{1}{3}\right) + 2 \cdot x\right)}{2} \cdot \sin y i\right))
double f(double x, double y) {
        double r1478067 = x;
        double r1478068 = exp(r1478067);
        double r1478069 = -r1478067;
        double r1478070 = exp(r1478069);
        double r1478071 = r1478068 + r1478070;
        double r1478072 = 2.0;
        double r1478073 = r1478071 / r1478072;
        double r1478074 = y;
        double r1478075 = cos(r1478074);
        double r1478076 = r1478073 * r1478075;
        double r1478077 = r1478068 - r1478070;
        double r1478078 = r1478077 / r1478072;
        double r1478079 = sin(r1478074);
        double r1478080 = r1478078 * r1478079;
        double r1478081 = /* ERROR: no complex support in C */;
        double r1478082 = /* ERROR: no complex support in C */;
        return r1478082;
}

double f(double x, double y) {
        double r1478083 = x;
        double r1478084 = exp(r1478083);
        double r1478085 = -r1478083;
        double r1478086 = exp(r1478085);
        double r1478087 = r1478084 + r1478086;
        double r1478088 = 2.0;
        double r1478089 = r1478087 / r1478088;
        double r1478090 = y;
        double r1478091 = cos(r1478090);
        double r1478092 = r1478089 * r1478091;
        double r1478093 = 0.016666666666666666;
        double r1478094 = 5.0;
        double r1478095 = pow(r1478083, r1478094);
        double r1478096 = r1478083 * r1478083;
        double r1478097 = 0.3333333333333333;
        double r1478098 = r1478096 * r1478097;
        double r1478099 = r1478083 * r1478098;
        double r1478100 = r1478088 * r1478083;
        double r1478101 = r1478099 + r1478100;
        double r1478102 = fma(r1478093, r1478095, r1478101);
        double r1478103 = r1478102 / r1478088;
        double r1478104 = sin(r1478090);
        double r1478105 = r1478103 * r1478104;
        double r1478106 = /* ERROR: no complex support in C */;
        double r1478107 = /* ERROR: no complex support in C */;
        return r1478107;
}

Error

Bits error versus x

Bits error versus y

Derivation

  1. Initial program 43.8

    \[\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}{\mathsf{fma}\left(\frac{1}{60}, {x}^{5}, x \cdot \left(2 + \frac{1}{3} \cdot \left(x \cdot x\right)\right)\right)}}{2} \cdot \sin y i\right))\]
  4. Using strategy rm
  5. Applied distribute-rgt-in0.8

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

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

Reproduce

herbie shell --seed 2019149 +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)))))