\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 -501057778295.11584:\\
\;\;\;\;\frac{0.5}{x} + \left(\frac{0.15298196345929327}{x \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)} + \frac{0.2514179000665375}{\left(x \cdot x\right) \cdot x}\right)\\
\mathbf{elif}\;x \le 791.7342703704438:\\
\;\;\;\;\sqrt{\mathsf{fma}\left(x \cdot x, \left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) \cdot \left(0.0005064034 + \left(x \cdot x\right) \cdot 0.0001789971\right), \mathsf{fma}\left(0.0072644182, \left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right), \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)} \cdot \left(x \cdot \left(\frac{1}{\mathsf{fma}\left(0.0001789971 \cdot 2, \left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) \cdot \left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right), \mathsf{fma}\left(x \cdot x, \left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) \cdot \left(0.0140005442 + \left(x \cdot x\right) \cdot 0.0008327945\right), \mathsf{fma}\left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right), 0.0694555761, \mathsf{fma}\left(0.2909738639, \left(x \cdot x\right) \cdot \left(x \cdot x\right), \mathsf{fma}\left(x \cdot x, 0.7715471019, 1\right)\right)\right)\right)\right)} \cdot \sqrt{\mathsf{fma}\left(x \cdot x, \left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) \cdot \left(0.0005064034 + \left(x \cdot x\right) \cdot 0.0001789971\right), \mathsf{fma}\left(0.0072644182, \left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right), \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)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{0.5}{x} + \left(\frac{0.15298196345929327}{x \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)} + \frac{0.2514179000665375}{\left(x \cdot x\right) \cdot x}\right)\\
\end{array}double f(double x) {
double r2908424 = 1.0;
double r2908425 = 0.1049934947;
double r2908426 = x;
double r2908427 = r2908426 * r2908426;
double r2908428 = r2908425 * r2908427;
double r2908429 = r2908424 + r2908428;
double r2908430 = 0.0424060604;
double r2908431 = r2908427 * r2908427;
double r2908432 = r2908430 * r2908431;
double r2908433 = r2908429 + r2908432;
double r2908434 = 0.0072644182;
double r2908435 = r2908431 * r2908427;
double r2908436 = r2908434 * r2908435;
double r2908437 = r2908433 + r2908436;
double r2908438 = 0.0005064034;
double r2908439 = r2908435 * r2908427;
double r2908440 = r2908438 * r2908439;
double r2908441 = r2908437 + r2908440;
double r2908442 = 0.0001789971;
double r2908443 = r2908439 * r2908427;
double r2908444 = r2908442 * r2908443;
double r2908445 = r2908441 + r2908444;
double r2908446 = 0.7715471019;
double r2908447 = r2908446 * r2908427;
double r2908448 = r2908424 + r2908447;
double r2908449 = 0.2909738639;
double r2908450 = r2908449 * r2908431;
double r2908451 = r2908448 + r2908450;
double r2908452 = 0.0694555761;
double r2908453 = r2908452 * r2908435;
double r2908454 = r2908451 + r2908453;
double r2908455 = 0.0140005442;
double r2908456 = r2908455 * r2908439;
double r2908457 = r2908454 + r2908456;
double r2908458 = 0.0008327945;
double r2908459 = r2908458 * r2908443;
double r2908460 = r2908457 + r2908459;
double r2908461 = 2.0;
double r2908462 = r2908461 * r2908442;
double r2908463 = r2908443 * r2908427;
double r2908464 = r2908462 * r2908463;
double r2908465 = r2908460 + r2908464;
double r2908466 = r2908445 / r2908465;
double r2908467 = r2908466 * r2908426;
return r2908467;
}
double f(double x) {
double r2908468 = x;
double r2908469 = -501057778295.11584;
bool r2908470 = r2908468 <= r2908469;
double r2908471 = 0.5;
double r2908472 = r2908471 / r2908468;
double r2908473 = 0.15298196345929327;
double r2908474 = r2908468 * r2908468;
double r2908475 = r2908474 * r2908474;
double r2908476 = r2908468 * r2908475;
double r2908477 = r2908473 / r2908476;
double r2908478 = 0.2514179000665375;
double r2908479 = r2908474 * r2908468;
double r2908480 = r2908478 / r2908479;
double r2908481 = r2908477 + r2908480;
double r2908482 = r2908472 + r2908481;
double r2908483 = 791.7342703704438;
bool r2908484 = r2908468 <= r2908483;
double r2908485 = r2908474 * r2908475;
double r2908486 = 0.0005064034;
double r2908487 = 0.0001789971;
double r2908488 = r2908474 * r2908487;
double r2908489 = r2908486 + r2908488;
double r2908490 = r2908485 * r2908489;
double r2908491 = 0.0072644182;
double r2908492 = 0.0424060604;
double r2908493 = 0.1049934947;
double r2908494 = 1.0;
double r2908495 = fma(r2908493, r2908474, r2908494);
double r2908496 = fma(r2908475, r2908492, r2908495);
double r2908497 = fma(r2908491, r2908485, r2908496);
double r2908498 = fma(r2908474, r2908490, r2908497);
double r2908499 = sqrt(r2908498);
double r2908500 = 2.0;
double r2908501 = r2908487 * r2908500;
double r2908502 = r2908485 * r2908485;
double r2908503 = 0.0140005442;
double r2908504 = 0.0008327945;
double r2908505 = r2908474 * r2908504;
double r2908506 = r2908503 + r2908505;
double r2908507 = r2908485 * r2908506;
double r2908508 = 0.0694555761;
double r2908509 = 0.2909738639;
double r2908510 = 0.7715471019;
double r2908511 = fma(r2908474, r2908510, r2908494);
double r2908512 = fma(r2908509, r2908475, r2908511);
double r2908513 = fma(r2908485, r2908508, r2908512);
double r2908514 = fma(r2908474, r2908507, r2908513);
double r2908515 = fma(r2908501, r2908502, r2908514);
double r2908516 = r2908494 / r2908515;
double r2908517 = r2908516 * r2908499;
double r2908518 = r2908468 * r2908517;
double r2908519 = r2908499 * r2908518;
double r2908520 = r2908484 ? r2908519 : r2908482;
double r2908521 = r2908470 ? r2908482 : r2908520;
return r2908521;
}



Bits error versus x
if x < -501057778295.11584 or 791.7342703704438 < x Initial program 59.2
Simplified59.2
Taylor expanded around -inf 0.0
Simplified0.0
if -501057778295.11584 < x < 791.7342703704438Initial program 0.0
Simplified0.0
rmApplied *-un-lft-identity0.0
Applied add-sqr-sqrt0.0
Applied times-frac0.0
Applied associate-*l*0.0
rmApplied div-inv0.0
Final simplification0.0
herbie shell --seed 2019151 +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))