Average Error: 0.0 → 0.0
Time: 2.5s
Precision: 64
\[\frac{2}{e^{x} + e^{-x}}\]
\[\frac{2}{e^{\log \left(e^{-1 \cdot x} + e^{x}\right)}}\]
\frac{2}{e^{x} + e^{-x}}
\frac{2}{e^{\log \left(e^{-1 \cdot x} + e^{x}\right)}}
double f(double x) {
        double r59808 = 2.0;
        double r59809 = x;
        double r59810 = exp(r59809);
        double r59811 = -r59809;
        double r59812 = exp(r59811);
        double r59813 = r59810 + r59812;
        double r59814 = r59808 / r59813;
        return r59814;
}

double f(double x) {
        double r59815 = 2.0;
        double r59816 = -1.0;
        double r59817 = x;
        double r59818 = r59816 * r59817;
        double r59819 = exp(r59818);
        double r59820 = exp(r59817);
        double r59821 = r59819 + r59820;
        double r59822 = log(r59821);
        double r59823 = exp(r59822);
        double r59824 = r59815 / r59823;
        return r59824;
}

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. Simplified0.0

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

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

Reproduce

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