\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 -946613766.6812615:\\
\;\;\;\;\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 670.0218683925953:\\
\;\;\;\;\frac{x}{\mathsf{fma}\left(2, 0.0001789971 \cdot \left(\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)\right), \mathsf{fma}\left(0.0140005442, \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), \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) \cdot \left(0.0008327945 \cdot \left(x \cdot x\right)\right)\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)} \cdot \left(\left(\left(0.0072644182 \cdot \left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + \left(\left(1 + \left(x \cdot x\right) \cdot 0.1049934947\right) + 0.0424060604 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right)\right) + \left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right)\right) \cdot 0.0005064034\right) + 0.0001789971 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right)\right) \cdot \left(x \cdot x\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 r6402509 = 1.0;
double r6402510 = 0.1049934947;
double r6402511 = x;
double r6402512 = r6402511 * r6402511;
double r6402513 = r6402510 * r6402512;
double r6402514 = r6402509 + r6402513;
double r6402515 = 0.0424060604;
double r6402516 = r6402512 * r6402512;
double r6402517 = r6402515 * r6402516;
double r6402518 = r6402514 + r6402517;
double r6402519 = 0.0072644182;
double r6402520 = r6402516 * r6402512;
double r6402521 = r6402519 * r6402520;
double r6402522 = r6402518 + r6402521;
double r6402523 = 0.0005064034;
double r6402524 = r6402520 * r6402512;
double r6402525 = r6402523 * r6402524;
double r6402526 = r6402522 + r6402525;
double r6402527 = 0.0001789971;
double r6402528 = r6402524 * r6402512;
double r6402529 = r6402527 * r6402528;
double r6402530 = r6402526 + r6402529;
double r6402531 = 0.7715471019;
double r6402532 = r6402531 * r6402512;
double r6402533 = r6402509 + r6402532;
double r6402534 = 0.2909738639;
double r6402535 = r6402534 * r6402516;
double r6402536 = r6402533 + r6402535;
double r6402537 = 0.0694555761;
double r6402538 = r6402537 * r6402520;
double r6402539 = r6402536 + r6402538;
double r6402540 = 0.0140005442;
double r6402541 = r6402540 * r6402524;
double r6402542 = r6402539 + r6402541;
double r6402543 = 0.0008327945;
double r6402544 = r6402543 * r6402528;
double r6402545 = r6402542 + r6402544;
double r6402546 = 2.0;
double r6402547 = r6402546 * r6402527;
double r6402548 = r6402528 * r6402512;
double r6402549 = r6402547 * r6402548;
double r6402550 = r6402545 + r6402549;
double r6402551 = r6402530 / r6402550;
double r6402552 = r6402551 * r6402511;
return r6402552;
}
double f(double x) {
double r6402553 = x;
double r6402554 = -946613766.6812615;
bool r6402555 = r6402553 <= r6402554;
double r6402556 = 0.5;
double r6402557 = r6402556 / r6402553;
double r6402558 = 0.15298196345929327;
double r6402559 = r6402553 * r6402553;
double r6402560 = r6402559 * r6402559;
double r6402561 = r6402553 * r6402560;
double r6402562 = r6402558 / r6402561;
double r6402563 = 0.2514179000665375;
double r6402564 = r6402559 * r6402553;
double r6402565 = r6402563 / r6402564;
double r6402566 = r6402562 + r6402565;
double r6402567 = r6402557 + r6402566;
double r6402568 = 670.0218683925953;
bool r6402569 = r6402553 <= r6402568;
double r6402570 = 2.0;
double r6402571 = 0.0001789971;
double r6402572 = r6402559 * r6402560;
double r6402573 = r6402572 * r6402572;
double r6402574 = r6402571 * r6402573;
double r6402575 = 0.0140005442;
double r6402576 = r6402560 * r6402560;
double r6402577 = 0.0008327945;
double r6402578 = r6402577 * r6402559;
double r6402579 = r6402576 * r6402578;
double r6402580 = fma(r6402575, r6402576, r6402579);
double r6402581 = 0.0694555761;
double r6402582 = 0.2909738639;
double r6402583 = 0.7715471019;
double r6402584 = 1.0;
double r6402585 = fma(r6402559, r6402583, r6402584);
double r6402586 = fma(r6402582, r6402560, r6402585);
double r6402587 = fma(r6402572, r6402581, r6402586);
double r6402588 = r6402580 + r6402587;
double r6402589 = fma(r6402570, r6402574, r6402588);
double r6402590 = r6402553 / r6402589;
double r6402591 = 0.0072644182;
double r6402592 = r6402591 * r6402572;
double r6402593 = 0.1049934947;
double r6402594 = r6402559 * r6402593;
double r6402595 = r6402584 + r6402594;
double r6402596 = 0.0424060604;
double r6402597 = r6402596 * r6402560;
double r6402598 = r6402595 + r6402597;
double r6402599 = r6402592 + r6402598;
double r6402600 = r6402559 * r6402572;
double r6402601 = 0.0005064034;
double r6402602 = r6402600 * r6402601;
double r6402603 = r6402599 + r6402602;
double r6402604 = r6402600 * r6402559;
double r6402605 = r6402571 * r6402604;
double r6402606 = r6402603 + r6402605;
double r6402607 = r6402590 * r6402606;
double r6402608 = r6402569 ? r6402607 : r6402567;
double r6402609 = r6402555 ? r6402567 : r6402608;
return r6402609;
}



Bits error versus x
if x < -946613766.6812615 or 670.0218683925953 < x Initial program 58.8
Taylor expanded around inf 0.0
Simplified0.0
if -946613766.6812615 < x < 670.0218683925953Initial program 0.0
rmApplied div-inv0.0
Applied associate-*l*0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019146 +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))