Average Error: 0.0 → 0.0
Time: 29.2s
Precision: 64
\[\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)\]
\[\left(\cos re \cdot e^{im} + \frac{\cos re}{e^{im}}\right) \cdot 0.5\]
\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)
\left(\cos re \cdot e^{im} + \frac{\cos re}{e^{im}}\right) \cdot 0.5
double f(double re, double im) {
        double r1199234 = 0.5;
        double r1199235 = re;
        double r1199236 = cos(r1199235);
        double r1199237 = r1199234 * r1199236;
        double r1199238 = im;
        double r1199239 = -r1199238;
        double r1199240 = exp(r1199239);
        double r1199241 = exp(r1199238);
        double r1199242 = r1199240 + r1199241;
        double r1199243 = r1199237 * r1199242;
        return r1199243;
}

double f(double re, double im) {
        double r1199244 = re;
        double r1199245 = cos(r1199244);
        double r1199246 = im;
        double r1199247 = exp(r1199246);
        double r1199248 = r1199245 * r1199247;
        double r1199249 = r1199245 / r1199247;
        double r1199250 = r1199248 + r1199249;
        double r1199251 = 0.5;
        double r1199252 = r1199250 * r1199251;
        return r1199252;
}

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. Simplified0.0

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

    \[\leadsto 0.5 \cdot \color{blue}{\left(e^{im} \cdot \cos re + \frac{\cos re}{e^{im}}\right)}\]
  5. Final simplification0.0

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

Reproduce

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