Average Error: 43.9 → 0.6
Time: 10.8s
Precision: 64
\[\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
\[\begin{array}{l} \mathbf{if}\;x \le -0.013606942973814946:\\ \;\;\;\;\frac{e^{x} - e^{-x}}{2} \cdot \sin y\\ \mathbf{else}:\\ \;\;\;\;\left({2}^{\left(-\frac{1}{2}\right)} \cdot \frac{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}{\sqrt{2}}\right) \cdot \sin y\\ \end{array}\]
\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
\begin{array}{l}
\mathbf{if}\;x \le -0.013606942973814946:\\
\;\;\;\;\frac{e^{x} - e^{-x}}{2} \cdot \sin y\\

\mathbf{else}:\\
\;\;\;\;\left({2}^{\left(-\frac{1}{2}\right)} \cdot \frac{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}{\sqrt{2}}\right) \cdot \sin y\\

\end{array}
double f(double x, double y) {
        double r36241 = x;
        double r36242 = exp(r36241);
        double r36243 = -r36241;
        double r36244 = exp(r36243);
        double r36245 = r36242 + r36244;
        double r36246 = 2.0;
        double r36247 = r36245 / r36246;
        double r36248 = y;
        double r36249 = cos(r36248);
        double r36250 = r36247 * r36249;
        double r36251 = r36242 - r36244;
        double r36252 = r36251 / r36246;
        double r36253 = sin(r36248);
        double r36254 = r36252 * r36253;
        double r36255 = /* ERROR: no complex support in C */;
        double r36256 = /* ERROR: no complex support in C */;
        return r36256;
}

double f(double x, double y) {
        double r36257 = x;
        double r36258 = -0.013606942973814946;
        bool r36259 = r36257 <= r36258;
        double r36260 = exp(r36257);
        double r36261 = -r36257;
        double r36262 = exp(r36261);
        double r36263 = r36260 - r36262;
        double r36264 = 2.0;
        double r36265 = r36263 / r36264;
        double r36266 = y;
        double r36267 = sin(r36266);
        double r36268 = r36265 * r36267;
        double r36269 = 0.5;
        double r36270 = -r36269;
        double r36271 = pow(r36264, r36270);
        double r36272 = 0.3333333333333333;
        double r36273 = 3.0;
        double r36274 = pow(r36257, r36273);
        double r36275 = r36272 * r36274;
        double r36276 = 0.016666666666666666;
        double r36277 = 5.0;
        double r36278 = pow(r36257, r36277);
        double r36279 = r36276 * r36278;
        double r36280 = 2.0;
        double r36281 = r36280 * r36257;
        double r36282 = r36279 + r36281;
        double r36283 = r36275 + r36282;
        double r36284 = sqrt(r36264);
        double r36285 = r36283 / r36284;
        double r36286 = r36271 * r36285;
        double r36287 = r36286 * r36267;
        double r36288 = r36259 ? r36268 : r36287;
        return r36288;
}

Error

Bits error versus x

Bits error versus y

Derivation

  1. Split input into 2 regimes
  2. if x < -0.013606942973814946

    1. Initial program 5.4

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

      \[\leadsto \color{blue}{\frac{e^{x} - e^{-x}}{2} \cdot \sin y}\]

    if -0.013606942973814946 < x

    1. Initial program 44.2

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

      \[\leadsto \color{blue}{\frac{e^{x} - e^{-x}}{2} \cdot \sin y}\]
    3. Taylor expanded around 0 0.5

      \[\leadsto \frac{\color{blue}{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}}{2} \cdot \sin y\]
    4. Using strategy rm
    5. Applied add-sqr-sqrt1.3

      \[\leadsto \frac{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}{\color{blue}{\sqrt{2} \cdot \sqrt{2}}} \cdot \sin y\]
    6. Applied *-un-lft-identity1.3

      \[\leadsto \frac{\color{blue}{1 \cdot \left(\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)\right)}}{\sqrt{2} \cdot \sqrt{2}} \cdot \sin y\]
    7. Applied times-frac1.1

      \[\leadsto \color{blue}{\left(\frac{1}{\sqrt{2}} \cdot \frac{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}{\sqrt{2}}\right)} \cdot \sin y\]
    8. Applied associate-*l*1.0

      \[\leadsto \color{blue}{\frac{1}{\sqrt{2}} \cdot \left(\frac{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}{\sqrt{2}} \cdot \sin y\right)}\]
    9. Using strategy rm
    10. Applied pow1/21.0

      \[\leadsto \frac{1}{\color{blue}{{2}^{\frac{1}{2}}}} \cdot \left(\frac{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}{\sqrt{2}} \cdot \sin y\right)\]
    11. Applied pow-flip0.6

      \[\leadsto \color{blue}{{2}^{\left(-\frac{1}{2}\right)}} \cdot \left(\frac{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}{\sqrt{2}} \cdot \sin y\right)\]
    12. Using strategy rm
    13. Applied associate-*r*0.5

      \[\leadsto \color{blue}{\left({2}^{\left(-\frac{1}{2}\right)} \cdot \frac{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}{\sqrt{2}}\right) \cdot \sin y}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.6

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -0.013606942973814946:\\ \;\;\;\;\frac{e^{x} - e^{-x}}{2} \cdot \sin y\\ \mathbf{else}:\\ \;\;\;\;\left({2}^{\left(-\frac{1}{2}\right)} \cdot \frac{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}{\sqrt{2}}\right) \cdot \sin y\\ \end{array}\]

Reproduce

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