Average Error: 0.0 → 0.1
Time: 6.0s
Precision: 64
\[\left(0.5 \cdot \sin re\right) \cdot \left(e^{0.0 - im} + e^{im}\right)\]
\[\left(0.5 \cdot \sin re\right) \cdot \mathsf{fma}\left(\sqrt[3]{e^{0.0 - im}} \cdot \sqrt[3]{e^{0.0 - im}}, \sqrt[3]{e^{0.0 - im}}, e^{im}\right)\]
\left(0.5 \cdot \sin re\right) \cdot \left(e^{0.0 - im} + e^{im}\right)
\left(0.5 \cdot \sin re\right) \cdot \mathsf{fma}\left(\sqrt[3]{e^{0.0 - im}} \cdot \sqrt[3]{e^{0.0 - im}}, \sqrt[3]{e^{0.0 - im}}, e^{im}\right)
double f(double re, double im) {
        double r35446 = 0.5;
        double r35447 = re;
        double r35448 = sin(r35447);
        double r35449 = r35446 * r35448;
        double r35450 = 0.0;
        double r35451 = im;
        double r35452 = r35450 - r35451;
        double r35453 = exp(r35452);
        double r35454 = exp(r35451);
        double r35455 = r35453 + r35454;
        double r35456 = r35449 * r35455;
        return r35456;
}

double f(double re, double im) {
        double r35457 = 0.5;
        double r35458 = re;
        double r35459 = sin(r35458);
        double r35460 = r35457 * r35459;
        double r35461 = 0.0;
        double r35462 = im;
        double r35463 = r35461 - r35462;
        double r35464 = exp(r35463);
        double r35465 = cbrt(r35464);
        double r35466 = r35465 * r35465;
        double r35467 = exp(r35462);
        double r35468 = fma(r35466, r35465, r35467);
        double r35469 = r35460 * r35468;
        return r35469;
}

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 add-cube-cbrt0.1

    \[\leadsto \left(0.5 \cdot \sin re\right) \cdot \left(\color{blue}{\left(\sqrt[3]{e^{0.0 - im}} \cdot \sqrt[3]{e^{0.0 - im}}\right) \cdot \sqrt[3]{e^{0.0 - im}}} + e^{im}\right)\]
  4. Applied fma-def0.1

    \[\leadsto \left(0.5 \cdot \sin re\right) \cdot \color{blue}{\mathsf{fma}\left(\sqrt[3]{e^{0.0 - im}} \cdot \sqrt[3]{e^{0.0 - im}}, \sqrt[3]{e^{0.0 - im}}, e^{im}\right)}\]
  5. Final simplification0.1

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

Reproduce

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