Average Error: 0.0 → 0.0
Time: 1.1m
Precision: 64
\[\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)\]
\[\cos re \cdot \left(\frac{0.5}{e^{im}} + 0.5 \cdot e^{im}\right)\]
double f(double re, double im) {
        double r4802579 = 0.5;
        double r4802580 = re;
        double r4802581 = cos(r4802580);
        double r4802582 = r4802579 * r4802581;
        double r4802583 = im;
        double r4802584 = -r4802583;
        double r4802585 = exp(r4802584);
        double r4802586 = exp(r4802583);
        double r4802587 = r4802585 + r4802586;
        double r4802588 = r4802582 * r4802587;
        return r4802588;
}

double f(double re, double im) {
        double r4802589 = re;
        double r4802590 = cos(r4802589);
        double r4802591 = 0.5;
        double r4802592 = im;
        double r4802593 = exp(r4802592);
        double r4802594 = r4802591 / r4802593;
        double r4802595 = r4802591 * r4802593;
        double r4802596 = r4802594 + r4802595;
        double r4802597 = r4802590 * r4802596;
        return r4802597;
}

\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)
\cos re \cdot \left(\frac{0.5}{e^{im}} + 0.5 \cdot e^{im}\right)

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}{\left(\frac{0.5}{e^{im}} + e^{im} \cdot 0.5\right) \cdot \cos re}\]
  3. Final simplification0.0

    \[\leadsto \cos re \cdot \left(\frac{0.5}{e^{im}} + 0.5 \cdot e^{im}\right)\]

Reproduce

herbie shell --seed 2019102 
(FPCore (re im)
  :name "math.cos on complex, real part"
  (* (* 0.5 (cos re)) (+ (exp (- im)) (exp im))))