Average Error: 29.8 → 0.4
Time: 27.3s
Precision: 64
\[\left(e^{x} - 2\right) + e^{-x}\]
\[\begin{array}{l} \mathbf{if}\;x \le 0.03079641647625869921300889586746052373201:\\ \;\;\;\;{x}^{2} + \left(\frac{1}{360} \cdot {x}^{6} + \frac{1}{12} \cdot {x}^{4}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(\left({\left(e^{x}\right)}^{3} - {2}^{3}\right) \cdot \left(e^{x} - 2\right)\right) \cdot \left(e^{x} \cdot e^{x}\right) - \left(e^{x} \cdot e^{x} + \left(2 \cdot 2 + e^{x} \cdot 2\right)\right) \cdot \left(1 \cdot e^{0}\right)}{\left(\left(e^{x} - \left(e^{-x} + 2\right)\right) \cdot \left(2 \cdot \left(2 + e^{x}\right) + {\left(e^{x}\right)}^{2}\right)\right) \cdot {\left(e^{x}\right)}^{2}}\\ \end{array}\]
\left(e^{x} - 2\right) + e^{-x}
\begin{array}{l}
\mathbf{if}\;x \le 0.03079641647625869921300889586746052373201:\\
\;\;\;\;{x}^{2} + \left(\frac{1}{360} \cdot {x}^{6} + \frac{1}{12} \cdot {x}^{4}\right)\\

\mathbf{else}:\\
\;\;\;\;\frac{\left(\left({\left(e^{x}\right)}^{3} - {2}^{3}\right) \cdot \left(e^{x} - 2\right)\right) \cdot \left(e^{x} \cdot e^{x}\right) - \left(e^{x} \cdot e^{x} + \left(2 \cdot 2 + e^{x} \cdot 2\right)\right) \cdot \left(1 \cdot e^{0}\right)}{\left(\left(e^{x} - \left(e^{-x} + 2\right)\right) \cdot \left(2 \cdot \left(2 + e^{x}\right) + {\left(e^{x}\right)}^{2}\right)\right) \cdot {\left(e^{x}\right)}^{2}}\\

\end{array}
double f(double x) {
        double r78657 = x;
        double r78658 = exp(r78657);
        double r78659 = 2.0;
        double r78660 = r78658 - r78659;
        double r78661 = -r78657;
        double r78662 = exp(r78661);
        double r78663 = r78660 + r78662;
        return r78663;
}

