\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 -717.8446847685493:\\
\;\;\;\;\frac{0.15298196345929327}{\left(x \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)} + \left(\frac{0.2514179000665375}{x \cdot \left(x \cdot x\right)} + \frac{0.5}{x}\right)\\
\mathbf{elif}\;x \le 637.3694405843999:\\
\;\;\;\;x \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{\frac{\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)}{\sqrt{\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 + 0.0008327945 \cdot \left(x \cdot x\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)\right)}}}{\sqrt{\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 + 0.0008327945 \cdot \left(x \cdot x\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)\right)}}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{0.15298196345929327}{\left(x \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)} + \left(\frac{0.2514179000665375}{x \cdot \left(x \cdot x\right)} + \frac{0.5}{x}\right)\\
\end{array}double f(double x) {
double r3219913 = 1.0;
double r3219914 = 0.1049934947;
double r3219915 = x;
double r3219916 = r3219915 * r3219915;
double r3219917 = r3219914 * r3219916;
double r3219918 = r3219913 + r3219917;
double r3219919 = 0.0424060604;
double r3219920 = r3219916 * r3219916;
double r3219921 = r3219919 * r3219920;
double r3219922 = r3219918 + r3219921;
double r3219923 = 0.0072644182;
double r3219924 = r3219920 * r3219916;
double r3219925 = r3219923 * r3219924;
double r3219926 = r3219922 + r3219925;
double r3219927 = 0.0005064034;
double r3219928 = r3219924 * r3219916;
double r3219929 = r3219927 * r3219928;
double r3219930 = r3219926 + r3219929;
double r3219931 = 0.0001789971;
double r3219932 = r3219928 * r3219916;
double r3219933 = r3219931 * r3219932;
double r3219934 = r3219930 + r3219933;
double r3219935 = 0.7715471019;
double r3219936 = r3219935 * r3219916;
double r3219937 = r3219913 + r3219936;
double r3219938 = 0.2909738639;
double r3219939 = r3219938 * r3219920;
double r3219940 = r3219937 + r3219939;
double r3219941 = 0.0694555761;
double r3219942 = r3219941 * r3219924;
double r3219943 = r3219940 + r3219942;
double r3219944 = 0.0140005442;
double r3219945 = r3219944 * r3219928;
double r3219946 = r3219943 + r3219945;
double r3219947 = 0.0008327945;
double r3219948 = r3219947 * r3219932;
double r3219949 = r3219946 + r3219948;
double r3219950 = 2.0;
double r3219951 = r3219950 * r3219931;
double r3219952 = r3219932 * r3219916;
double r3219953 = r3219951 * r3219952;
double r3219954 = r3219949 + r3219953;
double r3219955 = r3219934 / r3219954;
double r3219956 = r3219955 * r3219915;
return r3219956;
}
double f(double x) {
double r3219957 = x;
double r3219958 = -717.8446847685493;
bool r3219959 = r3219957 <= r3219958;
double r3219960 = 0.15298196345929327;
double r3219961 = r3219957 * r3219957;
double r3219962 = r3219957 * r3219961;
double r3219963 = r3219962 * r3219961;
double r3219964 = r3219960 / r3219963;
double r3219965 = 0.2514179000665375;
double r3219966 = r3219965 / r3219962;
double r3219967 = 0.5;
double r3219968 = r3219967 / r3219957;
double r3219969 = r3219966 + r3219968;
double r3219970 = r3219964 + r3219969;
double r3219971 = 637.3694405843999;
bool r3219972 = r3219957 <= r3219971;
double r3219973 = r3219961 * r3219961;
double r3219974 = r3219961 * r3219973;
double r3219975 = 0.0005064034;
double r3219976 = 0.0001789971;
double r3219977 = r3219961 * r3219976;
double r3219978 = r3219975 + r3219977;
double r3219979 = r3219974 * r3219978;
double r3219980 = 0.0072644182;
double r3219981 = 0.0424060604;
double r3219982 = 0.1049934947;
double r3219983 = 1.0;
double r3219984 = fma(r3219982, r3219961, r3219983);
double r3219985 = fma(r3219973, r3219981, r3219984);
double r3219986 = fma(r3219980, r3219974, r3219985);
double r3219987 = fma(r3219961, r3219979, r3219986);
double r3219988 = 2.0;
double r3219989 = r3219976 * r3219988;
double r3219990 = r3219974 * r3219974;
double r3219991 = 0.0140005442;
double r3219992 = 0.0008327945;
double r3219993 = r3219992 * r3219961;
double r3219994 = r3219991 + r3219993;
double r3219995 = r3219974 * r3219994;
double r3219996 = 0.0694555761;
double r3219997 = 0.2909738639;
double r3219998 = 0.7715471019;
double r3219999 = fma(r3219961, r3219998, r3219983);
double r3220000 = fma(r3219997, r3219973, r3219999);
double r3220001 = fma(r3219974, r3219996, r3220000);
double r3220002 = fma(r3219961, r3219995, r3220001);
double r3220003 = fma(r3219989, r3219990, r3220002);
double r3220004 = sqrt(r3220003);
double r3220005 = r3219987 / r3220004;
double r3220006 = r3220005 / r3220004;
double r3220007 = log1p(r3220006);
double r3220008 = expm1(r3220007);
double r3220009 = r3219957 * r3220008;
double r3220010 = r3219972 ? r3220009 : r3219970;
double r3220011 = r3219959 ? r3219970 : r3220010;
return r3220011;
}



Bits error versus x
if x < -717.8446847685493 or 637.3694405843999 < x Initial program 57.8
Simplified57.8
Taylor expanded around -inf 0.0
Simplified0.0
if -717.8446847685493 < x < 637.3694405843999Initial program 0.0
Simplified0.0
rmApplied expm1-log1p-u0.0
rmApplied add-sqr-sqrt0.0
Applied associate-/r*0.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))