\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 -462935.9092847789288498461246490478515625 \lor \neg \left(x \le 716.1103272509417365654371678829193115234\right):\\
\;\;\;\;\left(\frac{0.5}{x} + \frac{0.1529819634592932686700805788859724998474}{{x}^{5}}\right) + \frac{0.2514179000665375252054900556686334311962}{{x}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{fma}\left({\left(x \cdot x\right)}^{4}, \mathsf{fma}\left(1.789971000000000009994005623070734145585 \cdot 10^{-4}, x \cdot x, 5.064034000000000243502107366566633572802 \cdot 10^{-4}\right), {x}^{4} \cdot 0.04240606040000000076517494562722276896238\right) + \mathsf{fma}\left({x}^{6}, 0.007264418199999999985194687468492702464573, \mathsf{fma}\left(x \cdot x, 0.1049934946999999951788851149103720672429, 1\right)\right)}{\mathsf{fma}\left(2 \cdot 1.789971000000000009994005623070734145585 \cdot 10^{-4}, {\left(x \cdot x\right)}^{6}, \mathsf{fma}\left({\left(x \cdot x\right)}^{4}, \left(x \cdot x\right) \cdot 8.327945000000000442749725770852364803432 \cdot 10^{-4} + 0.01400054419999999938406531896362139377743, \mathsf{fma}\left(0.06945557609999999937322456844412954524159, {x}^{6}, \mathsf{fma}\left(0.2909738639000000182122107617033179849386, {x}^{4}, \mathsf{fma}\left(x \cdot x, 0.7715471018999999763821051601553335785866, 1\right)\right)\right)\right)\right)} \cdot x\\
\end{array}double f(double x) {
double r288629 = 1.0;
double r288630 = 0.1049934947;
double r288631 = x;
double r288632 = r288631 * r288631;
double r288633 = r288630 * r288632;
double r288634 = r288629 + r288633;
double r288635 = 0.0424060604;
double r288636 = r288632 * r288632;
double r288637 = r288635 * r288636;
double r288638 = r288634 + r288637;
double r288639 = 0.0072644182;
double r288640 = r288636 * r288632;
double r288641 = r288639 * r288640;
double r288642 = r288638 + r288641;
double r288643 = 0.0005064034;
double r288644 = r288640 * r288632;
double r288645 = r288643 * r288644;
double r288646 = r288642 + r288645;
double r288647 = 0.0001789971;
double r288648 = r288644 * r288632;
double r288649 = r288647 * r288648;
double r288650 = r288646 + r288649;
double r288651 = 0.7715471019;
double r288652 = r288651 * r288632;
double r288653 = r288629 + r288652;
double r288654 = 0.2909738639;
double r288655 = r288654 * r288636;
double r288656 = r288653 + r288655;
double r288657 = 0.0694555761;
double r288658 = r288657 * r288640;
double r288659 = r288656 + r288658;
double r288660 = 0.0140005442;
double r288661 = r288660 * r288644;
double r288662 = r288659 + r288661;
double r288663 = 0.0008327945;
double r288664 = r288663 * r288648;
double r288665 = r288662 + r288664;
double r288666 = 2.0;
double r288667 = r288666 * r288647;
double r288668 = r288648 * r288632;
double r288669 = r288667 * r288668;
double r288670 = r288665 + r288669;
double r288671 = r288650 / r288670;
double r288672 = r288671 * r288631;
return r288672;
}
double f(double x) {
double r288673 = x;
double r288674 = -462935.9092847789;
bool r288675 = r288673 <= r288674;
double r288676 = 716.1103272509417;
bool r288677 = r288673 <= r288676;
double r288678 = !r288677;
bool r288679 = r288675 || r288678;
double r288680 = 0.5;
double r288681 = r288680 / r288673;
double r288682 = 0.15298196345929327;
double r288683 = 5.0;
double r288684 = pow(r288673, r288683);
double r288685 = r288682 / r288684;
double r288686 = r288681 + r288685;
double r288687 = 0.2514179000665375;
double r288688 = 3.0;
double r288689 = pow(r288673, r288688);
double r288690 = r288687 / r288689;
double r288691 = r288686 + r288690;
double r288692 = r288673 * r288673;
double r288693 = 4.0;
double r288694 = pow(r288692, r288693);
double r288695 = 0.0001789971;
double r288696 = 0.0005064034;
double r288697 = fma(r288695, r288692, r288696);
double r288698 = pow(r288673, r288693);
double r288699 = 0.0424060604;
double r288700 = r288698 * r288699;
double r288701 = fma(r288694, r288697, r288700);
double r288702 = 6.0;
double r288703 = pow(r288673, r288702);
double r288704 = 0.0072644182;
double r288705 = 0.1049934947;
double r288706 = 1.0;
double r288707 = fma(r288692, r288705, r288706);
double r288708 = fma(r288703, r288704, r288707);
double r288709 = r288701 + r288708;
double r288710 = 2.0;
double r288711 = r288710 * r288695;
double r288712 = pow(r288692, r288702);
double r288713 = 0.0008327945;
double r288714 = r288692 * r288713;
double r288715 = 0.0140005442;
double r288716 = r288714 + r288715;
double r288717 = 0.0694555761;
double r288718 = 0.2909738639;
double r288719 = 0.7715471019;
double r288720 = fma(r288692, r288719, r288706);
double r288721 = fma(r288718, r288698, r288720);
double r288722 = fma(r288717, r288703, r288721);
double r288723 = fma(r288694, r288716, r288722);
double r288724 = fma(r288711, r288712, r288723);
double r288725 = r288709 / r288724;
double r288726 = r288725 * r288673;
double r288727 = r288679 ? r288691 : r288726;
return r288727;
}



Bits error versus x
if x < -462935.9092847789 or 716.1103272509417 < x Initial program 59.3
Simplified59.3
Taylor expanded around inf 0.0
Simplified0.0
if -462935.9092847789 < x < 716.1103272509417Initial program 0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019350 +o rules:numerics
(FPCore (x)
:name "Jmat.Real.dawson"
:precision binary64
(* (/ (+ (+ (+ (+ (+ 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))