Average Error: 0.0 → 0.0
Time: 6.8s
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(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \cos y\right) + \frac{e^{x} - e^{-x}}{2} \cdot \sin y 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(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \cos y\right) + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
double f(double x, double y) {
        double r49018 = x;
        double r49019 = exp(r49018);
        double r49020 = -r49018;
        double r49021 = exp(r49020);
        double r49022 = r49019 + r49021;
        double r49023 = 2.0;
        double r49024 = r49022 / r49023;
        double r49025 = y;
        double r49026 = cos(r49025);
        double r49027 = r49024 * r49026;
        double r49028 = r49019 - r49021;
        double r49029 = r49028 / r49023;
        double r49030 = sin(r49025);
        double r49031 = r49029 * r49030;
        double r49032 = /* ERROR: no complex support in C */;
        double r49033 = /* ERROR: no complex support in C */;
        return r49033;
}

double f(double x, double y) {
        double r49034 = x;
        double r49035 = exp(r49034);
        double r49036 = -r49034;
        double r49037 = exp(r49036);
        double r49038 = r49035 + r49037;
        double r49039 = 2.0;
        double r49040 = r49038 / r49039;
        double r49041 = sqrt(r49040);
        double r49042 = y;
        double r49043 = cos(r49042);
        double r49044 = r49041 * r49043;
        double r49045 = r49041 * r49044;
        double r49046 = r49035 - r49037;
        double r49047 = r49046 / r49039;
        double r49048 = sin(r49042);
        double r49049 = r49047 * r49048;
        double r49050 = /* ERROR: no complex support in C */;
        double r49051 = /* ERROR: no complex support in C */;
        return r49051;
}

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(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \cos y\right) + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]

Reproduce

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