\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 -708.557354395608286 \lor \neg \left(x \le 703.486669679423699\right):\\
\;\;\;\;\left(\frac{0.5}{x} + \frac{0.1529819634592933}{{x}^{5}}\right) + \frac{0.25141790006653753}{{x}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left({\left(x \cdot x\right)}^{4} \cdot \left(5.0640340000000002 \cdot 10^{-4} + \sqrt{\left(x \cdot x\right) \cdot 1.789971 \cdot 10^{-4}} \cdot \sqrt{\left(x \cdot x\right) \cdot 1.789971 \cdot 10^{-4}}\right) + \mathsf{fma}\left(0.00726441819999999999, {x}^{6}, \mathsf{fma}\left({x}^{4}, 0.042406060400000001, \mathsf{fma}\left(x \cdot x, 0.1049934947, 1\right)\right)\right)\right) \cdot x}{{\left(x \cdot x\right)}^{4} \cdot \left(\left(x \cdot x\right) \cdot 8.32794500000000044 \cdot 10^{-4} + 0.014000544199999999\right) + \mathsf{fma}\left(2 \cdot {\left(x \cdot x\right)}^{6}, 1.789971 \cdot 10^{-4}, \mathsf{fma}\left(0.069455576099999999, {x}^{6}, \mathsf{fma}\left(0.29097386390000002, {x}^{4}, \sqrt{\mathsf{fma}\left(0.77154710189999998 \cdot x, x, 1\right)} \cdot \sqrt{\mathsf{fma}\left(0.77154710189999998 \cdot x, x, 1\right)}\right)\right)\right)}\\
\end{array}double f(double x) {
double r172952 = 1.0;
double r172953 = 0.1049934947;
double r172954 = x;
double r172955 = r172954 * r172954;
double r172956 = r172953 * r172955;
double r172957 = r172952 + r172956;
double r172958 = 0.0424060604;
double r172959 = r172955 * r172955;
double r172960 = r172958 * r172959;
double r172961 = r172957 + r172960;
double r172962 = 0.0072644182;
double r172963 = r172959 * r172955;
double r172964 = r172962 * r172963;
double r172965 = r172961 + r172964;
double r172966 = 0.0005064034;
double r172967 = r172963 * r172955;
double r172968 = r172966 * r172967;
double r172969 = r172965 + r172968;
double r172970 = 0.0001789971;
double r172971 = r172967 * r172955;
double r172972 = r172970 * r172971;
double r172973 = r172969 + r172972;
double r172974 = 0.7715471019;
double r172975 = r172974 * r172955;
double r172976 = r172952 + r172975;
double r172977 = 0.2909738639;
double r172978 = r172977 * r172959;
double r172979 = r172976 + r172978;
double r172980 = 0.0694555761;
double r172981 = r172980 * r172963;
double r172982 = r172979 + r172981;
double r172983 = 0.0140005442;
double r172984 = r172983 * r172967;
double r172985 = r172982 + r172984;
double r172986 = 0.0008327945;
double r172987 = r172986 * r172971;
double r172988 = r172985 + r172987;
double r172989 = 2.0;
double r172990 = r172989 * r172970;
double r172991 = r172971 * r172955;
double r172992 = r172990 * r172991;
double r172993 = r172988 + r172992;
double r172994 = r172973 / r172993;
double r172995 = r172994 * r172954;
return r172995;
}
double f(double x) {
double r172996 = x;
double r172997 = -708.5573543956083;
bool r172998 = r172996 <= r172997;
double r172999 = 703.4866696794237;
bool r173000 = r172996 <= r172999;
double r173001 = !r173000;
bool r173002 = r172998 || r173001;
double r173003 = 0.5;
double r173004 = r173003 / r172996;
double r173005 = 0.15298196345929327;
double r173006 = 5.0;
double r173007 = pow(r172996, r173006);
double r173008 = r173005 / r173007;
double r173009 = r173004 + r173008;
double r173010 = 0.2514179000665375;
double r173011 = 3.0;
double r173012 = pow(r172996, r173011);
double r173013 = r173010 / r173012;
double r173014 = r173009 + r173013;
double r173015 = r172996 * r172996;
double r173016 = 4.0;
double r173017 = pow(r173015, r173016);
double r173018 = 0.0005064034;
double r173019 = 0.0001789971;
double r173020 = r173015 * r173019;
double r173021 = sqrt(r173020);
double r173022 = r173021 * r173021;
double r173023 = r173018 + r173022;
double r173024 = r173017 * r173023;
double r173025 = 0.0072644182;
double r173026 = 6.0;
double r173027 = pow(r172996, r173026);
double r173028 = pow(r172996, r173016);
double r173029 = 0.0424060604;
double r173030 = 0.1049934947;
double r173031 = 1.0;
double r173032 = fma(r173015, r173030, r173031);
double r173033 = fma(r173028, r173029, r173032);
double r173034 = fma(r173025, r173027, r173033);
double r173035 = r173024 + r173034;
double r173036 = r173035 * r172996;
double r173037 = 0.0008327945;
double r173038 = r173015 * r173037;
double r173039 = 0.0140005442;
double r173040 = r173038 + r173039;
double r173041 = r173017 * r173040;
double r173042 = 2.0;
double r173043 = pow(r173015, r173026);
double r173044 = r173042 * r173043;
double r173045 = 0.0694555761;
double r173046 = 0.2909738639;
double r173047 = 0.7715471019;
double r173048 = r173047 * r172996;
double r173049 = fma(r173048, r172996, r173031);
double r173050 = sqrt(r173049);
double r173051 = r173050 * r173050;
double r173052 = fma(r173046, r173028, r173051);
double r173053 = fma(r173045, r173027, r173052);
double r173054 = fma(r173044, r173019, r173053);
double r173055 = r173041 + r173054;
double r173056 = r173036 / r173055;
double r173057 = r173002 ? r173014 : r173056;
return r173057;
}



Bits error versus x
if x < -708.5573543956083 or 703.4866696794237 < x Initial program 59.3
Simplified59.3
Taylor expanded around inf 0.0
Simplified0.0
if -708.5573543956083 < x < 703.4866696794237Initial program 0.0
Simplified0.0
rmApplied add-sqr-sqrt0.0
rmApplied add-sqr-sqrt0.0
Final simplification0.0
herbie shell --seed 2020047 +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))