\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 -1795823920150617.75 \lor \neg \left(x \le 59525946.964277647435665130615234375\right):\\
\;\;\;\;\frac{0.5}{x} + \left(\frac{0.1529819634592932686700805788859724998474}{{x}^{5}} + \frac{0.2514179000665375252054900556686334311962}{{x}^{3}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{{x}^{4} \cdot \left(\left(1.789971000000000009994005623070734145585 \cdot 10^{-4} \cdot {x}^{6} + {x}^{4} \cdot 5.064034000000000243502107366566633572802 \cdot 10^{-4}\right) + \left(0.007264418199999999985194687468492702464573 \cdot \left(x \cdot x\right) + 0.04240606040000000076517494562722276896238\right)\right) + \left(1 + 0.1049934946999999951788851149103720672429 \cdot \left(x \cdot x\right)\right)}{\left(1 + {x}^{4} \cdot 0.2909738639000000182122107617033179849386\right) + \left(x \cdot x\right) \cdot \left(0.7715471018999999763821051601553335785866 + {x}^{4} \cdot \left(\left(0.06945557609999999937322456844412954524159 + 0.01400054419999999938406531896362139377743 \cdot {x}^{2}\right) + \left(8.327945000000000442749725770852364803432 \cdot 10^{-4} \cdot {x}^{4} + {x}^{6} \cdot \left(2 \cdot 1.789971000000000009994005623070734145585 \cdot 10^{-4}\right)\right)\right)\right)} \cdot x\\
\end{array}double f(double x) {
double r200169 = 1.0;
double r200170 = 0.1049934947;
double r200171 = x;
double r200172 = r200171 * r200171;
double r200173 = r200170 * r200172;
double r200174 = r200169 + r200173;
double r200175 = 0.0424060604;
double r200176 = r200172 * r200172;
double r200177 = r200175 * r200176;
double r200178 = r200174 + r200177;
double r200179 = 0.0072644182;
double r200180 = r200176 * r200172;
double r200181 = r200179 * r200180;
double r200182 = r200178 + r200181;
double r200183 = 0.0005064034;
double r200184 = r200180 * r200172;
double r200185 = r200183 * r200184;
double r200186 = r200182 + r200185;
double r200187 = 0.0001789971;
double r200188 = r200184 * r200172;
double r200189 = r200187 * r200188;
double r200190 = r200186 + r200189;
double r200191 = 0.7715471019;
double r200192 = r200191 * r200172;
double r200193 = r200169 + r200192;
double r200194 = 0.2909738639;
double r200195 = r200194 * r200176;
double r200196 = r200193 + r200195;
double r200197 = 0.0694555761;
double r200198 = r200197 * r200180;
double r200199 = r200196 + r200198;
double r200200 = 0.0140005442;
double r200201 = r200200 * r200184;
double r200202 = r200199 + r200201;
double r200203 = 0.0008327945;
double r200204 = r200203 * r200188;
double r200205 = r200202 + r200204;
double r200206 = 2.0;
double r200207 = r200206 * r200187;
double r200208 = r200188 * r200172;
double r200209 = r200207 * r200208;
double r200210 = r200205 + r200209;
double r200211 = r200190 / r200210;
double r200212 = r200211 * r200171;
return r200212;
}
double f(double x) {
double r200213 = x;
double r200214 = -1795823920150617.8;
bool r200215 = r200213 <= r200214;
double r200216 = 59525946.96427765;
bool r200217 = r200213 <= r200216;
double r200218 = !r200217;
bool r200219 = r200215 || r200218;
double r200220 = 0.5;
double r200221 = r200220 / r200213;
double r200222 = 0.15298196345929327;
double r200223 = 5.0;
double r200224 = pow(r200213, r200223);
double r200225 = r200222 / r200224;
double r200226 = 0.2514179000665375;
double r200227 = 3.0;
double r200228 = pow(r200213, r200227);
double r200229 = r200226 / r200228;
double r200230 = r200225 + r200229;
double r200231 = r200221 + r200230;
double r200232 = 4.0;
double r200233 = pow(r200213, r200232);
double r200234 = 0.0001789971;
double r200235 = 6.0;
double r200236 = pow(r200213, r200235);
double r200237 = r200234 * r200236;
double r200238 = 0.0005064034;
double r200239 = r200233 * r200238;
double r200240 = r200237 + r200239;
double r200241 = 0.0072644182;
double r200242 = r200213 * r200213;
double r200243 = r200241 * r200242;
double r200244 = 0.0424060604;
double r200245 = r200243 + r200244;
double r200246 = r200240 + r200245;
double r200247 = r200233 * r200246;
double r200248 = 1.0;
double r200249 = 0.1049934947;
double r200250 = r200249 * r200242;
double r200251 = r200248 + r200250;
double r200252 = r200247 + r200251;
double r200253 = 0.2909738639;
double r200254 = r200233 * r200253;
double r200255 = r200248 + r200254;
double r200256 = 0.7715471019;
double r200257 = 0.0694555761;
double r200258 = 0.0140005442;
double r200259 = 2.0;
double r200260 = pow(r200213, r200259);
double r200261 = r200258 * r200260;
double r200262 = r200257 + r200261;
double r200263 = 0.0008327945;
double r200264 = r200263 * r200233;
double r200265 = 2.0;
double r200266 = r200265 * r200234;
double r200267 = r200236 * r200266;
double r200268 = r200264 + r200267;
double r200269 = r200262 + r200268;
double r200270 = r200233 * r200269;
double r200271 = r200256 + r200270;
double r200272 = r200242 * r200271;
double r200273 = r200255 + r200272;
double r200274 = r200252 / r200273;
double r200275 = r200274 * r200213;
double r200276 = r200219 ? r200231 : r200275;
return r200276;
}



Bits error versus x
Results
if x < -1795823920150617.8 or 59525946.96427765 < x Initial program 61.3
Simplified61.2
Taylor expanded around inf 0.0
Simplified0.0
if -1795823920150617.8 < x < 59525946.96427765Initial program 0.0
Simplified0.0
Taylor expanded around 0 0.0
Final simplification0.0
herbie shell --seed 2019325
(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))