Average Error: 0.0 → 0.4
Time: 16.8s
Precision: 64
\[\frac{2}{e^{x} + e^{-x}}\]
\[\sqrt{\frac{2}{e^{x} + e^{-x}}} \cdot \sqrt{\frac{2}{\mathsf{fma}\left(x, x, \mathsf{fma}\left(\frac{1}{12}, {x}^{4}, 2\right)\right)}}\]
\frac{2}{e^{x} + e^{-x}}
\sqrt{\frac{2}{e^{x} + e^{-x}}} \cdot \sqrt{\frac{2}{\mathsf{fma}\left(x, x, \mathsf{fma}\left(\frac{1}{12}, {x}^{4}, 2\right)\right)}}
double f(double x) {
        double r41168 = 2.0;
        double r41169 = x;
        double r41170 = exp(r41169);
        double r41171 = -r41169;
        double r41172 = exp(r41171);
        double r41173 = r41170 + r41172;
        double r41174 = r41168 / r41173;
        return r41174;
}

double f(double x) {
        double r41175 = 2.0;
        double r41176 = x;
        double r41177 = exp(r41176);
        double r41178 = -r41176;
        double r41179 = exp(r41178);
        double r41180 = r41177 + r41179;
        double r41181 = r41175 / r41180;
        double r41182 = sqrt(r41181);
        double r41183 = 0.08333333333333333;
        double r41184 = 4.0;
        double r41185 = pow(r41176, r41184);
        double r41186 = 2.0;
        double r41187 = fma(r41183, r41185, r41186);
        double r41188 = fma(r41176, r41176, r41187);
        double r41189 = r41175 / r41188;
        double r41190 = sqrt(r41189);
        double r41191 = r41182 * r41190;
        return r41191;
}

Error

Bits error versus x

Derivation

  1. Initial program 0.0

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

    \[\leadsto \color{blue}{\sqrt{\frac{2}{e^{x} + e^{-x}}} \cdot \sqrt{\frac{2}{e^{x} + e^{-x}}}}\]
  4. Taylor expanded around 0 0.4

    \[\leadsto \sqrt{\frac{2}{e^{x} + e^{-x}}} \cdot \sqrt{\frac{2}{\color{blue}{{x}^{2} + \left(\frac{1}{12} \cdot {x}^{4} + 2\right)}}}\]
  5. Simplified0.4

    \[\leadsto \sqrt{\frac{2}{e^{x} + e^{-x}}} \cdot \sqrt{\frac{2}{\color{blue}{\mathsf{fma}\left(x, x, \mathsf{fma}\left(\frac{1}{12}, {x}^{4}, 2\right)\right)}}}\]
  6. Final simplification0.4

    \[\leadsto \sqrt{\frac{2}{e^{x} + e^{-x}}} \cdot \sqrt{\frac{2}{\mathsf{fma}\left(x, x, \mathsf{fma}\left(\frac{1}{12}, {x}^{4}, 2\right)\right)}}\]

Reproduce

herbie shell --seed 2019304 +o rules:numerics
(FPCore (x)
  :name "Hyperbolic secant"
  :precision binary64
  (/ 2 (+ (exp x) (exp (- x)))))