Average Error: 0.0 → 0.0
Time: 22.5s
Precision: 64
\[\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
\[\Re(\left(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \left(\cos y \cdot \sqrt{\frac{e^{x} + e^{-x}}{2}}\right) + \sin y \cdot \frac{e^{x} - e^{-x}}{2} i\right))\]
\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
\Re(\left(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \left(\cos y \cdot \sqrt{\frac{e^{x} + e^{-x}}{2}}\right) + \sin y \cdot \frac{e^{x} - e^{-x}}{2} i\right))
double f(double x, double y) {
        double r53757 = x;
        double r53758 = exp(r53757);
        double r53759 = -r53757;
        double r53760 = exp(r53759);
        double r53761 = r53758 + r53760;
        double r53762 = 2.0;
        double r53763 = r53761 / r53762;
        double r53764 = y;
        double r53765 = cos(r53764);
        double r53766 = r53763 * r53765;
        double r53767 = r53758 - r53760;
        double r53768 = r53767 / r53762;
        double r53769 = sin(r53764);
        double r53770 = r53768 * r53769;
        double r53771 = /* ERROR: no complex support in C */;
        double r53772 = /* ERROR: no complex support in C */;
        return r53772;
}

double f(double x, double y) {
        double r53773 = x;
        double r53774 = exp(r53773);
        double r53775 = -r53773;
        double r53776 = exp(r53775);
        double r53777 = r53774 + r53776;
        double r53778 = 2.0;
        double r53779 = r53777 / r53778;
        double r53780 = sqrt(r53779);
        double r53781 = y;
        double r53782 = cos(r53781);
        double r53783 = r53782 * r53780;
        double r53784 = r53780 * r53783;
        double r53785 = sin(r53781);
        double r53786 = r53774 - r53776;
        double r53787 = r53786 / r53778;
        double r53788 = r53785 * r53787;
        double r53789 = /* ERROR: no complex support in C */;
        double r53790 = /* ERROR: no complex support in C */;
        return r53790;
}

Error

Bits error versus x

Bits error versus y

Derivation

  1. Initial program 0.0

    \[\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
  2. Using strategy rm
  3. Applied add-sqr-sqrt0.0

    \[\leadsto \Re(\left(\color{blue}{\left(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \sqrt{\frac{e^{x} + e^{-x}}{2}}\right)} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
  4. Applied associate-*l*0.0

    \[\leadsto \Re(\left(\color{blue}{\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \left(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \cos y\right)} + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
  5. Final simplification0.0

    \[\leadsto \Re(\left(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \left(\cos y \cdot \sqrt{\frac{e^{x} + e^{-x}}{2}}\right) + \sin y \cdot \frac{e^{x} - e^{-x}}{2} i\right))\]

Reproduce

herbie shell --seed 2019174 +o rules:numerics
(FPCore (x y)
  :name "Euler formula real part (p55)"
  (re (complex (* (/ (+ (exp x) (exp (- x))) 2.0) (cos y)) (* (/ (- (exp x) (exp (- x))) 2.0) (sin y)))))