Average Error: 29.0 → 0.3
Time: 53.8s
Precision: 64
\[\frac{\left(\left(\left(\left(1 + 0.1049934947 \cdot \left(x \cdot x\right)\right) + 0.0424060604 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0072644182 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0005064034 \cdot \left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0001789971 \cdot \left(\left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)}{\left(\left(\left(\left(\left(1 + 0.7715471019 \cdot \left(x \cdot x\right)\right) + 0.2909738639 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0694555761 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0140005442 \cdot \left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0008327945 \cdot \left(\left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + \left(2 \cdot 0.0001789971\right) \cdot \left(\left(\left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)} \cdot x\]
\[\begin{array}{l} \mathbf{if}\;x \le -1.1349577297696527:\\ \;\;\;\;\frac{0.2514179000665375}{\left(x \cdot x\right) \cdot x} + \left(\frac{0.5}{x} + \frac{0.15298196345929327}{{x}^{5}}\right)\\ \mathbf{elif}\;x \le 1.1391870338076322:\\ \;\;\;\;\mathsf{fma}\left({x}^{5}, 0.265709700396151, x - x \cdot \left(\left(x \cdot x\right) \cdot 0.6665536072\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{0.2514179000665375}{\left(x \cdot x\right) \cdot x} + \left(\frac{0.5}{x} + \frac{0.15298196345929327}{{x}^{5}}\right)\\ \end{array}\]
\frac{\left(\left(\left(\left(1 + 0.1049934947 \cdot \left(x \cdot x\right)\right) + 0.0424060604 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0072644182 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0005064034 \cdot \left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0001789971 \cdot \left(\left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)}{\left(\left(\left(\left(\left(1 + 0.7715471019 \cdot \left(x \cdot x\right)\right) + 0.2909738639 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0694555761 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0140005442 \cdot \left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0008327945 \cdot \left(\left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + \left(2 \cdot 0.0001789971\right) \cdot \left(\left(\left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)} \cdot x
\begin{array}{l}
\mathbf{if}\;x \le -1.1349577297696527:\\
\;\;\;\;\frac{0.2514179000665375}{\left(x \cdot x\right) \cdot x} + \left(\frac{0.5}{x} + \frac{0.15298196345929327}{{x}^{5}}\right)\\

\mathbf{elif}\;x \le 1.1391870338076322:\\
\;\;\;\;\mathsf{fma}\left({x}^{5}, 0.265709700396151, x - x \cdot \left(\left(x \cdot x\right) \cdot 0.6665536072\right)\right)\\

\mathbf{else}:\\
\;\;\;\;\frac{0.2514179000665375}{\left(x \cdot x\right) \cdot x} + \left(\frac{0.5}{x} + \frac{0.15298196345929327}{{x}^{5}}\right)\\

\end{array}
double f(double x) {
        double r6050698 = 1.0;
        double r6050699 = 0.1049934947;
        double r6050700 = x;
        double r6050701 = r6050700 * r6050700;
        double r6050702 = r6050699 * r6050701;
        double r6050703 = r6050698 + r6050702;
        double r6050704 = 0.0424060604;
        double r6050705 = r6050701 * r6050701;
        double r6050706 = r6050704 * r6050705;
        double r6050707 = r6050703 + r6050706;
        double r6050708 = 0.0072644182;
        double r6050709 = r6050705 * r6050701;
        double r6050710 = r6050708 * r6050709;
        double r6050711 = r6050707 + r6050710;
        double r6050712 = 0.0005064034;
        double r6050713 = r6050709 * r6050701;
        double r6050714 = r6050712 * r6050713;
        double r6050715 = r6050711 + r6050714;
        double r6050716 = 0.0001789971;
        double r6050717 = r6050713 * r6050701;
        double r6050718 = r6050716 * r6050717;
        double r6050719 = r6050715 + r6050718;
        double r6050720 = 0.7715471019;
        double r6050721 = r6050720 * r6050701;
        double r6050722 = r6050698 + r6050721;
        double r6050723 = 0.2909738639;
        double r6050724 = r6050723 * r6050705;
        double r6050725 = r6050722 + r6050724;
        double r6050726 = 0.0694555761;
        double r6050727 = r6050726 * r6050709;
        double r6050728 = r6050725 + r6050727;
        double r6050729 = 0.0140005442;
        double r6050730 = r6050729 * r6050713;
        double r6050731 = r6050728 + r6050730;
        double r6050732 = 0.0008327945;
        double r6050733 = r6050732 * r6050717;
        double r6050734 = r6050731 + r6050733;
        double r6050735 = 2.0;
        double r6050736 = r6050735 * r6050716;
        double r6050737 = r6050717 * r6050701;
        double r6050738 = r6050736 * r6050737;
        double r6050739 = r6050734 + r6050738;
        double r6050740 = r6050719 / r6050739;
        double r6050741 = r6050740 * r6050700;
        return r6050741;
}

double f(double x) {
        double r6050742 = x;
        double r6050743 = -1.1349577297696527;
        bool r6050744 = r6050742 <= r6050743;
        double r6050745 = 0.2514179000665375;
        double r6050746 = r6050742 * r6050742;
        double r6050747 = r6050746 * r6050742;
        double r6050748 = r6050745 / r6050747;
        double r6050749 = 0.5;
        double r6050750 = r6050749 / r6050742;
        double r6050751 = 0.15298196345929327;
        double r6050752 = 5.0;
        double r6050753 = pow(r6050742, r6050752);
        double r6050754 = r6050751 / r6050753;
        double r6050755 = r6050750 + r6050754;
        double r6050756 = r6050748 + r6050755;
        double r6050757 = 1.1391870338076322;
        bool r6050758 = r6050742 <= r6050757;
        double r6050759 = 0.265709700396151;
        double r6050760 = 0.6665536072;
        double r6050761 = r6050746 * r6050760;
        double r6050762 = r6050742 * r6050761;
        double r6050763 = r6050742 - r6050762;
        double r6050764 = fma(r6050753, r6050759, r6050763);
        double r6050765 = r6050758 ? r6050764 : r6050756;
        double r6050766 = r6050744 ? r6050756 : r6050765;
        return r6050766;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -1.1349577297696527 or 1.1391870338076322 < x

    1. Initial program 57.7

      \[\frac{\left(\left(\left(\left(1 + 0.1049934947 \cdot \left(x \cdot x\right)\right) + 0.0424060604 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0072644182 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0005064034 \cdot \left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0001789971 \cdot \left(\left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)}{\left(\left(\left(\left(\left(1 + 0.7715471019 \cdot \left(x \cdot x\right)\right) + 0.2909738639 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0694555761 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0140005442 \cdot \left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0008327945 \cdot \left(\left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + \left(2 \cdot 0.0001789971\right) \cdot \left(\left(\left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)} \cdot x\]
    2. Taylor expanded around inf 0.2

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

      \[\leadsto \color{blue}{\left(\frac{0.15298196345929327}{{x}^{5}} + \frac{0.5}{x}\right) + \frac{0.2514179000665375}{\left(x \cdot x\right) \cdot x}}\]

    if -1.1349577297696527 < x < 1.1391870338076322

    1. Initial program 0.0

      \[\frac{\left(\left(\left(\left(1 + 0.1049934947 \cdot \left(x \cdot x\right)\right) + 0.0424060604 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0072644182 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0005064034 \cdot \left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0001789971 \cdot \left(\left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)}{\left(\left(\left(\left(\left(1 + 0.7715471019 \cdot \left(x \cdot x\right)\right) + 0.2909738639 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0694555761 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0140005442 \cdot \left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.0008327945 \cdot \left(\left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + \left(2 \cdot 0.0001789971\right) \cdot \left(\left(\left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)} \cdot x\]
    2. Taylor expanded around 0 0.3

      \[\leadsto \color{blue}{\left(x + 0.265709700396151 \cdot {x}^{5}\right) - 0.6665536072 \cdot {x}^{3}}\]
    3. Simplified0.3

      \[\leadsto \color{blue}{\mathsf{fma}\left({x}^{5}, 0.265709700396151, x - \left(\left(x \cdot x\right) \cdot 0.6665536072\right) \cdot x\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -1.1349577297696527:\\ \;\;\;\;\frac{0.2514179000665375}{\left(x \cdot x\right) \cdot x} + \left(\frac{0.5}{x} + \frac{0.15298196345929327}{{x}^{5}}\right)\\ \mathbf{elif}\;x \le 1.1391870338076322:\\ \;\;\;\;\mathsf{fma}\left({x}^{5}, 0.265709700396151, x - x \cdot \left(\left(x \cdot x\right) \cdot 0.6665536072\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{0.2514179000665375}{\left(x \cdot x\right) \cdot x} + \left(\frac{0.5}{x} + \frac{0.15298196345929327}{{x}^{5}}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019168 +o rules:numerics
(FPCore (x)
  :name "Jmat.Real.dawson"
  (* (/ (+ (+ (+ (+ (+ 1 (* 0.1049934947 (* x x))) (* 0.0424060604 (* (* x x) (* x x)))) (* 0.0072644182 (* (* (* x x) (* x x)) (* x x)))) (* 0.0005064034 (* (* (* (* x x) (* x x)) (* x x)) (* x x)))) (* 0.0001789971 (* (* (* (* (* x x) (* x x)) (* x x)) (* x x)) (* x x)))) (+ (+ (+ (+ (+ (+ 1 (* 0.7715471019 (* x x))) (* 0.2909738639 (* (* x x) (* x x)))) (* 0.0694555761 (* (* (* x x) (* x x)) (* x x)))) (* 0.0140005442 (* (* (* (* x x) (* x x)) (* x x)) (* x x)))) (* 0.0008327945 (* (* (* (* (* x x) (* x x)) (* x x)) (* x x)) (* x x)))) (* (* 2 0.0001789971) (* (* (* (* (* (* x x) (* x x)) (* x x)) (* x x)) (* x x)) (* x x))))) x))