Average Error: 43.7 → 0.7
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{(\frac{1}{60} \cdot \left({x}^{5}\right) + \left((\frac{1}{3} \cdot \left(x \cdot x\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{(\frac{1}{60} \cdot \left({x}^{5}\right) + \left((\frac{1}{3} \cdot \left(x \cdot x\right) + 2)_* \cdot x\right))_*}{2} \cdot \sin y i\right))
double f(double x, double y) {
        double r2577245 = x;
        double r2577246 = exp(r2577245);
        double r2577247 = -r2577245;
        double r2577248 = exp(r2577247);
        double r2577249 = r2577246 + r2577248;
        double r2577250 = 2.0;
        double r2577251 = r2577249 / r2577250;
        double r2577252 = y;
        double r2577253 = cos(r2577252);
        double r2577254 = r2577251 * r2577253;
        double r2577255 = r2577246 - r2577248;
        double r2577256 = r2577255 / r2577250;
        double r2577257 = sin(r2577252);
        double r2577258 = r2577256 * r2577257;
        double r2577259 = /* ERROR: no complex support in C */;
        double r2577260 = /* ERROR: no complex support in C */;
        return r2577260;
}

double f(double x, double y) {
        double r2577261 = x;
        double r2577262 = exp(r2577261);
        double r2577263 = -r2577261;
        double r2577264 = exp(r2577263);
        double r2577265 = r2577262 + r2577264;
        double r2577266 = 2.0;
        double r2577267 = r2577265 / r2577266;
        double r2577268 = y;
        double r2577269 = cos(r2577268);
        double r2577270 = r2577267 * r2577269;
        double r2577271 = 0.016666666666666666;
        double r2577272 = 5.0;
        double r2577273 = pow(r2577261, r2577272);
        double r2577274 = 0.3333333333333333;
        double r2577275 = r2577261 * r2577261;
        double r2577276 = fma(r2577274, r2577275, r2577266);
        double r2577277 = r2577276 * r2577261;
        double r2577278 = fma(r2577271, r2577273, r2577277);
        double r2577279 = r2577278 / r2577266;
        double r2577280 = sin(r2577268);
        double r2577281 = r2577279 * r2577280;
        double r2577282 = /* ERROR: no complex support in C */;
        double r2577283 = /* ERROR: no complex support in C */;
        return r2577283;
}

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

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

Reproduce

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