Average Error: 0.0 → 0.0
Time: 14.9s
Precision: 64
\[\left(0.5 \cdot \sin re\right) \cdot \left(e^{0 - im} + e^{im}\right)\]
\[\mathsf{fma}\left(e^{im}, 0.5, \sqrt{0.5} \cdot \frac{\sqrt{0.5}}{e^{im}}\right) \cdot \sin re\]
\left(0.5 \cdot \sin re\right) \cdot \left(e^{0 - im} + e^{im}\right)
\mathsf{fma}\left(e^{im}, 0.5, \sqrt{0.5} \cdot \frac{\sqrt{0.5}}{e^{im}}\right) \cdot \sin re
double f(double re, double im) {
        double r313692 = 0.5;
        double r313693 = re;
        double r313694 = sin(r313693);
        double r313695 = r313692 * r313694;
        double r313696 = 0.0;
        double r313697 = im;
        double r313698 = r313696 - r313697;
        double r313699 = exp(r313698);
        double r313700 = exp(r313697);
        double r313701 = r313699 + r313700;
        double r313702 = r313695 * r313701;
        return r313702;
}

double f(double re, double im) {
        double r313703 = im;
        double r313704 = exp(r313703);
        double r313705 = 0.5;
        double r313706 = sqrt(r313705);
        double r313707 = r313706 / r313704;
        double r313708 = r313706 * r313707;
        double r313709 = fma(r313704, r313705, r313708);
        double r313710 = re;
        double r313711 = sin(r313710);
        double r313712 = r313709 * r313711;
        return r313712;
}

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 - im} + e^{im}\right)\]
  2. Simplified0.0

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

    \[\leadsto \mathsf{fma}\left(e^{im}, 0.5, \frac{0.5}{\color{blue}{1 \cdot e^{im}}}\right) \cdot \sin re\]
  5. Applied add-sqr-sqrt0.1

    \[\leadsto \mathsf{fma}\left(e^{im}, 0.5, \frac{\color{blue}{\sqrt{0.5} \cdot \sqrt{0.5}}}{1 \cdot e^{im}}\right) \cdot \sin re\]
  6. Applied times-frac0.0

    \[\leadsto \mathsf{fma}\left(e^{im}, 0.5, \color{blue}{\frac{\sqrt{0.5}}{1} \cdot \frac{\sqrt{0.5}}{e^{im}}}\right) \cdot \sin re\]
  7. Simplified0.0

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

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

Reproduce

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