Average Error: 0.0 → 0.0
Time: 7.2s
Precision: 64
\[\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)\]
\[\mathsf{fma}\left(0.5, e^{im}, \frac{\sqrt{0.5}}{\sqrt{e^{im}}} \cdot \frac{\sqrt{0.5}}{\sqrt{e^{im}}}\right) \cdot \cos re\]
\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)
\mathsf{fma}\left(0.5, e^{im}, \frac{\sqrt{0.5}}{\sqrt{e^{im}}} \cdot \frac{\sqrt{0.5}}{\sqrt{e^{im}}}\right) \cdot \cos re
double f(double re, double im) {
        double r57599 = 0.5;
        double r57600 = re;
        double r57601 = cos(r57600);
        double r57602 = r57599 * r57601;
        double r57603 = im;
        double r57604 = -r57603;
        double r57605 = exp(r57604);
        double r57606 = exp(r57603);
        double r57607 = r57605 + r57606;
        double r57608 = r57602 * r57607;
        return r57608;
}

double f(double re, double im) {
        double r57609 = 0.5;
        double r57610 = im;
        double r57611 = exp(r57610);
        double r57612 = sqrt(r57609);
        double r57613 = sqrt(r57611);
        double r57614 = r57612 / r57613;
        double r57615 = r57614 * r57614;
        double r57616 = fma(r57609, r57611, r57615);
        double r57617 = re;
        double r57618 = cos(r57617);
        double r57619 = r57616 * r57618;
        return r57619;
}

Error

Bits error versus re

Bits error versus im

Derivation

  1. Initial program 0.0

    \[\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)\]
  2. Simplified0.0

    \[\leadsto \color{blue}{\mathsf{fma}\left(0.5, e^{im}, \frac{0.5}{e^{im}}\right) \cdot \cos re}\]
  3. Using strategy rm
  4. Applied add-sqr-sqrt0.0

    \[\leadsto \mathsf{fma}\left(0.5, e^{im}, \frac{0.5}{\color{blue}{\sqrt{e^{im}} \cdot \sqrt{e^{im}}}}\right) \cdot \cos re\]
  5. Applied add-sqr-sqrt0.0

    \[\leadsto \mathsf{fma}\left(0.5, e^{im}, \frac{\color{blue}{\sqrt{0.5} \cdot \sqrt{0.5}}}{\sqrt{e^{im}} \cdot \sqrt{e^{im}}}\right) \cdot \cos re\]
  6. Applied times-frac0.0

    \[\leadsto \mathsf{fma}\left(0.5, e^{im}, \color{blue}{\frac{\sqrt{0.5}}{\sqrt{e^{im}}} \cdot \frac{\sqrt{0.5}}{\sqrt{e^{im}}}}\right) \cdot \cos re\]
  7. Final simplification0.0

    \[\leadsto \mathsf{fma}\left(0.5, e^{im}, \frac{\sqrt{0.5}}{\sqrt{e^{im}}} \cdot \frac{\sqrt{0.5}}{\sqrt{e^{im}}}\right) \cdot \cos re\]

Reproduce

herbie shell --seed 2020035 +o rules:numerics
(FPCore (re im)
  :name "math.cos on complex, real part"
  :precision binary64
  (* (* 0.5 (cos re)) (+ (exp (- im)) (exp im))))