Average Error: 0.0 → 0.0
Time: 20.2s
Precision: 64
\[\left(0.5 \cdot \sin re\right) \cdot \left(e^{0 - im} + e^{im}\right)\]
\[0.5 \cdot (\left(\sin re\right) \cdot \left(e^{im}\right) + \left(\frac{\sin re}{e^{im}}\right))_*\]
double f(double re, double im) {
        double r289568 = 0.5;
        double r289569 = re;
        double r289570 = sin(r289569);
        double r289571 = r289568 * r289570;
        double r289572 = 0.0;
        double r289573 = im;
        double r289574 = r289572 - r289573;
        double r289575 = exp(r289574);
        double r289576 = exp(r289573);
        double r289577 = r289575 + r289576;
        double r289578 = r289571 * r289577;
        return r289578;
}

double f(double re, double im) {
        double r289579 = 0.5;
        double r289580 = re;
        double r289581 = sin(r289580);
        double r289582 = im;
        double r289583 = exp(r289582);
        double r289584 = r289581 / r289583;
        double r289585 = fma(r289581, r289583, r289584);
        double r289586 = r289579 * r289585;
        return r289586;
}

\left(0.5 \cdot \sin re\right) \cdot \left(e^{0 - im} + e^{im}\right)
0.5 \cdot (\left(\sin re\right) \cdot \left(e^{im}\right) + \left(\frac{\sin re}{e^{im}}\right))_*

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}{0.5 \cdot (\left(\sin re\right) \cdot \left(e^{im}\right) + \left(\frac{\sin re}{e^{im}}\right))_*}\]
  3. Final simplification0.0

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

Reproduce

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