double f(double x) {
        double r78664 = x;
        double r78665 = 0.0307964164762587;
        bool r78666 = r78664 <= r78665;
        double r78667 = 2.0;
        double r78668 = pow(r78664, r78667);
        double r78669 = 0.002777777777777778;
        double r78670 = 6.0;
        double r78671 = pow(r78664, r78670);
        double r78672 = r78669 * r78671;
        double r78673 = 0.08333333333333333;
        double r78674 = 4.0;
        double r78675 = pow(r78664, r78674);
        double r78676 = r78673 * r78675;
        double r78677 = r78672 + r78676;
        double r78678 = r78668 + r78677;
        double r78679 = exp(r78664);
        double r78680 = 3.0;
        double r78681 = pow(r78679, r78680);
        double r78682 = 2.0;
        double r78683 = pow(r78682, r78680);
        double r78684 = r78681 - r78683;
        double r78685 = r78679 - r78682;
        double r78686 = r78684 * r78685;
        double r78687 = r78679 * r78679;
        double r78688 = r78686 * r78687;
        double r78689 = r78682 * r78682;
        double r78690 = r78679 * r78682;
        double r78691 = r78689 + r78690;
        double r78692 = r78687 + r78691;
        double r78693 = 1.0;
        double r78694 = 0.0;
        double r78695 = exp(r78694);
        double r78696 = r78693 * r78695;
        double r78697 = r78692 * r78696;
        double r78698 = r78688 - r78697;
        double r78699 = -r78664;
        double r78700 = exp(r78699);
        double r78701 = r78700 + r78682;
        double r78702 = r78679 - r78701;
        double r78703 = r78682 + r78679;
        double r78704 = r78682 * r78703;
        double r78705 = pow(r78679, r78667);
        double r78706 = r78704 + r78705;
        double r78707 = r78702 * r78706;
        double r78708 = r78707 * r78705;
        double r78709 = r78698 / r78708;
        double r78710 = r78666 ? r78678 : r78709;
        return r78710;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original29.8
Target0.0
Herbie0.4
\[4 \cdot {\left(\sinh \left(\frac{x}{2}\right)\right)}^{2}\]

Derivation

  1. Split input into 2 regimes
  2. if x < 0.0307964164762587

    1. Initial program 30.0

      \[\left(e^{x} - 2\right) + e^{-x}\]
    2. Taylor expanded around 0 0.4

      \[\leadsto \color{blue}{{x}^{2} + \left(\frac{1}{360} \cdot {x}^{6} + \frac{1}{12} \cdot {x}^{4}\right)}\]

    if 0.0307964164762587 < x

    1. Initial program 1.2

      \[\left(e^{x} - 2\right) + e^{-x}\]
    2. Using strategy rm
    3. Applied flip-+3.4

      \[\leadsto \color{blue}{\frac{\left(e^{x} - 2\right) \cdot \left(e^{x} - 2\right) - e^{-x} \cdot e^{-x}}{\left(e^{x} - 2\right) - e^{-x}}}\]
    4. Using strategy rm
    5. Applied neg-sub03.4

      \[\leadsto \frac{\left(e^{x} - 2\right) \cdot \left(e^{x} - 2\right) - e^{-x} \cdot e^{\color{blue}{0 - x}}}{\left(e^{x} - 2\right) - e^{-x}}\]
    6. Applied exp-diff3.2

      \[\leadsto \frac{\left(e^{x} - 2\right) \cdot \left(e^{x} - 2\right) - e^{-x} \cdot \color{blue}{\frac{e^{0}}{e^{x}}}}{\left(e^{x} - 2\right) - e^{-x}}\]
    7. Applied exp-neg3.4

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

      \[\leadsto \frac{\left(e^{x} - 2\right) \cdot \left(e^{x} - 2\right) - \color{blue}{\frac{1 \cdot e^{0}}{e^{x} \cdot e^{x}}}}{\left(e^{x} - 2\right) - e^{-x}}\]
    9. Applied flip3--4.7

      \[\leadsto \frac{\color{blue}{\frac{{\left(e^{x}\right)}^{3} - {2}^{3}}{e^{x} \cdot e^{x} + \left(2 \cdot 2 + e^{x} \cdot 2\right)}} \cdot \left(e^{x} - 2\right) - \frac{1 \cdot e^{0}}{e^{x} \cdot e^{x}}}{\left(e^{x} - 2\right) - e^{-x}}\]
    10. Applied associate-*l/8.3

      \[\leadsto \frac{\color{blue}{\frac{\left({\left(e^{x}\right)}^{3} - {2}^{3}\right) \cdot \left(e^{x} - 2\right)}{e^{x} \cdot e^{x} + \left(2 \cdot 2 + e^{x} \cdot 2\right)}} - \frac{1 \cdot e^{0}}{e^{x} \cdot e^{x}}}{\left(e^{x} - 2\right) - e^{-x}}\]
    11. Applied frac-sub9.5

      \[\leadsto \frac{\color{blue}{\frac{\left(\left({\left(e^{x}\right)}^{3} - {2}^{3}\right) \cdot \left(e^{x} - 2\right)\right) \cdot \left(e^{x} \cdot e^{x}\right) - \left(e^{x} \cdot e^{x} + \left(2 \cdot 2 + e^{x} \cdot 2\right)\right) \cdot \left(1 \cdot e^{0}\right)}{\left(e^{x} \cdot e^{x} + \left(2 \cdot 2 + e^{x} \cdot 2\right)\right) \cdot \left(e^{x} \cdot e^{x}\right)}}}{\left(e^{x} - 2\right) - e^{-x}}\]
    12. Applied associate-/l/9.5

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le 0.03079641647625869921300889586746052373201:\\ \;\;\;\;{x}^{2} + \left(\frac{1}{360} \cdot {x}^{6} + \frac{1}{12} \cdot {x}^{4}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(\left({\left(e^{x}\right)}^{3} - {2}^{3}\right) \cdot \left(e^{x} - 2\right)\right) \cdot \left(e^{x} \cdot e^{x}\right) - \left(e^{x} \cdot e^{x} + \left(2 \cdot 2 + e^{x} \cdot 2\right)\right) \cdot \left(1 \cdot e^{0}\right)}{\left(\left(e^{x} - \left(e^{-x} + 2\right)\right) \cdot \left(2 \cdot \left(2 + e^{x}\right) + {\left(e^{x}\right)}^{2}\right)\right) \cdot {\left(e^{x}\right)}^{2}}\\ \end{array}\]

Reproduce

herbie shell --seed 2019291 
(FPCore (x)
  :name "exp2 (problem 3.3.7)"
  :precision binary64

  :herbie-target
  (* 4 (pow (sinh (/ x 2)) 2))

  (+ (- (exp x) 2) (exp (- x))))