Average Error: 29.5 → 0.3
Time: 1.6m
Precision: 64
\[\frac{\left(\left(\left(\left(1 + 0.1049934946999999951788851149103720672429 \cdot \left(x \cdot x\right)\right) + 0.04240606040000000076517494562722276896238 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.007264418199999999985194687468492702464573 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 5.064034000000000243502107366566633572802 \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.789971000000000009994005623070734145585 \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.7715471018999999763821051601553335785866 \cdot \left(x \cdot x\right)\right) + 0.2909738639000000182122107617033179849386 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.06945557609999999937322456844412954524159 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.01400054419999999938406531896362139377743 \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.327945000000000442749725770852364803432 \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.789971000000000009994005623070734145585 \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.163164485518187740709095123747829347849 \lor \neg \left(x \le 1.130677945347502433293129797675646841526\right):\\ \;\;\;\;\frac{0.2514179000665375252054900556686334311962}{{x}^{3}} + \left(\frac{0.5}{x} + \frac{0.1529819634592932686700805788859724998474}{{x}^{5}}\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\mathsf{fma}\left(0.2657097003961509940062057921750238165259, {x}^{4}, 1\right) - 0.6665536072000000089587956608738750219345 \cdot {x}^{2}\right) \cdot x\\ \end{array}\]
\frac{\left(\left(\left(\left(1 + 0.1049934946999999951788851149103720672429 \cdot \left(x \cdot x\right)\right) + 0.04240606040000000076517494562722276896238 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.007264418199999999985194687468492702464573 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 5.064034000000000243502107366566633572802 \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.789971000000000009994005623070734145585 \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.7715471018999999763821051601553335785866 \cdot \left(x \cdot x\right)\right) + 0.2909738639000000182122107617033179849386 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.06945557609999999937322456844412954524159 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.01400054419999999938406531896362139377743 \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.327945000000000442749725770852364803432 \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.789971000000000009994005623070734145585 \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.163164485518187740709095123747829347849 \lor \neg \left(x \le 1.130677945347502433293129797675646841526\right):\\
\;\;\;\;\frac{0.2514179000665375252054900556686334311962}{{x}^{3}} + \left(\frac{0.5}{x} + \frac{0.1529819634592932686700805788859724998474}{{x}^{5}}\right)\\

\mathbf{else}:\\
\;\;\;\;\left(\mathsf{fma}\left(0.2657097003961509940062057921750238165259, {x}^{4}, 1\right) - 0.6665536072000000089587956608738750219345 \cdot {x}^{2}\right) \cdot x\\

\end{array}
double f(double x) {
        double r221027 = 1.0;
        double r221028 = 0.1049934947;
        double r221029 = x;
        double r221030 = r221029 * r221029;
        double r221031 = r221028 * r221030;
        double r221032 = r221027 + r221031;
        double r221033 = 0.0424060604;
        double r221034 = r221030 * r221030;
        double r221035 = r221033 * r221034;
        double r221036 = r221032 + r221035;
        double r221037 = 0.0072644182;
        double r221038 = r221034 * r221030;
        double r221039 = r221037 * r221038;
        double r221040 = r221036 + r221039;
        double r221041 = 0.0005064034;
        double r221042 = r221038 * r221030;
        double r221043 = r221041 * r221042;
        double r221044 = r221040 + r221043;
        double r221045 = 0.0001789971;
        double r221046 = r221042 * r221030;
        double r221047 = r221045 * r221046;
        double r221048 = r221044 + r221047;
        double r221049 = 0.7715471019;
        double r221050 = r221049 * r221030;
        double r221051 = r221027 + r221050;
        double r221052 = 0.2909738639;
        double r221053 = r221052 * r221034;
        double r221054 = r221051 + r221053;
        double r221055 = 0.0694555761;
        double r221056 = r221055 * r221038;
        double r221057 = r221054 + r221056;
        double r221058 = 0.0140005442;
        double r221059 = r221058 * r221042;
        double r221060 = r221057 + r221059;
        double r221061 = 0.0008327945;
        double r221062 = r221061 * r221046;
        double r221063 = r221060 + r221062;
        double r221064 = 2.0;
        double r221065 = r221064 * r221045;
        double r221066 = r221046 * r221030;
        double r221067 = r221065 * r221066;
        double r221068 = r221063 + r221067;
        double r221069 = r221048 / r221068;
        double r221070 = r221069 * r221029;
        return r221070;
}

double f(double x) {
        double r221071 = x;
        double r221072 = -1.1631644855181877;
        bool r221073 = r221071 <= r221072;
        double r221074 = 1.1306779453475024;
        bool r221075 = r221071 <= r221074;
        double r221076 = !r221075;
        bool r221077 = r221073 || r221076;
        double r221078 = 0.2514179000665375;
        double r221079 = 3.0;
        double r221080 = pow(r221071, r221079);
        double r221081 = r221078 / r221080;
        double r221082 = 0.5;
        double r221083 = r221082 / r221071;
        double r221084 = 0.15298196345929327;
        double r221085 = 5.0;
        double r221086 = pow(r221071, r221085);
        double r221087 = r221084 / r221086;
        double r221088 = r221083 + r221087;
        double r221089 = r221081 + r221088;
        double r221090 = 0.265709700396151;
        double r221091 = 4.0;
        double r221092 = pow(r221071, r221091);
        double r221093 = 1.0;
        double r221094 = fma(r221090, r221092, r221093);
        double r221095 = 0.6665536072;
        double r221096 = 2.0;
        double r221097 = pow(r221071, r221096);
        double r221098 = r221095 * r221097;
        double r221099 = r221094 - r221098;
        double r221100 = r221099 * r221071;
        double r221101 = r221077 ? r221089 : r221100;
        return r221101;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -1.1631644855181877 or 1.1306779453475024 < x

    1. Initial program 58.7

      \[\frac{\left(\left(\left(\left(1 + 0.1049934946999999951788851149103720672429 \cdot \left(x \cdot x\right)\right) + 0.04240606040000000076517494562722276896238 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.007264418199999999985194687468492702464573 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 5.064034000000000243502107366566633572802 \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.789971000000000009994005623070734145585 \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.7715471018999999763821051601553335785866 \cdot \left(x \cdot x\right)\right) + 0.2909738639000000182122107617033179849386 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.06945557609999999937322456844412954524159 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.01400054419999999938406531896362139377743 \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.327945000000000442749725770852364803432 \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.789971000000000009994005623070734145585 \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. Using strategy rm
    3. Applied add-sqr-sqrt58.7

      \[\leadsto \frac{\left(\left(\left(\left(1 + \color{blue}{\left(\sqrt{0.1049934946999999951788851149103720672429} \cdot \sqrt{0.1049934946999999951788851149103720672429}\right)} \cdot \left(x \cdot x\right)\right) + 0.04240606040000000076517494562722276896238 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.007264418199999999985194687468492702464573 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 5.064034000000000243502107366566633572802 \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.789971000000000009994005623070734145585 \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.7715471018999999763821051601553335785866 \cdot \left(x \cdot x\right)\right) + 0.2909738639000000182122107617033179849386 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.06945557609999999937322456844412954524159 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.01400054419999999938406531896362139377743 \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.327945000000000442749725770852364803432 \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.789971000000000009994005623070734145585 \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\]
    4. Applied unswap-sqr58.7

      \[\leadsto \frac{\left(\left(\left(\left(1 + \color{blue}{\left(\sqrt{0.1049934946999999951788851149103720672429} \cdot x\right) \cdot \left(\sqrt{0.1049934946999999951788851149103720672429} \cdot x\right)}\right) + 0.04240606040000000076517494562722276896238 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.007264418199999999985194687468492702464573 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 5.064034000000000243502107366566633572802 \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.789971000000000009994005623070734145585 \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.7715471018999999763821051601553335785866 \cdot \left(x \cdot x\right)\right) + 0.2909738639000000182122107617033179849386 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.06945557609999999937322456844412954524159 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.01400054419999999938406531896362139377743 \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.327945000000000442749725770852364803432 \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.789971000000000009994005623070734145585 \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\]
    5. Taylor expanded around inf 0.2

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

      \[\leadsto \color{blue}{\frac{0.2514179000665375252054900556686334311962}{{x}^{3}} + \left(\frac{0.5}{x} + \frac{0.1529819634592932686700805788859724998474}{{x}^{5}}\right)}\]

    if -1.1631644855181877 < x < 1.1306779453475024

    1. Initial program 0.0

      \[\frac{\left(\left(\left(\left(1 + 0.1049934946999999951788851149103720672429 \cdot \left(x \cdot x\right)\right) + 0.04240606040000000076517494562722276896238 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.007264418199999999985194687468492702464573 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 5.064034000000000243502107366566633572802 \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.789971000000000009994005623070734145585 \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.7715471018999999763821051601553335785866 \cdot \left(x \cdot x\right)\right) + 0.2909738639000000182122107617033179849386 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.06945557609999999937322456844412954524159 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.01400054419999999938406531896362139377743 \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.327945000000000442749725770852364803432 \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.789971000000000009994005623070734145585 \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.3

      \[\leadsto \color{blue}{\left(\left(0.2657097003961509940062057921750238165259 \cdot {x}^{4} + 1\right) - 0.6665536072000000089587956608738750219345 \cdot {x}^{2}\right)} \cdot x\]
    3. Simplified0.3

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -1.163164485518187740709095123747829347849 \lor \neg \left(x \le 1.130677945347502433293129797675646841526\right):\\ \;\;\;\;\frac{0.2514179000665375252054900556686334311962}{{x}^{3}} + \left(\frac{0.5}{x} + \frac{0.1529819634592932686700805788859724998474}{{x}^{5}}\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\mathsf{fma}\left(0.2657097003961509940062057921750238165259, {x}^{4}, 1\right) - 0.6665536072000000089587956608738750219345 \cdot {x}^{2}\right) \cdot x\\ \end{array}\]

Reproduce

herbie shell --seed 2019212 +o rules:numerics
(FPCore (x)
  :name "Jmat.Real.dawson"
  :precision binary64
  (* (/ (+ (+ (+ (+ (+ 1 (* 0.1049934947 (* x x))) (* 0.042406060400000001 (* (* x x) (* x x)))) (* 0.00726441819999999999 (* (* (* x x) (* x x)) (* x x)))) (* 5.0640340000000002e-4 (* (* (* (* x x) (* x x)) (* x x)) (* x x)))) (* 1.789971e-4 (* (* (* (* (* x x) (* x x)) (* x x)) (* x x)) (* x x)))) (+ (+ (+ (+ (+ (+ 1 (* 0.77154710189999998 (* x x))) (* 0.29097386390000002 (* (* x x) (* x x)))) (* 0.069455576099999999 (* (* (* x x) (* x x)) (* x x)))) (* 0.014000544199999999 (* (* (* (* x x) (* x x)) (* x x)) (* x x)))) (* 8.32794500000000044e-4 (* (* (* (* (* x x) (* x x)) (* x x)) (* x x)) (* x x)))) (* (* 2 1.789971e-4) (* (* (* (* (* (* x x) (* x x)) (* x x)) (* x x)) (* x x)) (* x x))))) x))