Average Error: 0.0 → 0.0
Time: 32.3s
Precision: 64
\[\frac{2}{e^{x} + e^{-x}}\]
\[e^{\log 2 - \log \left(e^{x} + e^{-x}\right)}\]
\frac{2}{e^{x} + e^{-x}}
e^{\log 2 - \log \left(e^{x} + e^{-x}\right)}
double f(double x) {
        double r6945880 = 2.0;
        double r6945881 = x;
        double r6945882 = exp(r6945881);
        double r6945883 = -r6945881;
        double r6945884 = exp(r6945883);
        double r6945885 = r6945882 + r6945884;
        double r6945886 = r6945880 / r6945885;
        return r6945886;
}

double f(double x) {
        double r6945887 = 2.0;
        double r6945888 = log(r6945887);
        double r6945889 = x;
        double r6945890 = exp(r6945889);
        double r6945891 = -r6945889;
        double r6945892 = exp(r6945891);
        double r6945893 = r6945890 + r6945892;
        double r6945894 = log(r6945893);
        double r6945895 = r6945888 - r6945894;
        double r6945896 = exp(r6945895);
        return r6945896;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[\frac{2}{e^{x} + e^{-x}}\]
  2. Using strategy rm
  3. Applied add-exp-log0.0

    \[\leadsto \frac{2}{\color{blue}{e^{\log \left(e^{x} + e^{-x}\right)}}}\]
  4. Applied add-exp-log0.0

    \[\leadsto \frac{\color{blue}{e^{\log 2}}}{e^{\log \left(e^{x} + e^{-x}\right)}}\]
  5. Applied div-exp0.0

    \[\leadsto \color{blue}{e^{\log 2 - \log \left(e^{x} + e^{-x}\right)}}\]
  6. Final simplification0.0

    \[\leadsto e^{\log 2 - \log \left(e^{x} + e^{-x}\right)}\]

Reproduce

herbie shell --seed 2019128 
(FPCore (x)
  :name "Hyperbolic secant"
  (/ 2 (+ (exp x) (exp (- x)))))