\frac{\left(\left(\left(\left(1 + 0.1049934946999999951788851149103720672429 \cdot \left(x \cdot x\right)\right) + 0.04240606040000000076517494562722276896238 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.007264418199999999985194687468492702464573 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 5.064034000000000243502107366566633572802 \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.789971000000000009994005623070734145585 \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.7715471018999999763821051601553335785866 \cdot \left(x \cdot x\right)\right) + 0.2909738639000000182122107617033179849386 \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 0.06945557609999999937322456844412954524159 \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right) + 0.01400054419999999938406531896362139377743 \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.327945000000000442749725770852364803432 \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.789971000000000009994005623070734145585 \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 -34377.09017968051921343430876731872558594:\\
\;\;\;\;\frac{0.2514179000665375252054900556686334311962}{\left(x \cdot x\right) \cdot x} + \left(\frac{0.1529819634592932686700805788859724998474}{{x}^{5}} + \frac{0.5}{x}\right)\\
\mathbf{elif}\;x \le 650.8477803958841150233638472855091094971:\\
\;\;\;\;x \cdot \frac{\left(0.04240606040000000076517494562722276896238 + \left(\left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) \cdot 1.789971000000000009994005623070734145585 \cdot 10^{-4} + \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot 5.064034000000000243502107366566633572802 \cdot 10^{-4}\right)\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) + \left(\left(0.007264418199999999985194687468492702464573 \cdot \left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + 1\right) + 0.1049934946999999951788851149103720672429 \cdot \left(x \cdot x\right)\right)}{1 + \left(\left(x \cdot x\right) \cdot \left(\left(0.2909738639000000182122107617033179849386 \cdot \left(x \cdot x\right) + \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot 0.06945557609999999937322456844412954524159\right) + 0.7715471018999999763821051601553335785866\right) + \left(\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot 3.579942000000000019988011246141468291171 \cdot 10^{-4} + 8.327945000000000442749725770852364803432 \cdot 10^{-4}\right) + 0.01400054419999999938406531896362139377743\right) \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{0.2514179000665375252054900556686334311962}{\left(x \cdot x\right) \cdot x} + \left(\frac{0.1529819634592932686700805788859724998474}{{x}^{5}} + \frac{0.5}{x}\right)\\
\end{array}double f(double x) {
double r7441048 = 1.0;
double r7441049 = 0.1049934947;
double r7441050 = x;
double r7441051 = r7441050 * r7441050;
double r7441052 = r7441049 * r7441051;
double r7441053 = r7441048 + r7441052;
double r7441054 = 0.0424060604;
double r7441055 = r7441051 * r7441051;
double r7441056 = r7441054 * r7441055;
double r7441057 = r7441053 + r7441056;
double r7441058 = 0.0072644182;
double r7441059 = r7441055 * r7441051;
double r7441060 = r7441058 * r7441059;
double r7441061 = r7441057 + r7441060;
double r7441062 = 0.0005064034;
double r7441063 = r7441059 * r7441051;
double r7441064 = r7441062 * r7441063;
double r7441065 = r7441061 + r7441064;
double r7441066 = 0.0001789971;
double r7441067 = r7441063 * r7441051;
double r7441068 = r7441066 * r7441067;
double r7441069 = r7441065 + r7441068;
double r7441070 = 0.7715471019;
double r7441071 = r7441070 * r7441051;
double r7441072 = r7441048 + r7441071;
double r7441073 = 0.2909738639;
double r7441074 = r7441073 * r7441055;
double r7441075 = r7441072 + r7441074;
double r7441076 = 0.0694555761;
double r7441077 = r7441076 * r7441059;
double r7441078 = r7441075 + r7441077;
double r7441079 = 0.0140005442;
double r7441080 = r7441079 * r7441063;
double r7441081 = r7441078 + r7441080;
double r7441082 = 0.0008327945;
double r7441083 = r7441082 * r7441067;
double r7441084 = r7441081 + r7441083;
double r7441085 = 2.0;
double r7441086 = r7441085 * r7441066;
double r7441087 = r7441067 * r7441051;
double r7441088 = r7441086 * r7441087;
double r7441089 = r7441084 + r7441088;
double r7441090 = r7441069 / r7441089;
double r7441091 = r7441090 * r7441050;
return r7441091;
}
double f(double x) {
double r7441092 = x;
double r7441093 = -34377.09017968052;
bool r7441094 = r7441092 <= r7441093;
double r7441095 = 0.2514179000665375;
double r7441096 = r7441092 * r7441092;
double r7441097 = r7441096 * r7441092;
double r7441098 = r7441095 / r7441097;
double r7441099 = 0.15298196345929327;
double r7441100 = 5.0;
double r7441101 = pow(r7441092, r7441100);
double r7441102 = r7441099 / r7441101;
double r7441103 = 0.5;
double r7441104 = r7441103 / r7441092;
double r7441105 = r7441102 + r7441104;
double r7441106 = r7441098 + r7441105;
double r7441107 = 650.8477803958841;
bool r7441108 = r7441092 <= r7441107;
double r7441109 = 0.0424060604;
double r7441110 = r7441096 * r7441096;
double r7441111 = r7441096 * r7441110;
double r7441112 = 0.0001789971;
double r7441113 = r7441111 * r7441112;
double r7441114 = 0.0005064034;
double r7441115 = r7441110 * r7441114;
double r7441116 = r7441113 + r7441115;
double r7441117 = r7441109 + r7441116;
double r7441118 = r7441117 * r7441110;
double r7441119 = 0.0072644182;
double r7441120 = r7441119 * r7441111;
double r7441121 = 1.0;
double r7441122 = r7441120 + r7441121;
double r7441123 = 0.1049934947;
double r7441124 = r7441123 * r7441096;
double r7441125 = r7441122 + r7441124;
double r7441126 = r7441118 + r7441125;
double r7441127 = 0.2909738639;
double r7441128 = r7441127 * r7441096;
double r7441129 = 0.0694555761;
double r7441130 = r7441110 * r7441129;
double r7441131 = r7441128 + r7441130;
double r7441132 = 0.7715471019;
double r7441133 = r7441131 + r7441132;
double r7441134 = r7441096 * r7441133;
double r7441135 = 0.0003579942;
double r7441136 = r7441096 * r7441135;
double r7441137 = 0.0008327945;
double r7441138 = r7441136 + r7441137;
double r7441139 = r7441096 * r7441138;
double r7441140 = 0.0140005442;
double r7441141 = r7441139 + r7441140;
double r7441142 = r7441110 * r7441110;
double r7441143 = r7441141 * r7441142;
double r7441144 = r7441134 + r7441143;
double r7441145 = r7441121 + r7441144;
double r7441146 = r7441126 / r7441145;
double r7441147 = r7441092 * r7441146;
double r7441148 = r7441108 ? r7441147 : r7441106;
double r7441149 = r7441094 ? r7441106 : r7441148;
return r7441149;
}



Bits error versus x
Results
if x < -34377.09017968052 or 650.8477803958841 < x Initial program 59.5
Simplified59.4
Taylor expanded around inf 0.0
Simplified0.0
if -34377.09017968052 < x < 650.8477803958841Initial program 0.0
Simplified0.0
Taylor expanded around 0 0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019171
(FPCore (x)
:name "Jmat.Real.dawson"
(* (/ (+ (+ (+ (+ (+ 1.0 (* 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 (* 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 0.0001789971) (* (* (* (* (* (* x x) (* x x)) (* x x)) (* x x)) (* x x)) (* x x))))) x))