Average Error: 0.0 → 0.0
Time: 33.1s
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 r1206537 = 0.5;
        double r1206538 = re;
        double r1206539 = sin(r1206538);
        double r1206540 = r1206537 * r1206539;
        double r1206541 = 0.0;
        double r1206542 = im;
        double r1206543 = r1206541 - r1206542;
        double r1206544 = exp(r1206543);
        double r1206545 = exp(r1206542);
        double r1206546 = r1206544 + r1206545;
        double r1206547 = r1206540 * r1206546;
        return r1206547;
}

double f(double re, double im) {
        double r1206548 = 0.5;
        double r1206549 = re;
        double r1206550 = sin(r1206549);
        double r1206551 = im;
        double r1206552 = exp(r1206551);
        double r1206553 = r1206550 / r1206552;
        double r1206554 = fma(r1206550, r1206552, r1206553);
        double r1206555 = r1206548 * r1206554;
        return r1206555;
}

\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 2019102 +o rules:numerics
(FPCore (re im)
  :name "math.sin on complex, real part"
  (* (* 0.5 (sin re)) (+ (exp (- 0 im)) (exp im))))