Average Error: 0.0 → 0.0
Time: 28.3s
Precision: 64
\[\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)\]
\[(\left(e^{im}\right) \cdot \left(\cos re \cdot 0.5\right) + \left(\frac{1}{e^{im}} \cdot \left(\cos re \cdot 0.5\right)\right))_*\]
double f(double re, double im) {
        double r2283846 = 0.5;
        double r2283847 = re;
        double r2283848 = cos(r2283847);
        double r2283849 = r2283846 * r2283848;
        double r2283850 = im;
        double r2283851 = -r2283850;
        double r2283852 = exp(r2283851);
        double r2283853 = exp(r2283850);
        double r2283854 = r2283852 + r2283853;
        double r2283855 = r2283849 * r2283854;
        return r2283855;
}

double f(double re, double im) {
        double r2283856 = im;
        double r2283857 = exp(r2283856);
        double r2283858 = re;
        double r2283859 = cos(r2283858);
        double r2283860 = 0.5;
        double r2283861 = r2283859 * r2283860;
        double r2283862 = 1.0;
        double r2283863 = r2283862 / r2283857;
        double r2283864 = r2283863 * r2283861;
        double r2283865 = fma(r2283857, r2283861, r2283864);
        return r2283865;
}

\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)
(\left(e^{im}\right) \cdot \left(\cos re \cdot 0.5\right) + \left(\frac{1}{e^{im}} \cdot \left(\cos re \cdot 0.5\right)\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(e^{im}\right) \cdot \left(0.5 \cdot \cos re\right) + \left(\frac{0.5 \cdot \cos re}{e^{im}}\right))_*}\]
  3. Using strategy rm
  4. Applied div-inv0.0

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

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

Reproduce

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