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

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

\end{array}
double f(double x) {
        double r8951664 = x;
        double r8951665 = exp(r8951664);
        double r8951666 = -r8951664;
        double r8951667 = exp(r8951666);
        double r8951668 = r8951665 - r8951667;
        double r8951669 = 2.0;
        double r8951670 = r8951668 / r8951669;
        return r8951670;
}

double f(double x) {
        double r8951671 = x;
        double r8951672 = -0.014551332296984472;
        bool r8951673 = r8951671 <= r8951672;
        double r8951674 = exp(r8951671);
        double r8951675 = 3.0;
        double r8951676 = pow(r8951674, r8951675);
        double r8951677 = -r8951671;
        double r8951678 = exp(r8951677);
        double r8951679 = pow(r8951678, r8951675);
        double r8951680 = r8951676 - r8951679;
        double r8951681 = r8951674 * r8951678;
        double r8951682 = r8951678 * r8951678;
        double r8951683 = r8951681 + r8951682;
        double r8951684 = r8951674 * r8951674;
        double r8951685 = r8951683 + r8951684;
        double r8951686 = r8951680 / r8951685;
        double r8951687 = 2.0;
        double r8951688 = r8951686 / r8951687;
        double r8951689 = 5.0;
        double r8951690 = pow(r8951671, r8951689);
        double r8951691 = 0.016666666666666666;
        double r8951692 = r8951690 * r8951691;
        double r8951693 = r8951671 * r8951687;
        double r8951694 = 0.3333333333333333;
        double r8951695 = r8951671 * r8951694;
        double r8951696 = r8951671 * r8951695;
        double r8951697 = r8951671 * r8951696;
        double r8951698 = r8951693 + r8951697;
        double r8951699 = r8951692 + r8951698;
        double r8951700 = r8951699 / r8951687;
        double r8951701 = r8951673 ? r8951688 : r8951700;
        return r8951701;
}

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.014551332296984472

    1. Initial program 0.4

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

      \[\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}\]

    if -0.014551332296984472 < x

    1. Initial program 58.5

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

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

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

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

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

Reproduce

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