Average Error: 43.7 → 0.8
Time: 1.9m
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}^{5} \cdot \frac{1}{60} + \left(2 + \left(x \cdot \frac{1}{3}\right) \cdot x\right) \cdot x}{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}^{5} \cdot \frac{1}{60} + \left(2 + \left(x \cdot \frac{1}{3}\right) \cdot x\right) \cdot x}{2} \cdot \sin y i\right))
double f(double x, double y) {
        double r6147280 = x;
        double r6147281 = exp(r6147280);
        double r6147282 = -r6147280;
        double r6147283 = exp(r6147282);
        double r6147284 = r6147281 + r6147283;
        double r6147285 = 2.0;
        double r6147286 = r6147284 / r6147285;
        double r6147287 = y;
        double r6147288 = cos(r6147287);
        double r6147289 = r6147286 * r6147288;
        double r6147290 = r6147281 - r6147283;
        double r6147291 = r6147290 / r6147285;
        double r6147292 = sin(r6147287);
        double r6147293 = r6147291 * r6147292;
        double r6147294 = /* ERROR: no complex support in C */;
        double r6147295 = /* ERROR: no complex support in C */;
        return r6147295;
}

double f(double x, double y) {
        double r6147296 = x;
        double r6147297 = exp(r6147296);
        double r6147298 = -r6147296;
        double r6147299 = exp(r6147298);
        double r6147300 = r6147297 + r6147299;
        double r6147301 = 2.0;
        double r6147302 = r6147300 / r6147301;
        double r6147303 = y;
        double r6147304 = cos(r6147303);
        double r6147305 = r6147302 * r6147304;
        double r6147306 = 5.0;
        double r6147307 = pow(r6147296, r6147306);
        double r6147308 = 0.016666666666666666;
        double r6147309 = r6147307 * r6147308;
        double r6147310 = 0.3333333333333333;
        double r6147311 = r6147296 * r6147310;
        double r6147312 = r6147311 * r6147296;
        double r6147313 = r6147301 + r6147312;
        double r6147314 = r6147313 * r6147296;
        double r6147315 = r6147309 + r6147314;
        double r6147316 = r6147315 / r6147301;
        double r6147317 = sin(r6147303);
        double r6147318 = r6147316 * r6147317;
        double r6147319 = /* ERROR: no complex support in C */;
        double r6147320 = /* ERROR: no complex support in C */;
        return r6147320;
}

Error

Bits error versus x

Bits error versus y

Derivation

  1. Initial program 43.7

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

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

Reproduce

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