Average Error: 0.0 → 0.0
Time: 15.1s
Precision: 64
\[\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)\]
\[\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)\]
\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)
\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)
double f(double re, double im) {
        double r66707 = 0.5;
        double r66708 = re;
        double r66709 = cos(r66708);
        double r66710 = r66707 * r66709;
        double r66711 = im;
        double r66712 = -r66711;
        double r66713 = exp(r66712);
        double r66714 = exp(r66711);
        double r66715 = r66713 + r66714;
        double r66716 = r66710 * r66715;
        return r66716;
}

double f(double re, double im) {
        double r66717 = 0.5;
        double r66718 = re;
        double r66719 = cos(r66718);
        double r66720 = r66717 * r66719;
        double r66721 = im;
        double r66722 = -r66721;
        double r66723 = exp(r66722);
        double r66724 = exp(r66721);
        double r66725 = r66723 + r66724;
        double r66726 = r66720 * r66725;
        return r66726;
}

Error

Bits error versus re

Bits error versus im

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

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

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

Reproduce

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