Average Error: 43.3 → 0.7
Time: 32.5s
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{\left(x \cdot x\right) \cdot \left(x \cdot \frac{1}{3}\right) + \left(2 \cdot x + \frac{1}{60} \cdot {x}^{5}\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{\left(x \cdot x\right) \cdot \left(x \cdot \frac{1}{3}\right) + \left(2 \cdot x + \frac{1}{60} \cdot {x}^{5}\right)}{2} \cdot \sin y i\right))
double f(double x, double y) {
        double r823198 = x;
        double r823199 = exp(r823198);
        double r823200 = -r823198;
        double r823201 = exp(r823200);
        double r823202 = r823199 + r823201;
        double r823203 = 2.0;
        double r823204 = r823202 / r823203;
        double r823205 = y;
        double r823206 = cos(r823205);
        double r823207 = r823204 * r823206;
        double r823208 = r823199 - r823201;
        double r823209 = r823208 / r823203;
        double r823210 = sin(r823205);
        double r823211 = r823209 * r823210;
        double r823212 = /* ERROR: no complex support in C */;
        double r823213 = /* ERROR: no complex support in C */;
        return r823213;
}

double f(double x, double y) {
        double r823214 = x;
        double r823215 = exp(r823214);
        double r823216 = -r823214;
        double r823217 = exp(r823216);
        double r823218 = r823215 + r823217;
        double r823219 = 2.0;
        double r823220 = r823218 / r823219;
        double r823221 = y;
        double r823222 = cos(r823221);
        double r823223 = r823220 * r823222;
        double r823224 = r823214 * r823214;
        double r823225 = 0.3333333333333333;
        double r823226 = r823214 * r823225;
        double r823227 = r823224 * r823226;
        double r823228 = r823219 * r823214;
        double r823229 = 0.016666666666666666;
        double r823230 = 5.0;
        double r823231 = pow(r823214, r823230);
        double r823232 = r823229 * r823231;
        double r823233 = r823228 + r823232;
        double r823234 = r823227 + r823233;
        double r823235 = r823234 / r823219;
        double r823236 = sin(r823221);
        double r823237 = r823235 * r823236;
        double r823238 = /* ERROR: no complex support in C */;
        double r823239 = /* ERROR: no complex support in C */;
        return r823239;
}

Error

Bits error versus x

Bits error versus y

Derivation

  1. Initial program 43.3

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

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

Reproduce

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