Average Error: 29.5 → 0.3
Time: 1.1m
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.1681432100080749:\\ \;\;\;\;\frac{0.15298196345929327}{\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot x} + \left(\frac{0.5}{x} + \frac{0.2514179000665375}{\left(x \cdot x\right) \cdot x}\right)\\ \mathbf{elif}\;x \le 1.151292592807526:\\ \;\;\;\;x \cdot \mathsf{fma}\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right), 0.265709700396151, 1 - \left(x \cdot x\right) \cdot 0.6665536072\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{0.15298196345929327}{\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot x} + \left(\frac{0.5}{x} + \frac{0.2514179000665375}{\left(x \cdot x\right) \cdot x}\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.1681432100080749:\\
\;\;\;\;\frac{0.15298196345929327}{\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot x} + \left(\frac{0.5}{x} + \frac{0.2514179000665375}{\left(x \cdot x\right) \cdot x}\right)\\

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

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

\end{array}
double f(double x) {
        double r7791385 = 1.0;
        double r7791386 = 0.1049934947;
        double r7791387 = x;
        double r7791388 = r7791387 * r7791387;
        double r7791389 = r7791386 * r7791388;
        double r7791390 = r7791385 + r7791389;
        double r7791391 = 0.0424060604;
        double r7791392 = r7791388 * r7791388;
        double r7791393 = r7791391 * r7791392;
        double r7791394 = r7791390 + r7791393;
        double r7791395 = 0.0072644182;
        double r7791396 = r7791392 * r7791388;
        double r7791397 = r7791395 * r7791396;
        double r7791398 = r7791394 + r7791397;
        double r7791399 = 0.0005064034;
        double r7791400 = r7791396 * r7791388;
        double r7791401 = r7791399 * r7791400;
        double r7791402 = r7791398 + r7791401;
        double r7791403 = 0.0001789971;
        double r7791404 = r7791400 * r7791388;
        double r7791405 = r7791403 * r7791404;
        double r7791406 = r7791402 + r7791405;
        double r7791407 = 0.7715471019;
        double r7791408 = r7791407 * r7791388;
        double r7791409 = r7791385 + r7791408;
        double r7791410 = 0.2909738639;
        double r7791411 = r7791410 * r7791392;
        double r7791412 = r7791409 + r7791411;
        double r7791413 = 0.0694555761;
        double r7791414 = r7791413 * r7791396;
        double r7791415 = r7791412 + r7791414;
        double r7791416 = 0.0140005442;
        double r7791417 = r7791416 * r7791400;
        double r7791418 = r7791415 + r7791417;
        double r7791419 = 0.0008327945;
        double r7791420 = r7791419 * r7791404;
        double r7791421 = r7791418 + r7791420;
        double r7791422 = 2.0;
        double r7791423 = r7791422 * r7791403;
        double r7791424 = r7791404 * r7791388;
        double r7791425 = r7791423 * r7791424;
        double r7791426 = r7791421 + r7791425;
        double r7791427 = r7791406 / r7791426;
        double r7791428 = r7791427 * r7791387;
        return r7791428;
}

double f(double x) {
        double r7791429 = x;
        double r7791430 = -1.1681432100080749;
        bool r7791431 = r7791429 <= r7791430;
        double r7791432 = 0.15298196345929327;
        double r7791433 = r7791429 * r7791429;
        double r7791434 = r7791433 * r7791433;
        double r7791435 = r7791434 * r7791429;
        double r7791436 = r7791432 / r7791435;
        double r7791437 = 0.5;
        double r7791438 = r7791437 / r7791429;
        double r7791439 = 0.2514179000665375;
        double r7791440 = r7791433 * r7791429;
        double r7791441 = r7791439 / r7791440;
        double r7791442 = r7791438 + r7791441;
        double r7791443 = r7791436 + r7791442;
        double r7791444 = 1.151292592807526;
        bool r7791445 = r7791429 <= r7791444;
        double r7791446 = 0.265709700396151;
        double r7791447 = 1.0;
        double r7791448 = 0.6665536072;
        double r7791449 = r7791433 * r7791448;
        double r7791450 = r7791447 - r7791449;
        double r7791451 = fma(r7791434, r7791446, r7791450);
        double r7791452 = r7791429 * r7791451;
        double r7791453 = r7791445 ? r7791452 : r7791443;
        double r7791454 = r7791431 ? r7791443 : r7791453;
        return r7791454;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -1.1681432100080749 or 1.151292592807526 < x

    1. Initial program 58.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. Using strategy rm
    3. Applied *-un-lft-identity58.0

      \[\leadsto \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 \color{blue}{\left(1 \cdot x\right)}\]
    4. Applied associate-*r*58.0

      \[\leadsto \color{blue}{\left(\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 1\right) \cdot x}\]
    5. Simplified58.0

      \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(0.0001789971 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right), x \cdot x, \mathsf{fma}\left(0.0005064034, \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right), \mathsf{fma}\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot 0.0072644182, x \cdot x, \mathsf{fma}\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right), 0.0424060604, \mathsf{fma}\left(0.1049934947, x \cdot x, 1\right)\right)\right)\right)\right)}{\mathsf{fma}\left(2 \cdot 0.0001789971, \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right), \mathsf{fma}\left(0.0008327945 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right), x \cdot x, \mathsf{fma}\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right), 0.0140005442, \mathsf{fma}\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right), 0.0694555761, \mathsf{fma}\left(0.2909738639, \left(x \cdot x\right) \cdot \left(x \cdot x\right), \mathsf{fma}\left(0.7715471019, x \cdot x, 1\right)\right)\right)\right)\right)\right)}} \cdot x\]
    6. 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)}\]
    7. Simplified0.2

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

    if -1.1681432100080749 < x < 1.151292592807526

    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(\left(0.265709700396151 \cdot {x}^{4} + 1\right) - 0.6665536072 \cdot {x}^{2}\right)} \cdot x\]
    3. Simplified0.3

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

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

Reproduce

herbie shell --seed 2019139 +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))