Average Error: 29.9 → 0.3
Time: 31.5s
Precision: 64
\[\frac{\left(\left(\left(\left(1 + 0.1049934947 \cdot \left(x \cdot x\right)\right) + 0.042406060400000001 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.00726441819999999999 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 5.0640340000000002 \cdot 10^{-4} \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) + 1.789971 \cdot 10^{-4} \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.77154710189999998 \cdot \left(x \cdot x\right)\right) + 0.29097386390000002 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.069455576099999999 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.014000544199999999 \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) + 8.32794500000000044 \cdot 10^{-4} \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 1.789971 \cdot 10^{-4}\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.1633699203691767 \lor \neg \left(x \le 1.14913787002183088\right):\\ \;\;\;\;\mathsf{fma}\left(0.25141790006653753, \frac{1}{{x}^{3}}, \mathsf{fma}\left(0.1529819634592933, \frac{1}{{x}^{5}}, 0.5 \cdot \frac{1}{x}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(x, 1, 0.265709700396150994 \cdot {x}^{5} - 0.66655360720000001 \cdot {x}^{3}\right)\\ \end{array}\]
\frac{\left(\left(\left(\left(1 + 0.1049934947 \cdot \left(x \cdot x\right)\right) + 0.042406060400000001 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.00726441819999999999 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 5.0640340000000002 \cdot 10^{-4} \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) + 1.789971 \cdot 10^{-4} \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.77154710189999998 \cdot \left(x \cdot x\right)\right) + 0.29097386390000002 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.069455576099999999 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.014000544199999999 \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) + 8.32794500000000044 \cdot 10^{-4} \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 1.789971 \cdot 10^{-4}\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.1633699203691767 \lor \neg \left(x \le 1.14913787002183088\right):\\
\;\;\;\;\mathsf{fma}\left(0.25141790006653753, \frac{1}{{x}^{3}}, \mathsf{fma}\left(0.1529819634592933, \frac{1}{{x}^{5}}, 0.5 \cdot \frac{1}{x}\right)\right)\\

\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(x, 1, 0.265709700396150994 \cdot {x}^{5} - 0.66655360720000001 \cdot {x}^{3}\right)\\

\end{array}
double f(double x) {
        double r231097 = 1.0;
        double r231098 = 0.1049934947;
        double r231099 = x;
        double r231100 = r231099 * r231099;
        double r231101 = r231098 * r231100;
        double r231102 = r231097 + r231101;
        double r231103 = 0.0424060604;
        double r231104 = r231100 * r231100;
        double r231105 = r231103 * r231104;
        double r231106 = r231102 + r231105;
        double r231107 = 0.0072644182;
        double r231108 = r231104 * r231100;
        double r231109 = r231107 * r231108;
        double r231110 = r231106 + r231109;
        double r231111 = 0.0005064034;
        double r231112 = r231108 * r231100;
        double r231113 = r231111 * r231112;
        double r231114 = r231110 + r231113;
        double r231115 = 0.0001789971;
        double r231116 = r231112 * r231100;
        double r231117 = r231115 * r231116;
        double r231118 = r231114 + r231117;
        double r231119 = 0.7715471019;
        double r231120 = r231119 * r231100;
        double r231121 = r231097 + r231120;
        double r231122 = 0.2909738639;
        double r231123 = r231122 * r231104;
        double r231124 = r231121 + r231123;
        double r231125 = 0.0694555761;
        double r231126 = r231125 * r231108;
        double r231127 = r231124 + r231126;
        double r231128 = 0.0140005442;
        double r231129 = r231128 * r231112;
        double r231130 = r231127 + r231129;
        double r231131 = 0.0008327945;
        double r231132 = r231131 * r231116;
        double r231133 = r231130 + r231132;
        double r231134 = 2.0;
        double r231135 = r231134 * r231115;
        double r231136 = r231116 * r231100;
        double r231137 = r231135 * r231136;
        double r231138 = r231133 + r231137;
        double r231139 = r231118 / r231138;
        double r231140 = r231139 * r231099;
        return r231140;
}

double f(double x) {
        double r231141 = x;
        double r231142 = -1.1633699203691767;
        bool r231143 = r231141 <= r231142;
        double r231144 = 1.1491378700218309;
        bool r231145 = r231141 <= r231144;
        double r231146 = !r231145;
        bool r231147 = r231143 || r231146;
        double r231148 = 0.2514179000665375;
        double r231149 = 1.0;
        double r231150 = 3.0;
        double r231151 = pow(r231141, r231150);
        double r231152 = r231149 / r231151;
        double r231153 = 0.15298196345929327;
        double r231154 = 5.0;
        double r231155 = pow(r231141, r231154);
        double r231156 = r231149 / r231155;
        double r231157 = 0.5;
        double r231158 = r231149 / r231141;
        double r231159 = r231157 * r231158;
        double r231160 = fma(r231153, r231156, r231159);
        double r231161 = fma(r231148, r231152, r231160);
        double r231162 = 1.0;
        double r231163 = 0.265709700396151;
        double r231164 = r231163 * r231155;
        double r231165 = 0.6665536072;
        double r231166 = r231165 * r231151;
        double r231167 = r231164 - r231166;
        double r231168 = fma(r231141, r231162, r231167);
        double r231169 = r231147 ? r231161 : r231168;
        return r231169;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -1.1633699203691767 or 1.1491378700218309 < x

    1. Initial program 58.5

      \[\frac{\left(\left(\left(\left(1 + 0.1049934947 \cdot \left(x \cdot x\right)\right) + 0.042406060400000001 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.00726441819999999999 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 5.0640340000000002 \cdot 10^{-4} \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) + 1.789971 \cdot 10^{-4} \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.77154710189999998 \cdot \left(x \cdot x\right)\right) + 0.29097386390000002 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.069455576099999999 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.014000544199999999 \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) + 8.32794500000000044 \cdot 10^{-4} \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 1.789971 \cdot 10^{-4}\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.3

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

      \[\leadsto \color{blue}{\mathsf{fma}\left(0.25141790006653753, \frac{1}{{x}^{3}}, \mathsf{fma}\left(0.1529819634592933, \frac{1}{{x}^{5}}, 0.5 \cdot \frac{1}{x}\right)\right)}\]

    if -1.1633699203691767 < x < 1.1491378700218309

    1. Initial program 0.0

      \[\frac{\left(\left(\left(\left(1 + 0.1049934947 \cdot \left(x \cdot x\right)\right) + 0.042406060400000001 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.00726441819999999999 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 5.0640340000000002 \cdot 10^{-4} \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) + 1.789971 \cdot 10^{-4} \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.77154710189999998 \cdot \left(x \cdot x\right)\right) + 0.29097386390000002 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.069455576099999999 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.014000544199999999 \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) + 8.32794500000000044 \cdot 10^{-4} \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 1.789971 \cdot 10^{-4}\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.2

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -1.1633699203691767 \lor \neg \left(x \le 1.14913787002183088\right):\\ \;\;\;\;\mathsf{fma}\left(0.25141790006653753, \frac{1}{{x}^{3}}, \mathsf{fma}\left(0.1529819634592933, \frac{1}{{x}^{5}}, 0.5 \cdot \frac{1}{x}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(x, 1, 0.265709700396150994 \cdot {x}^{5} - 0.66655360720000001 \cdot {x}^{3}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2020060 +o rules:numerics
(FPCore (x)
  :name "Jmat.Real.dawson"
  :precision binary64
  (* (/ (+ (+ (+ (+ (+ 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))