\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 -1972642.4897711694:\\
\;\;\;\;\mathsf{fma}\left(0.5, \frac{1}{x}, \mathsf{fma}\left(\frac{\frac{1}{x}}{x \cdot x}, 0.2514179000665375, \frac{\frac{1}{x}}{\left(x \cdot x\right) \cdot \left(x \cdot x\right)} \cdot 0.15298196345929327\right)\right)\\
\mathbf{elif}\;x \le 6092.552153153211:\\
\;\;\;\;x \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{\sqrt{\mathsf{fma}\left(\left(x \cdot x\right) \cdot 0.0001789971, \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(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(x \cdot x, 0.0072644182 \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)}}{\sqrt{\mathsf{fma}\left(0.0001789971 \cdot 2, \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\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(x \cdot x\right)\right), \mathsf{fma}\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right), \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot 0.0008327945, \mathsf{fma}\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right), \left(x \cdot x\right) \cdot 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(x \cdot x, 0.7715471019, 1\right)\right)\right)\right)\right)\right)}} \cdot \frac{\sqrt{\mathsf{fma}\left(\left(x \cdot x\right) \cdot 0.0001789971, \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(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(x \cdot x, 0.0072644182 \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)}}{\sqrt{\mathsf{fma}\left(0.0001789971 \cdot 2, \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\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(x \cdot x\right)\right), \mathsf{fma}\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right), \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot 0.0008327945, \mathsf{fma}\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right), \left(x \cdot x\right) \cdot 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(x \cdot x, 0.7715471019, 1\right)\right)\right)\right)\right)\right)}}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(0.5, \frac{1}{x}, \mathsf{fma}\left(\frac{\frac{1}{x}}{x \cdot x}, 0.2514179000665375, \frac{\frac{1}{x}}{\left(x \cdot x\right) \cdot \left(x \cdot x\right)} \cdot 0.15298196345929327\right)\right)\\
\end{array}double f(double x) {
double r4237500 = 1.0;
double r4237501 = 0.1049934947;
double r4237502 = x;
double r4237503 = r4237502 * r4237502;
double r4237504 = r4237501 * r4237503;
double r4237505 = r4237500 + r4237504;
double r4237506 = 0.0424060604;
double r4237507 = r4237503 * r4237503;
double r4237508 = r4237506 * r4237507;
double r4237509 = r4237505 + r4237508;
double r4237510 = 0.0072644182;
double r4237511 = r4237507 * r4237503;
double r4237512 = r4237510 * r4237511;
double r4237513 = r4237509 + r4237512;
double r4237514 = 0.0005064034;
double r4237515 = r4237511 * r4237503;
double r4237516 = r4237514 * r4237515;
double r4237517 = r4237513 + r4237516;
double r4237518 = 0.0001789971;
double r4237519 = r4237515 * r4237503;
double r4237520 = r4237518 * r4237519;
double r4237521 = r4237517 + r4237520;
double r4237522 = 0.7715471019;
double r4237523 = r4237522 * r4237503;
double r4237524 = r4237500 + r4237523;
double r4237525 = 0.2909738639;
double r4237526 = r4237525 * r4237507;
double r4237527 = r4237524 + r4237526;
double r4237528 = 0.0694555761;
double r4237529 = r4237528 * r4237511;
double r4237530 = r4237527 + r4237529;
double r4237531 = 0.0140005442;
double r4237532 = r4237531 * r4237515;
double r4237533 = r4237530 + r4237532;
double r4237534 = 0.0008327945;
double r4237535 = r4237534 * r4237519;
double r4237536 = r4237533 + r4237535;
double r4237537 = 2.0;
double r4237538 = r4237537 * r4237518;
double r4237539 = r4237519 * r4237503;
double r4237540 = r4237538 * r4237539;
double r4237541 = r4237536 + r4237540;
double r4237542 = r4237521 / r4237541;
double r4237543 = r4237542 * r4237502;
return r4237543;
}
double f(double x) {
double r4237544 = x;
double r4237545 = -1972642.4897711694;
bool r4237546 = r4237544 <= r4237545;
double r4237547 = 0.5;
double r4237548 = 1.0;
double r4237549 = r4237548 / r4237544;
double r4237550 = r4237544 * r4237544;
double r4237551 = r4237549 / r4237550;
double r4237552 = 0.2514179000665375;
double r4237553 = r4237550 * r4237550;
double r4237554 = r4237549 / r4237553;
double r4237555 = 0.15298196345929327;
double r4237556 = r4237554 * r4237555;
double r4237557 = fma(r4237551, r4237552, r4237556);
double r4237558 = fma(r4237547, r4237549, r4237557);
double r4237559 = 6092.552153153211;
bool r4237560 = r4237544 <= r4237559;
double r4237561 = 0.0001789971;
double r4237562 = r4237550 * r4237561;
double r4237563 = r4237553 * r4237553;
double r4237564 = 0.0005064034;
double r4237565 = 0.0072644182;
double r4237566 = r4237565 * r4237553;
double r4237567 = 0.0424060604;
double r4237568 = 0.1049934947;
double r4237569 = fma(r4237568, r4237550, r4237548);
double r4237570 = fma(r4237553, r4237567, r4237569);
double r4237571 = fma(r4237550, r4237566, r4237570);
double r4237572 = fma(r4237564, r4237563, r4237571);
double r4237573 = fma(r4237562, r4237563, r4237572);
double r4237574 = sqrt(r4237573);
double r4237575 = 2.0;
double r4237576 = r4237561 * r4237575;
double r4237577 = r4237553 * r4237550;
double r4237578 = r4237577 * r4237577;
double r4237579 = 0.0008327945;
double r4237580 = r4237553 * r4237579;
double r4237581 = 0.0140005442;
double r4237582 = r4237550 * r4237581;
double r4237583 = 0.0694555761;
double r4237584 = 0.2909738639;
double r4237585 = 0.7715471019;
double r4237586 = fma(r4237550, r4237585, r4237548);
double r4237587 = fma(r4237584, r4237553, r4237586);
double r4237588 = fma(r4237577, r4237583, r4237587);
double r4237589 = fma(r4237577, r4237582, r4237588);
double r4237590 = fma(r4237577, r4237580, r4237589);
double r4237591 = fma(r4237576, r4237578, r4237590);
double r4237592 = sqrt(r4237591);
double r4237593 = r4237574 / r4237592;
double r4237594 = r4237593 * r4237593;
double r4237595 = log1p(r4237594);
double r4237596 = expm1(r4237595);
double r4237597 = r4237544 * r4237596;
double r4237598 = r4237560 ? r4237597 : r4237558;
double r4237599 = r4237546 ? r4237558 : r4237598;
return r4237599;
}



Bits error versus x
if x < -1972642.4897711694 or 6092.552153153211 < x Initial program 58.2
Simplified58.3
Taylor expanded around inf 0.0
Simplified0.0
if -1972642.4897711694 < x < 6092.552153153211Initial program 0.0
Simplified0.0
rmApplied expm1-log1p-u0.0
rmApplied add-sqr-sqrt0.0
Applied add-sqr-sqrt0.0
Applied times-frac0.0
Final simplification0.0
herbie shell --seed 2019152 +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))