\frac{\left(\left(\left(\left(1 + 0.1049934947 \cdot \left(x \cdot x\right)\right) + 0.042406060400000001 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.00726441819999999999 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 5.0640340000000002 \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.789971 \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.77154710189999998 \cdot \left(x \cdot x\right)\right) + 0.29097386390000002 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.069455576099999999 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.014000544199999999 \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.32794500000000044 \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.789971 \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 -1.1542444163201688 \lor \neg \left(x \le 1.141596211348809\right):\\
\;\;\;\;\mathsf{fma}\left(0.25141790006653753, \frac{1}{{x}^{3}}, \mathsf{fma}\left(0.1529819634592933, \frac{1}{{x}^{5}}, \frac{0.5}{x}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(x, 1, 0.265709700396150994 \cdot {x}^{5} - 0.66655360720000001 \cdot {x}^{3}\right)\\
\end{array}double f(double x) {
double r181900 = 1.0;
double r181901 = 0.1049934947;
double r181902 = x;
double r181903 = r181902 * r181902;
double r181904 = r181901 * r181903;
double r181905 = r181900 + r181904;
double r181906 = 0.0424060604;
double r181907 = r181903 * r181903;
double r181908 = r181906 * r181907;
double r181909 = r181905 + r181908;
double r181910 = 0.0072644182;
double r181911 = r181907 * r181903;
double r181912 = r181910 * r181911;
double r181913 = r181909 + r181912;
double r181914 = 0.0005064034;
double r181915 = r181911 * r181903;
double r181916 = r181914 * r181915;
double r181917 = r181913 + r181916;
double r181918 = 0.0001789971;
double r181919 = r181915 * r181903;
double r181920 = r181918 * r181919;
double r181921 = r181917 + r181920;
double r181922 = 0.7715471019;
double r181923 = r181922 * r181903;
double r181924 = r181900 + r181923;
double r181925 = 0.2909738639;
double r181926 = r181925 * r181907;
double r181927 = r181924 + r181926;
double r181928 = 0.0694555761;
double r181929 = r181928 * r181911;
double r181930 = r181927 + r181929;
double r181931 = 0.0140005442;
double r181932 = r181931 * r181915;
double r181933 = r181930 + r181932;
double r181934 = 0.0008327945;
double r181935 = r181934 * r181919;
double r181936 = r181933 + r181935;
double r181937 = 2.0;
double r181938 = r181937 * r181918;
double r181939 = r181919 * r181903;
double r181940 = r181938 * r181939;
double r181941 = r181936 + r181940;
double r181942 = r181921 / r181941;
double r181943 = r181942 * r181902;
return r181943;
}
double f(double x) {
double r181944 = x;
double r181945 = -1.1542444163201688;
bool r181946 = r181944 <= r181945;
double r181947 = 1.141596211348809;
bool r181948 = r181944 <= r181947;
double r181949 = !r181948;
bool r181950 = r181946 || r181949;
double r181951 = 0.2514179000665375;
double r181952 = 1.0;
double r181953 = 3.0;
double r181954 = pow(r181944, r181953);
double r181955 = r181952 / r181954;
double r181956 = 0.15298196345929327;
double r181957 = 5.0;
double r181958 = pow(r181944, r181957);
double r181959 = r181952 / r181958;
double r181960 = 0.5;
double r181961 = r181960 / r181944;
double r181962 = fma(r181956, r181959, r181961);
double r181963 = fma(r181951, r181955, r181962);
double r181964 = 1.0;
double r181965 = 0.265709700396151;
double r181966 = r181965 * r181958;
double r181967 = 0.6665536072;
double r181968 = r181967 * r181954;
double r181969 = r181966 - r181968;
double r181970 = fma(r181944, r181964, r181969);
double r181971 = r181950 ? r181963 : r181970;
return r181971;
}



Bits error versus x
if x < -1.1542444163201688 or 1.141596211348809 < x Initial program 58.4
Taylor expanded around inf 0.3
Simplified0.3
if -1.1542444163201688 < x < 1.141596211348809Initial program 0.0
Taylor expanded around 0 0.4
Simplified0.4
Final simplification0.3
herbie shell --seed 2020034 +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))