Average Error: 58.1 → 0.3
Time: 22.6s
Precision: 64
\[\frac{e^{x} - e^{-x}}{2}\]
\[\begin{array}{l} \mathbf{if}\;x \le -0.01288229977934218090096507580710749607533:\\ \;\;\;\;\frac{\frac{e^{x} - e^{-x}}{\left(e^{x + x} + e^{-\left(x + x\right)}\right) + 1} \cdot \left(\left(e^{-2 \cdot x} + e^{x + \left(-x\right)}\right) + e^{x + x}\right)}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(\frac{1}{3} \cdot {x}^{3} + \frac{1}{60} \cdot {x}^{5}\right) + 2 \cdot x}{2}\\ \end{array}\]
\frac{e^{x} - e^{-x}}{2}
\begin{array}{l}
\mathbf{if}\;x \le -0.01288229977934218090096507580710749607533:\\
\;\;\;\;\frac{\frac{e^{x} - e^{-x}}{\left(e^{x + x} + e^{-\left(x + x\right)}\right) + 1} \cdot \left(\left(e^{-2 \cdot x} + e^{x + \left(-x\right)}\right) + e^{x + x}\right)}{2}\\

\mathbf{else}:\\
\;\;\;\;\frac{\left(\frac{1}{3} \cdot {x}^{3} + \frac{1}{60} \cdot {x}^{5}\right) + 2 \cdot x}{2}\\

\end{array}
double f(double x) {
        double r44480 = x;
        double r44481 = exp(r44480);
        double r44482 = -r44480;
        double r44483 = exp(r44482);
        double r44484 = r44481 - r44483;
        double r44485 = 2.0;
        double r44486 = r44484 / r44485;
        return r44486;
}

double f(double x) {
        double r44487 = x;
        double r44488 = -0.012882299779342181;
        bool r44489 = r44487 <= r44488;
        double r44490 = exp(r44487);
        double r44491 = -r44487;
        double r44492 = exp(r44491);
        double r44493 = r44490 - r44492;
        double r44494 = r44487 + r44487;
        double r44495 = exp(r44494);
        double r44496 = -r44494;
        double r44497 = exp(r44496);
        double r44498 = r44495 + r44497;
        double r44499 = 1.0;
        double r44500 = r44498 + r44499;
        double r44501 = r44493 / r44500;
        double r44502 = -2.0;
        double r44503 = r44502 * r44487;
        double r44504 = exp(r44503);
        double r44505 = r44487 + r44491;
        double r44506 = exp(r44505);
        double r44507 = r44504 + r44506;
        double r44508 = r44507 + r44495;
        double r44509 = r44501 * r44508;
        double r44510 = 2.0;
        double r44511 = r44509 / r44510;
        double r44512 = 0.3333333333333333;
        double r44513 = 3.0;
        double r44514 = pow(r44487, r44513);
        double r44515 = r44512 * r44514;
        double r44516 = 0.016666666666666666;
        double r44517 = 5.0;
        double r44518 = pow(r44487, r44517);
        double r44519 = r44516 * r44518;
        double r44520 = r44515 + r44519;
        double r44521 = 2.0;
        double r44522 = r44521 * r44487;
        double r44523 = r44520 + r44522;
        double r44524 = r44523 / r44510;
        double r44525 = r44489 ? r44511 : r44524;
        return r44525;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if x < -0.012882299779342181

    1. Initial program 0.8

      \[\frac{e^{x} - e^{-x}}{2}\]
    2. Using strategy rm
    3. Applied flip3--6.4

      \[\leadsto \frac{\color{blue}{\frac{{\left(e^{x}\right)}^{3} - {\left(e^{-x}\right)}^{3}}{e^{x} \cdot e^{x} + \left(e^{-x} \cdot e^{-x} + e^{x} \cdot e^{-x}\right)}}}{2}\]
    4. Simplified6.6

      \[\leadsto \frac{\frac{{\left(e^{x}\right)}^{3} - {\left(e^{-x}\right)}^{3}}{\color{blue}{\left(e^{x + x} + e^{-\left(x + x\right)}\right) + 1}}}{2}\]
    5. Using strategy rm
    6. Applied *-un-lft-identity6.6

      \[\leadsto \frac{\frac{{\left(e^{x}\right)}^{3} - {\left(e^{-x}\right)}^{3}}{\color{blue}{1 \cdot \left(\left(e^{x + x} + e^{-\left(x + x\right)}\right) + 1\right)}}}{2}\]
    7. Applied difference-cubes6.6

      \[\leadsto \frac{\frac{\color{blue}{\left(e^{x} \cdot e^{x} + \left(e^{-x} \cdot e^{-x} + e^{x} \cdot e^{-x}\right)\right) \cdot \left(e^{x} - e^{-x}\right)}}{1 \cdot \left(\left(e^{x + x} + e^{-\left(x + x\right)}\right) + 1\right)}}{2}\]
    8. Applied times-frac5.5

      \[\leadsto \frac{\color{blue}{\frac{e^{x} \cdot e^{x} + \left(e^{-x} \cdot e^{-x} + e^{x} \cdot e^{-x}\right)}{1} \cdot \frac{e^{x} - e^{-x}}{\left(e^{x + x} + e^{-\left(x + x\right)}\right) + 1}}}{2}\]
    9. Simplified5.2

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

    if -0.012882299779342181 < x

    1. Initial program 58.6

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

      \[\leadsto \frac{\color{blue}{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}}{2}\]
    3. Using strategy rm
    4. Applied associate-+r+0.3

      \[\leadsto \frac{\color{blue}{\left(\frac{1}{3} \cdot {x}^{3} + \frac{1}{60} \cdot {x}^{5}\right) + 2 \cdot x}}{2}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -0.01288229977934218090096507580710749607533:\\ \;\;\;\;\frac{\frac{e^{x} - e^{-x}}{\left(e^{x + x} + e^{-\left(x + x\right)}\right) + 1} \cdot \left(\left(e^{-2 \cdot x} + e^{x + \left(-x\right)}\right) + e^{x + x}\right)}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(\frac{1}{3} \cdot {x}^{3} + \frac{1}{60} \cdot {x}^{5}\right) + 2 \cdot x}{2}\\ \end{array}\]

Reproduce

herbie shell --seed 2019323 
(FPCore (x)
  :name "Hyperbolic sine"
  :precision binary64
  (/ (- (exp x) (exp (- x))) 2))