\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 -66884372758153.65625 \lor \neg \left(x \le 2908874.8511068685911595821380615234375\right):\\
\;\;\;\;\mathsf{fma}\left(0.2514179000665375252054900556686334311962, \frac{1}{{x}^{3}}, \mathsf{fma}\left(0.1529819634592932686700805788859724998474, \frac{1}{{x}^{5}}, \frac{0.5}{x}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\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({x}^{3} \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) \cdot \frac{x}{\mathsf{fma}\left(2 \cdot 1.789971000000000009994005623070734145585 \cdot 10^{-4}, {x}^{2} \cdot \left({x}^{2} \cdot \left({x}^{2} \cdot \left({x}^{2} \cdot \left(x \cdot {x}^{3}\right)\right)\right)\right), \mathsf{fma}\left(8.327945000000000442749725770852364803432 \cdot 10^{-4}, {x}^{2} \cdot \left({x}^{2} \cdot \left({x}^{2} \cdot \left(x \cdot {x}^{3}\right)\right)\right), \mathsf{fma}\left(0.01400054419999999938406531896362139377743, {x}^{2} \cdot \left({x}^{2} \cdot \left(x \cdot {x}^{3}\right)\right), \mathsf{fma}\left(0.06945557609999999937322456844412954524159, {x}^{6}, \mathsf{fma}\left(0.2909738639000000182122107617033179849386, {x}^{4}, \mathsf{fma}\left(0.7715471018999999763821051601553335785866 \cdot x, x, 1\right)\right)\right)\right)\right)\right)}\\
\end{array}double f(double x) {
double r221964 = 1.0;
double r221965 = 0.1049934947;
double r221966 = x;
double r221967 = r221966 * r221966;
double r221968 = r221965 * r221967;
double r221969 = r221964 + r221968;
double r221970 = 0.0424060604;
double r221971 = r221967 * r221967;
double r221972 = r221970 * r221971;
double r221973 = r221969 + r221972;
double r221974 = 0.0072644182;
double r221975 = r221971 * r221967;
double r221976 = r221974 * r221975;
double r221977 = r221973 + r221976;
double r221978 = 0.0005064034;
double r221979 = r221975 * r221967;
double r221980 = r221978 * r221979;
double r221981 = r221977 + r221980;
double r221982 = 0.0001789971;
double r221983 = r221979 * r221967;
double r221984 = r221982 * r221983;
double r221985 = r221981 + r221984;
double r221986 = 0.7715471019;
double r221987 = r221986 * r221967;
double r221988 = r221964 + r221987;
double r221989 = 0.2909738639;
double r221990 = r221989 * r221971;
double r221991 = r221988 + r221990;
double r221992 = 0.0694555761;
double r221993 = r221992 * r221975;
double r221994 = r221991 + r221993;
double r221995 = 0.0140005442;
double r221996 = r221995 * r221979;
double r221997 = r221994 + r221996;
double r221998 = 0.0008327945;
double r221999 = r221998 * r221983;
double r222000 = r221997 + r221999;
double r222001 = 2.0;
double r222002 = r222001 * r221982;
double r222003 = r221983 * r221967;
double r222004 = r222002 * r222003;
double r222005 = r222000 + r222004;
double r222006 = r221985 / r222005;
double r222007 = r222006 * r221966;
return r222007;
}
double f(double x) {
double r222008 = x;
double r222009 = -66884372758153.66;
bool r222010 = r222008 <= r222009;
double r222011 = 2908874.8511068686;
bool r222012 = r222008 <= r222011;
double r222013 = !r222012;
bool r222014 = r222010 || r222013;
double r222015 = 0.2514179000665375;
double r222016 = 1.0;
double r222017 = 3.0;
double r222018 = pow(r222008, r222017);
double r222019 = r222016 / r222018;
double r222020 = 0.15298196345929327;
double r222021 = 5.0;
double r222022 = pow(r222008, r222021);
double r222023 = r222016 / r222022;
double r222024 = 0.5;
double r222025 = r222024 / r222008;
double r222026 = fma(r222020, r222023, r222025);
double r222027 = fma(r222015, r222019, r222026);
double r222028 = 1.0;
double r222029 = 0.1049934947;
double r222030 = r222008 * r222008;
double r222031 = r222029 * r222030;
double r222032 = r222028 + r222031;
double r222033 = 0.0424060604;
double r222034 = r222030 * r222030;
double r222035 = r222033 * r222034;
double r222036 = r222032 + r222035;
double r222037 = 0.0072644182;
double r222038 = r222034 * r222030;
double r222039 = r222037 * r222038;
double r222040 = r222036 + r222039;
double r222041 = 0.0005064034;
double r222042 = r222038 * r222030;
double r222043 = r222041 * r222042;
double r222044 = r222040 + r222043;
double r222045 = 0.0001789971;
double r222046 = r222018 * r222008;
double r222047 = r222046 * r222030;
double r222048 = r222047 * r222030;
double r222049 = r222048 * r222030;
double r222050 = r222045 * r222049;
double r222051 = r222044 + r222050;
double r222052 = 2.0;
double r222053 = r222052 * r222045;
double r222054 = 2.0;
double r222055 = pow(r222008, r222054);
double r222056 = r222008 * r222018;
double r222057 = r222055 * r222056;
double r222058 = r222055 * r222057;
double r222059 = r222055 * r222058;
double r222060 = r222055 * r222059;
double r222061 = 0.0008327945;
double r222062 = 0.0140005442;
double r222063 = 0.0694555761;
double r222064 = 6.0;
double r222065 = pow(r222008, r222064);
double r222066 = 0.2909738639;
double r222067 = 4.0;
double r222068 = pow(r222008, r222067);
double r222069 = 0.7715471019;
double r222070 = r222069 * r222008;
double r222071 = fma(r222070, r222008, r222028);
double r222072 = fma(r222066, r222068, r222071);
double r222073 = fma(r222063, r222065, r222072);
double r222074 = fma(r222062, r222058, r222073);
double r222075 = fma(r222061, r222059, r222074);
double r222076 = fma(r222053, r222060, r222075);
double r222077 = r222008 / r222076;
double r222078 = r222051 * r222077;
double r222079 = r222014 ? r222027 : r222078;
return r222079;
}



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