\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 -1228989.37449984229 \lor \neg \left(x \le 617.00738619604158\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{expm1}\left(\mathsf{log1p}\left(\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)}\right)\right) \cdot x\\
\end{array}double f(double x) {
double r191238 = 1.0;
double r191239 = 0.1049934947;
double r191240 = x;
double r191241 = r191240 * r191240;
double r191242 = r191239 * r191241;
double r191243 = r191238 + r191242;
double r191244 = 0.0424060604;
double r191245 = r191241 * r191241;
double r191246 = r191244 * r191245;
double r191247 = r191243 + r191246;
double r191248 = 0.0072644182;
double r191249 = r191245 * r191241;
double r191250 = r191248 * r191249;
double r191251 = r191247 + r191250;
double r191252 = 0.0005064034;
double r191253 = r191249 * r191241;
double r191254 = r191252 * r191253;
double r191255 = r191251 + r191254;
double r191256 = 0.0001789971;
double r191257 = r191253 * r191241;
double r191258 = r191256 * r191257;
double r191259 = r191255 + r191258;
double r191260 = 0.7715471019;
double r191261 = r191260 * r191241;
double r191262 = r191238 + r191261;
double r191263 = 0.2909738639;
double r191264 = r191263 * r191245;
double r191265 = r191262 + r191264;
double r191266 = 0.0694555761;
double r191267 = r191266 * r191249;
double r191268 = r191265 + r191267;
double r191269 = 0.0140005442;
double r191270 = r191269 * r191253;
double r191271 = r191268 + r191270;
double r191272 = 0.0008327945;
double r191273 = r191272 * r191257;
double r191274 = r191271 + r191273;
double r191275 = 2.0;
double r191276 = r191275 * r191256;
double r191277 = r191257 * r191241;
double r191278 = r191276 * r191277;
double r191279 = r191274 + r191278;
double r191280 = r191259 / r191279;
double r191281 = r191280 * r191240;
return r191281;
}
double f(double x) {
double r191282 = x;
double r191283 = -1228989.3744998423;
bool r191284 = r191282 <= r191283;
double r191285 = 617.0073861960416;
bool r191286 = r191282 <= r191285;
double r191287 = !r191286;
bool r191288 = r191284 || r191287;
double r191289 = 0.2514179000665375;
double r191290 = 1.0;
double r191291 = 3.0;
double r191292 = pow(r191282, r191291);
double r191293 = r191290 / r191292;
double r191294 = 0.15298196345929327;
double r191295 = 5.0;
double r191296 = pow(r191282, r191295);
double r191297 = r191290 / r191296;
double r191298 = 0.5;
double r191299 = r191298 / r191282;
double r191300 = fma(r191294, r191297, r191299);
double r191301 = fma(r191289, r191293, r191300);
double r191302 = 1.0;
double r191303 = 0.1049934947;
double r191304 = r191282 * r191282;
double r191305 = r191303 * r191304;
double r191306 = r191302 + r191305;
double r191307 = 0.0424060604;
double r191308 = r191304 * r191304;
double r191309 = r191307 * r191308;
double r191310 = r191306 + r191309;
double r191311 = 0.0072644182;
double r191312 = r191308 * r191304;
double r191313 = r191311 * r191312;
double r191314 = r191310 + r191313;
double r191315 = 0.0005064034;
double r191316 = r191312 * r191304;
double r191317 = r191315 * r191316;
double r191318 = r191314 + r191317;
double r191319 = 0.0001789971;
double r191320 = r191316 * r191304;
double r191321 = r191319 * r191320;
double r191322 = r191318 + r191321;
double r191323 = 0.7715471019;
double r191324 = r191323 * r191304;
double r191325 = r191302 + r191324;
double r191326 = 0.2909738639;
double r191327 = r191326 * r191308;
double r191328 = r191325 + r191327;
double r191329 = 0.0694555761;
double r191330 = r191329 * r191312;
double r191331 = r191328 + r191330;
double r191332 = 0.0140005442;
double r191333 = r191332 * r191316;
double r191334 = r191331 + r191333;
double r191335 = 0.0008327945;
double r191336 = r191335 * r191320;
double r191337 = r191334 + r191336;
double r191338 = 2.0;
double r191339 = r191338 * r191319;
double r191340 = r191320 * r191304;
double r191341 = r191339 * r191340;
double r191342 = r191337 + r191341;
double r191343 = r191322 / r191342;
double r191344 = log1p(r191343);
double r191345 = expm1(r191344);
double r191346 = r191345 * r191282;
double r191347 = r191288 ? r191301 : r191346;
return r191347;
}



Bits error versus x
if x < -1228989.3744998423 or 617.0073861960416 < x Initial program 59.4
Taylor expanded around inf 0.0
Simplified0.0
if -1228989.3744998423 < x < 617.0073861960416Initial program 0.0
rmApplied expm1-log1p-u0.0
Final simplification0.0
herbie shell --seed 2020057 +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))