Average Error: 58.1 → 0.6
Time: 12.8s
Precision: 64
\[\frac{e^{x} - e^{-x}}{2}\]
\[\frac{\mathsf{fma}\left({x}^{5}, \frac{1}{60}, \frac{\mathsf{fma}\left(\left(\left(x \cdot x\right) \cdot x\right) \cdot \frac{1}{27}, \left(x \cdot x\right) \cdot x, 8\right) \cdot x}{\left(4 - \left(\left(\frac{1}{3} \cdot x\right) \cdot x\right) \cdot 2\right) + \left(\left(\frac{1}{3} \cdot x\right) \cdot x\right) \cdot \left(\left(\frac{1}{3} \cdot x\right) \cdot x\right)}\right)}{2}\]
\frac{e^{x} - e^{-x}}{2}
\frac{\mathsf{fma}\left({x}^{5}, \frac{1}{60}, \frac{\mathsf{fma}\left(\left(\left(x \cdot x\right) \cdot x\right) \cdot \frac{1}{27}, \left(x \cdot x\right) \cdot x, 8\right) \cdot x}{\left(4 - \left(\left(\frac{1}{3} \cdot x\right) \cdot x\right) \cdot 2\right) + \left(\left(\frac{1}{3} \cdot x\right) \cdot x\right) \cdot \left(\left(\frac{1}{3} \cdot x\right) \cdot x\right)}\right)}{2}
double f(double x) {
        double r2072132 = x;
        double r2072133 = exp(r2072132);
        double r2072134 = -r2072132;
        double r2072135 = exp(r2072134);
        double r2072136 = r2072133 - r2072135;
        double r2072137 = 2.0;
        double r2072138 = r2072136 / r2072137;
        return r2072138;
}

double f(double x) {
        double r2072139 = x;
        double r2072140 = 5.0;
        double r2072141 = pow(r2072139, r2072140);
        double r2072142 = 0.016666666666666666;
        double r2072143 = r2072139 * r2072139;
        double r2072144 = r2072143 * r2072139;
        double r2072145 = 0.037037037037037035;
        double r2072146 = r2072144 * r2072145;
        double r2072147 = 8.0;
        double r2072148 = fma(r2072146, r2072144, r2072147);
        double r2072149 = r2072148 * r2072139;
        double r2072150 = 4.0;
        double r2072151 = 0.3333333333333333;
        double r2072152 = r2072151 * r2072139;
        double r2072153 = r2072152 * r2072139;
        double r2072154 = 2.0;
        double r2072155 = r2072153 * r2072154;
        double r2072156 = r2072150 - r2072155;
        double r2072157 = r2072153 * r2072153;
        double r2072158 = r2072156 + r2072157;
        double r2072159 = r2072149 / r2072158;
        double r2072160 = fma(r2072141, r2072142, r2072159);
        double r2072161 = 2.0;
        double r2072162 = r2072160 / r2072161;
        return r2072162;
}

Error

Bits error versus x

Derivation

  1. Initial program 58.1

    \[\frac{e^{x} - e^{-x}}{2}\]
  2. Taylor expanded around 0 0.6

    \[\leadsto \frac{\color{blue}{2 \cdot x + \left(\frac{1}{3} \cdot {x}^{3} + \frac{1}{60} \cdot {x}^{5}\right)}}{2}\]
  3. Simplified0.6

    \[\leadsto \frac{\color{blue}{\mathsf{fma}\left({x}^{5}, \frac{1}{60}, x \cdot \left(\left(\frac{1}{3} \cdot x\right) \cdot x + 2\right)\right)}}{2}\]
  4. Using strategy rm
  5. Applied flip3-+0.6

    \[\leadsto \frac{\mathsf{fma}\left({x}^{5}, \frac{1}{60}, x \cdot \color{blue}{\frac{{\left(\left(\frac{1}{3} \cdot x\right) \cdot x\right)}^{3} + {2}^{3}}{\left(\left(\frac{1}{3} \cdot x\right) \cdot x\right) \cdot \left(\left(\frac{1}{3} \cdot x\right) \cdot x\right) + \left(2 \cdot 2 - \left(\left(\frac{1}{3} \cdot x\right) \cdot x\right) \cdot 2\right)}}\right)}{2}\]
  6. Applied associate-*r/0.6

    \[\leadsto \frac{\mathsf{fma}\left({x}^{5}, \frac{1}{60}, \color{blue}{\frac{x \cdot \left({\left(\left(\frac{1}{3} \cdot x\right) \cdot x\right)}^{3} + {2}^{3}\right)}{\left(\left(\frac{1}{3} \cdot x\right) \cdot x\right) \cdot \left(\left(\frac{1}{3} \cdot x\right) \cdot x\right) + \left(2 \cdot 2 - \left(\left(\frac{1}{3} \cdot x\right) \cdot x\right) \cdot 2\right)}}\right)}{2}\]
  7. Simplified0.6

    \[\leadsto \frac{\mathsf{fma}\left({x}^{5}, \frac{1}{60}, \frac{\color{blue}{\mathsf{fma}\left(\left(x \cdot \left(x \cdot x\right)\right) \cdot \frac{1}{27}, x \cdot \left(x \cdot x\right), 8\right) \cdot x}}{\left(\left(\frac{1}{3} \cdot x\right) \cdot x\right) \cdot \left(\left(\frac{1}{3} \cdot x\right) \cdot x\right) + \left(2 \cdot 2 - \left(\left(\frac{1}{3} \cdot x\right) \cdot x\right) \cdot 2\right)}\right)}{2}\]
  8. Final simplification0.6

    \[\leadsto \frac{\mathsf{fma}\left({x}^{5}, \frac{1}{60}, \frac{\mathsf{fma}\left(\left(\left(x \cdot x\right) \cdot x\right) \cdot \frac{1}{27}, \left(x \cdot x\right) \cdot x, 8\right) \cdot x}{\left(4 - \left(\left(\frac{1}{3} \cdot x\right) \cdot x\right) \cdot 2\right) + \left(\left(\frac{1}{3} \cdot x\right) \cdot x\right) \cdot \left(\left(\frac{1}{3} \cdot x\right) \cdot x\right)}\right)}{2}\]

Reproduce

herbie shell --seed 2019172 +o rules:numerics
(FPCore (x)
  :name "Hyperbolic sine"
  (/ (- (exp x) (exp (- x))) 2.0))