\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):\\
\;\;\;\;\frac{0.1529819634592933}{{x}^{5}} + \left(\frac{0.5}{x} + \frac{0.25141790006653753}{{x}^{3}}\right)\\
\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 r183957 = 1.0;
double r183958 = 0.1049934947;
double r183959 = x;
double r183960 = r183959 * r183959;
double r183961 = r183958 * r183960;
double r183962 = r183957 + r183961;
double r183963 = 0.0424060604;
double r183964 = r183960 * r183960;
double r183965 = r183963 * r183964;
double r183966 = r183962 + r183965;
double r183967 = 0.0072644182;
double r183968 = r183964 * r183960;
double r183969 = r183967 * r183968;
double r183970 = r183966 + r183969;
double r183971 = 0.0005064034;
double r183972 = r183968 * r183960;
double r183973 = r183971 * r183972;
double r183974 = r183970 + r183973;
double r183975 = 0.0001789971;
double r183976 = r183972 * r183960;
double r183977 = r183975 * r183976;
double r183978 = r183974 + r183977;
double r183979 = 0.7715471019;
double r183980 = r183979 * r183960;
double r183981 = r183957 + r183980;
double r183982 = 0.2909738639;
double r183983 = r183982 * r183964;
double r183984 = r183981 + r183983;
double r183985 = 0.0694555761;
double r183986 = r183985 * r183968;
double r183987 = r183984 + r183986;
double r183988 = 0.0140005442;
double r183989 = r183988 * r183972;
double r183990 = r183987 + r183989;
double r183991 = 0.0008327945;
double r183992 = r183991 * r183976;
double r183993 = r183990 + r183992;
double r183994 = 2.0;
double r183995 = r183994 * r183975;
double r183996 = r183976 * r183960;
double r183997 = r183995 * r183996;
double r183998 = r183993 + r183997;
double r183999 = r183978 / r183998;
double r184000 = r183999 * r183959;
return r184000;
}
double f(double x) {
double r184001 = x;
double r184002 = -708.5573543956083;
bool r184003 = r184001 <= r184002;
double r184004 = 703.4866696794237;
bool r184005 = r184001 <= r184004;
double r184006 = !r184005;
bool r184007 = r184003 || r184006;
double r184008 = 0.15298196345929327;
double r184009 = 5.0;
double r184010 = pow(r184001, r184009);
double r184011 = r184008 / r184010;
double r184012 = 0.5;
double r184013 = r184012 / r184001;
double r184014 = 0.2514179000665375;
double r184015 = 3.0;
double r184016 = pow(r184001, r184015);
double r184017 = r184014 / r184016;
double r184018 = r184013 + r184017;
double r184019 = r184011 + r184018;
double r184020 = r184001 * r184001;
double r184021 = 4.0;
double r184022 = pow(r184020, r184021);
double r184023 = 0.0005064034;
double r184024 = 0.0001789971;
double r184025 = r184020 * r184024;
double r184026 = sqrt(r184025);
double r184027 = r184026 * r184026;
double r184028 = r184023 + r184027;
double r184029 = r184022 * r184028;
double r184030 = 0.0072644182;
double r184031 = 6.0;
double r184032 = pow(r184001, r184031);
double r184033 = pow(r184001, r184021);
double r184034 = 0.0424060604;
double r184035 = 0.1049934947;
double r184036 = 1.0;
double r184037 = fma(r184020, r184035, r184036);
double r184038 = fma(r184033, r184034, r184037);
double r184039 = fma(r184030, r184032, r184038);
double r184040 = r184029 + r184039;
double r184041 = r184040 * r184001;
double r184042 = 0.0008327945;
double r184043 = r184020 * r184042;
double r184044 = 0.0140005442;
double r184045 = r184043 + r184044;
double r184046 = r184022 * r184045;
double r184047 = 2.0;
double r184048 = pow(r184020, r184031);
double r184049 = r184047 * r184048;
double r184050 = 0.0694555761;
double r184051 = 0.2909738639;
double r184052 = 0.7715471019;
double r184053 = r184052 * r184001;
double r184054 = fma(r184053, r184001, r184036);
double r184055 = sqrt(r184054);
double r184056 = r184055 * r184055;
double r184057 = fma(r184051, r184033, r184056);
double r184058 = fma(r184050, r184032, r184057);
double r184059 = fma(r184049, r184024, r184058);
double r184060 = r184046 + r184059;
double r184061 = r184041 / r184060;
double r184062 = r184007 ? r184019 : r184061;
return r184062;
}



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))