Average Error: 0.0 → 0.0
Time: 4.8s
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 r49998 = 0.5;
        double r49999 = re;
        double r50000 = cos(r49999);
        double r50001 = r49998 * r50000;
        double r50002 = im;
        double r50003 = -r50002;
        double r50004 = exp(r50003);
        double r50005 = exp(r50002);
        double r50006 = r50004 + r50005;
        double r50007 = r50001 * r50006;
        return r50007;
}

double f(double re, double im) {
        double r50008 = 0.5;
        double r50009 = re;
        double r50010 = cos(r50009);
        double r50011 = r50008 * r50010;
        double r50012 = im;
        double r50013 = -r50012;
        double r50014 = exp(r50013);
        double r50015 = exp(r50012);
        double r50016 = r50014 + r50015;
        double r50017 = r50011 * r50016;
        return r50017;
}

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