Average Error: 43.2 → 0.5
Time: 36.6s
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.01288229977934218090096507580710749607533:\\ \;\;\;\;\left(\sqrt[3]{\frac{e^{x} - e^{-x}}{2} \cdot \sin y} \cdot \sqrt[3]{\frac{e^{x} - e^{-x}}{2} \cdot \sin y}\right) \cdot \sqrt[3]{\frac{e^{x} - e^{-x}}{2} \cdot \sin y}\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{fma}\left(\frac{1}{3}, {x}^{3}, \mathsf{fma}\left(\frac{1}{60}, {x}^{5}, 2 \cdot x\right)\right)}{2} \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.01288229977934218090096507580710749607533:\\
\;\;\;\;\left(\sqrt[3]{\frac{e^{x} - e^{-x}}{2} \cdot \sin y} \cdot \sqrt[3]{\frac{e^{x} - e^{-x}}{2} \cdot \sin y}\right) \cdot \sqrt[3]{\frac{e^{x} - e^{-x}}{2} \cdot \sin y}\\

\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\frac{1}{3}, {x}^{3}, \mathsf{fma}\left(\frac{1}{60}, {x}^{5}, 2 \cdot x\right)\right)}{2} \cdot \sin y\\

\end{array}
double f(double x, double y) {
        double r50328 = x;
        double r50329 = exp(r50328);
        double r50330 = -r50328;
        double r50331 = exp(r50330);
        double r50332 = r50329 + r50331;
        double r50333 = 2.0;
        double r50334 = r50332 / r50333;
        double r50335 = y;
        double r50336 = cos(r50335);
        double r50337 = r50334 * r50336;
        double r50338 = r50329 - r50331;
        double r50339 = r50338 / r50333;
        double r50340 = sin(r50335);
        double r50341 = r50339 * r50340;
        double r50342 = /* ERROR: no complex support in C */;
        double r50343 = /* ERROR: no complex support in C */;
        return r50343;
}

double f(double x, double y) {
        double r50344 = x;
        double r50345 = -0.012882299779342181;
        bool r50346 = r50344 <= r50345;
        double r50347 = exp(r50344);
        double r50348 = -r50344;
        double r50349 = exp(r50348);
        double r50350 = r50347 - r50349;
        double r50351 = 2.0;
        double r50352 = r50350 / r50351;
        double r50353 = y;
        double r50354 = sin(r50353);
        double r50355 = r50352 * r50354;
        double r50356 = cbrt(r50355);
        double r50357 = r50356 * r50356;
        double r50358 = r50357 * r50356;
        double r50359 = 0.3333333333333333;
        double r50360 = 3.0;
        double r50361 = pow(r50344, r50360);
        double r50362 = 0.016666666666666666;
        double r50363 = 5.0;
        double r50364 = pow(r50344, r50363);
        double r50365 = 2.0;
        double r50366 = r50365 * r50344;
        double r50367 = fma(r50362, r50364, r50366);
        double r50368 = fma(r50359, r50361, r50367);
        double r50369 = r50368 / r50351;
        double r50370 = r50369 * r50354;
        double r50371 = r50346 ? r50358 : r50370;
        return r50371;
}

Error

Bits error versus x

Bits error versus y

Derivation

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

    1. Initial program 2.8

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

      \[\leadsto \color{blue}{\frac{e^{x} - e^{-x}}{2} \cdot \sin y}\]
    3. Using strategy rm
    4. Applied add-cube-cbrt3.5

      \[\leadsto \color{blue}{\left(\sqrt[3]{\frac{e^{x} - e^{-x}}{2} \cdot \sin y} \cdot \sqrt[3]{\frac{e^{x} - e^{-x}}{2} \cdot \sin y}\right) \cdot \sqrt[3]{\frac{e^{x} - e^{-x}}{2} \cdot \sin y}}\]

    if -0.012882299779342181 < x

    1. Initial program 43.5

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

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

      \[\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. Simplified0.4

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

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

Reproduce

herbie shell --seed 2019323 +o rules:numerics
(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)))))