\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 -2160608157766.319:\\
\;\;\;\;\left(\frac{0.2514179000665375}{x \cdot \left(x \cdot x\right)} + \frac{0.15298196345929327}{\left(x \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)}\right) + \frac{0.5}{x}\\
\mathbf{elif}\;x \le 747.6967772548774:\\
\;\;\;\;\frac{x \cdot \left(\left(1 + \left(x \cdot x\right) \cdot \left(0.1049934947 + \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot 0.0072644182\right)\right) \cdot \left(1 + \left(x \cdot x\right) \cdot \left(0.1049934947 + \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot 0.0072644182\right)\right) - \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(0.0424060604 + \left(0.0001789971 \cdot \left(x \cdot x\right) + 0.0005064034\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right)\right) \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(0.0424060604 + \left(0.0001789971 \cdot \left(x \cdot x\right) + 0.0005064034\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right)\right)\right)}{\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(0.2909738639 + \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(\left(x \cdot x\right) \cdot 0.0008327945 + \left(0.0001789971 \cdot 2\right) \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(0.0140005442 \cdot \left(x \cdot x\right) + 0.0694555761\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) + 0.7715471019\right) + 1\right)\right) \cdot \left(\left(1 + \left(x \cdot x\right) \cdot \left(0.1049934947 + \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot 0.0072644182\right)\right) - \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(0.0424060604 + \left(0.0001789971 \cdot \left(x \cdot x\right) + 0.0005064034\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{0.2514179000665375}{x \cdot \left(x \cdot x\right)} + \frac{0.15298196345929327}{\left(x \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)}\right) + \frac{0.5}{x}\\
\end{array}double f(double x) {
double r9053891 = 1.0;
double r9053892 = 0.1049934947;
double r9053893 = x;
double r9053894 = r9053893 * r9053893;
double r9053895 = r9053892 * r9053894;
double r9053896 = r9053891 + r9053895;
double r9053897 = 0.0424060604;
double r9053898 = r9053894 * r9053894;
double r9053899 = r9053897 * r9053898;
double r9053900 = r9053896 + r9053899;
double r9053901 = 0.0072644182;
double r9053902 = r9053898 * r9053894;
double r9053903 = r9053901 * r9053902;
double r9053904 = r9053900 + r9053903;
double r9053905 = 0.0005064034;
double r9053906 = r9053902 * r9053894;
double r9053907 = r9053905 * r9053906;
double r9053908 = r9053904 + r9053907;
double r9053909 = 0.0001789971;
double r9053910 = r9053906 * r9053894;
double r9053911 = r9053909 * r9053910;
double r9053912 = r9053908 + r9053911;
double r9053913 = 0.7715471019;
double r9053914 = r9053913 * r9053894;
double r9053915 = r9053891 + r9053914;
double r9053916 = 0.2909738639;
double r9053917 = r9053916 * r9053898;
double r9053918 = r9053915 + r9053917;
double r9053919 = 0.0694555761;
double r9053920 = r9053919 * r9053902;
double r9053921 = r9053918 + r9053920;
double r9053922 = 0.0140005442;
double r9053923 = r9053922 * r9053906;
double r9053924 = r9053921 + r9053923;
double r9053925 = 0.0008327945;
double r9053926 = r9053925 * r9053910;
double r9053927 = r9053924 + r9053926;
double r9053928 = 2.0;
double r9053929 = r9053928 * r9053909;
double r9053930 = r9053910 * r9053894;
double r9053931 = r9053929 * r9053930;
double r9053932 = r9053927 + r9053931;
double r9053933 = r9053912 / r9053932;
double r9053934 = r9053933 * r9053893;
return r9053934;
}
double f(double x) {
double r9053935 = x;
double r9053936 = -2160608157766.319;
bool r9053937 = r9053935 <= r9053936;
double r9053938 = 0.2514179000665375;
double r9053939 = r9053935 * r9053935;
double r9053940 = r9053935 * r9053939;
double r9053941 = r9053938 / r9053940;
double r9053942 = 0.15298196345929327;
double r9053943 = r9053940 * r9053939;
double r9053944 = r9053942 / r9053943;
double r9053945 = r9053941 + r9053944;
double r9053946 = 0.5;
double r9053947 = r9053946 / r9053935;
double r9053948 = r9053945 + r9053947;
double r9053949 = 747.6967772548774;
bool r9053950 = r9053935 <= r9053949;
double r9053951 = 1.0;
double r9053952 = 0.1049934947;
double r9053953 = r9053939 * r9053939;
double r9053954 = 0.0072644182;
double r9053955 = r9053953 * r9053954;
double r9053956 = r9053952 + r9053955;
double r9053957 = r9053939 * r9053956;
double r9053958 = r9053951 + r9053957;
double r9053959 = r9053958 * r9053958;
double r9053960 = 0.0424060604;
double r9053961 = 0.0001789971;
double r9053962 = r9053961 * r9053939;
double r9053963 = 0.0005064034;
double r9053964 = r9053962 + r9053963;
double r9053965 = r9053964 * r9053953;
double r9053966 = r9053960 + r9053965;
double r9053967 = r9053953 * r9053966;
double r9053968 = r9053967 * r9053967;
double r9053969 = r9053959 - r9053968;
double r9053970 = r9053935 * r9053969;
double r9053971 = 0.2909738639;
double r9053972 = 0.0008327945;
double r9053973 = r9053939 * r9053972;
double r9053974 = 2.0;
double r9053975 = r9053961 * r9053974;
double r9053976 = r9053975 * r9053953;
double r9053977 = r9053973 + r9053976;
double r9053978 = r9053953 * r9053977;
double r9053979 = r9053971 + r9053978;
double r9053980 = r9053953 * r9053979;
double r9053981 = 0.0140005442;
double r9053982 = r9053981 * r9053939;
double r9053983 = 0.0694555761;
double r9053984 = r9053982 + r9053983;
double r9053985 = r9053984 * r9053953;
double r9053986 = 0.7715471019;
double r9053987 = r9053985 + r9053986;
double r9053988 = r9053939 * r9053987;
double r9053989 = r9053988 + r9053951;
double r9053990 = r9053980 + r9053989;
double r9053991 = r9053958 - r9053967;
double r9053992 = r9053990 * r9053991;
double r9053993 = r9053970 / r9053992;
double r9053994 = r9053950 ? r9053993 : r9053948;
double r9053995 = r9053937 ? r9053948 : r9053994;
return r9053995;
}



Bits error versus x
Results
if x < -2160608157766.319 or 747.6967772548774 < x Initial program 59.3
Simplified59.2
rmApplied div-inv59.2
Applied associate-*l*59.2
Simplified59.2
Taylor expanded around -inf 0.0
Simplified0.0
if -2160608157766.319 < x < 747.6967772548774Initial program 0.0
Simplified0.0
rmApplied div-inv0.0
Applied associate-*l*0.0
Simplified0.0
rmApplied flip-+0.0
Applied frac-times0.0
Final simplification0.0
herbie shell --seed 2019151
(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))