Average Error: 0.0 → 0.0
Time: 16.7s
Precision: 64
\[\left(0.5 \cdot \sin re\right) \cdot \left(e^{0.0 - im} + e^{im}\right)\]
\[\mathsf{fma}\left(\sin re, e^{im}, \frac{\sin re}{e^{im - 0.0}}\right) \cdot 0.5\]
\left(0.5 \cdot \sin re\right) \cdot \left(e^{0.0 - im} + e^{im}\right)
\mathsf{fma}\left(\sin re, e^{im}, \frac{\sin re}{e^{im - 0.0}}\right) \cdot 0.5
double f(double re, double im) {
        double r17695 = 0.5;
        double r17696 = re;
        double r17697 = sin(r17696);
        double r17698 = r17695 * r17697;
        double r17699 = 0.0;
        double r17700 = im;
        double r17701 = r17699 - r17700;
        double r17702 = exp(r17701);
        double r17703 = exp(r17700);
        double r17704 = r17702 + r17703;
        double r17705 = r17698 * r17704;
        return r17705;
}

double f(double re, double im) {
        double r17706 = re;
        double r17707 = sin(r17706);
        double r17708 = im;
        double r17709 = exp(r17708);
        double r17710 = 0.0;
        double r17711 = r17708 - r17710;
        double r17712 = exp(r17711);
        double r17713 = r17707 / r17712;
        double r17714 = fma(r17707, r17709, r17713);
        double r17715 = 0.5;
        double r17716 = r17714 * r17715;
        return r17716;
}

Error

Bits error versus re

Bits error versus im

Derivation

  1. Initial program 0.0

    \[\left(0.5 \cdot \sin re\right) \cdot \left(e^{0.0 - im} + e^{im}\right)\]
  2. Using strategy rm
  3. Applied distribute-lft-in0.0

    \[\leadsto \color{blue}{\left(0.5 \cdot \sin re\right) \cdot e^{0.0 - im} + \left(0.5 \cdot \sin re\right) \cdot e^{im}}\]
  4. Simplified0.0

    \[\leadsto \color{blue}{e^{0.0 - im} \cdot \left(0.5 \cdot \sin re\right)} + \left(0.5 \cdot \sin re\right) \cdot e^{im}\]
  5. Simplified0.0

    \[\leadsto e^{0.0 - im} \cdot \left(0.5 \cdot \sin re\right) + \color{blue}{e^{im} \cdot \left(0.5 \cdot \sin re\right)}\]
  6. Using strategy rm
  7. Applied sub-neg0.0

    \[\leadsto e^{\color{blue}{0.0 + \left(-im\right)}} \cdot \left(0.5 \cdot \sin re\right) + e^{im} \cdot \left(0.5 \cdot \sin re\right)\]
  8. Applied exp-sum0.0

    \[\leadsto \color{blue}{\left(e^{0.0} \cdot e^{-im}\right)} \cdot \left(0.5 \cdot \sin re\right) + e^{im} \cdot \left(0.5 \cdot \sin re\right)\]
  9. Applied associate-*l*0.0

    \[\leadsto \color{blue}{e^{0.0} \cdot \left(e^{-im} \cdot \left(0.5 \cdot \sin re\right)\right)} + e^{im} \cdot \left(0.5 \cdot \sin re\right)\]
  10. Simplified0.0

    \[\leadsto e^{0.0} \cdot \color{blue}{\frac{\sin re \cdot 0.5}{e^{im}}} + e^{im} \cdot \left(0.5 \cdot \sin re\right)\]
  11. Taylor expanded around inf 0.0

    \[\leadsto \color{blue}{0.5 \cdot \frac{\sin re \cdot e^{0.0}}{e^{im}} + 0.5 \cdot \left(\sin re \cdot e^{im}\right)}\]
  12. Simplified0.0

    \[\leadsto \color{blue}{\mathsf{fma}\left(\sin re, e^{im}, \frac{\sin re}{e^{im - 0.0}}\right) \cdot 0.5}\]
  13. Final simplification0.0

    \[\leadsto \mathsf{fma}\left(\sin re, e^{im}, \frac{\sin re}{e^{im - 0.0}}\right) \cdot 0.5\]

Reproduce

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