Average Error: 0.0 → 0.0
Time: 10.7s
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 r25060 = 0.5;
        double r25061 = re;
        double r25062 = cos(r25061);
        double r25063 = r25060 * r25062;
        double r25064 = im;
        double r25065 = -r25064;
        double r25066 = exp(r25065);
        double r25067 = exp(r25064);
        double r25068 = r25066 + r25067;
        double r25069 = r25063 * r25068;
        return r25069;
}

double f(double re, double im) {
        double r25070 = 0.5;
        double r25071 = re;
        double r25072 = cos(r25071);
        double r25073 = r25070 * r25072;
        double r25074 = im;
        double r25075 = -r25074;
        double r25076 = exp(r25075);
        double r25077 = exp(r25074);
        double r25078 = r25076 + r25077;
        double r25079 = r25073 * r25078;
        return r25079;
}

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 2019208 +o rules:numerics
(FPCore (re im)
  :name "math.cos on complex, real part"
  :precision binary64
  (* (* 0.5 (cos re)) (+ (exp (- im)) (exp im))))