\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 -670.19346131185489 \lor \neg \left(x \le 733.09178720017348\right):\\
\;\;\;\;\mathsf{fma}\left(0.2514179000665373, \frac{1}{{x}^{3}}, \mathsf{fma}\left(0.15298196345929371, \frac{1}{{x}^{5}}, 0.5 \cdot \frac{1}{x}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{x}{\left(\left(x \cdot \left({\left(x \cdot x\right)}^{3} \cdot {x}^{3}\right)\right) \cdot \left(8.32794500000000044 \cdot 10^{-4} + \left(x \cdot x\right) \cdot \left(2 \cdot 1.789971 \cdot 10^{-4}\right)\right) + \mathsf{fma}\left(0.29097386390000002 \cdot x, {x}^{3}, \mathsf{fma}\left(0.77154710189999998 \cdot x, x, 1\right)\right)\right) + {x}^{6} \cdot \left(0.069455576099999999 + \left(x \cdot x\right) \cdot 0.014000544199999999\right)} \cdot \mathsf{fma}\left(\mathsf{fma}\left({\left(x \cdot x\right)}^{4}, 5.0640340000000002 \cdot 10^{-4} + \left(x \cdot x\right) \cdot 1.789971 \cdot 10^{-4}, \mathsf{fma}\left(0.1049934947 \cdot x, x, 1\right)\right), \mathsf{fma}\left({\left(x \cdot x\right)}^{4}, 5.0640340000000002 \cdot 10^{-4} + \left(x \cdot x\right) \cdot 1.789971 \cdot 10^{-4}, \mathsf{fma}\left(0.1049934947 \cdot x, x, 1\right)\right), -\left({x}^{4} \cdot \left(0.042406060400000001 + \left(x \cdot x\right) \cdot 0.00726441819999999999\right)\right) \cdot \left({x}^{4} \cdot \left(0.042406060400000001 + \left(x \cdot x\right) \cdot 0.00726441819999999999\right)\right)\right)}{\left({\left(x \cdot x\right)}^{4} \cdot \left(5.0640340000000002 \cdot 10^{-4} + \left(x \cdot x\right) \cdot 1.789971 \cdot 10^{-4}\right) + \mathsf{fma}\left(0.1049934947 \cdot x, x, 1\right)\right) - {x}^{4} \cdot \left(0.042406060400000001 + \left(x \cdot x\right) \cdot 0.00726441819999999999\right)}\\
\end{array}double f(double x) {
double r194344 = 1.0;
double r194345 = 0.1049934947;
double r194346 = x;
double r194347 = r194346 * r194346;
double r194348 = r194345 * r194347;
double r194349 = r194344 + r194348;
double r194350 = 0.0424060604;
double r194351 = r194347 * r194347;
double r194352 = r194350 * r194351;
double r194353 = r194349 + r194352;
double r194354 = 0.0072644182;
double r194355 = r194351 * r194347;
double r194356 = r194354 * r194355;
double r194357 = r194353 + r194356;
double r194358 = 0.0005064034;
double r194359 = r194355 * r194347;
double r194360 = r194358 * r194359;
double r194361 = r194357 + r194360;
double r194362 = 0.0001789971;
double r194363 = r194359 * r194347;
double r194364 = r194362 * r194363;
double r194365 = r194361 + r194364;
double r194366 = 0.7715471019;
double r194367 = r194366 * r194347;
double r194368 = r194344 + r194367;
double r194369 = 0.2909738639;
double r194370 = r194369 * r194351;
double r194371 = r194368 + r194370;
double r194372 = 0.0694555761;
double r194373 = r194372 * r194355;
double r194374 = r194371 + r194373;
double r194375 = 0.0140005442;
double r194376 = r194375 * r194359;
double r194377 = r194374 + r194376;
double r194378 = 0.0008327945;
double r194379 = r194378 * r194363;
double r194380 = r194377 + r194379;
double r194381 = 2.0;
double r194382 = r194381 * r194362;
double r194383 = r194363 * r194347;
double r194384 = r194382 * r194383;
double r194385 = r194380 + r194384;
double r194386 = r194365 / r194385;
double r194387 = r194386 * r194346;
return r194387;
}
double f(double x) {
double r194388 = x;
double r194389 = -670.1934613118549;
bool r194390 = r194388 <= r194389;
double r194391 = 733.0917872001735;
bool r194392 = r194388 <= r194391;
double r194393 = !r194392;
bool r194394 = r194390 || r194393;
double r194395 = 0.2514179000665373;
double r194396 = 1.0;
double r194397 = 3.0;
double r194398 = pow(r194388, r194397);
double r194399 = r194396 / r194398;
double r194400 = 0.1529819634592937;
double r194401 = 5.0;
double r194402 = pow(r194388, r194401);
double r194403 = r194396 / r194402;
double r194404 = 0.5;
double r194405 = r194396 / r194388;
double r194406 = r194404 * r194405;
double r194407 = fma(r194400, r194403, r194406);
double r194408 = fma(r194395, r194399, r194407);
double r194409 = r194388 * r194388;
double r194410 = pow(r194409, r194397);
double r194411 = r194410 * r194398;
double r194412 = r194388 * r194411;
double r194413 = 0.0008327945;
double r194414 = 2.0;
double r194415 = 0.0001789971;
double r194416 = r194414 * r194415;
double r194417 = r194409 * r194416;
double r194418 = r194413 + r194417;
double r194419 = r194412 * r194418;
double r194420 = 0.2909738639;
double r194421 = r194420 * r194388;
double r194422 = 0.7715471019;
double r194423 = r194422 * r194388;
double r194424 = 1.0;
double r194425 = fma(r194423, r194388, r194424);
double r194426 = fma(r194421, r194398, r194425);
double r194427 = r194419 + r194426;
double r194428 = 6.0;
double r194429 = pow(r194388, r194428);
double r194430 = 0.0694555761;
double r194431 = 0.0140005442;
double r194432 = r194409 * r194431;
double r194433 = r194430 + r194432;
double r194434 = r194429 * r194433;
double r194435 = r194427 + r194434;
double r194436 = r194388 / r194435;
double r194437 = 4.0;
double r194438 = pow(r194409, r194437);
double r194439 = 0.0005064034;
double r194440 = r194409 * r194415;
double r194441 = r194439 + r194440;
double r194442 = 0.1049934947;
double r194443 = r194442 * r194388;
double r194444 = fma(r194443, r194388, r194424);
double r194445 = fma(r194438, r194441, r194444);
double r194446 = pow(r194388, r194437);
double r194447 = 0.0424060604;
double r194448 = 0.0072644182;
double r194449 = r194409 * r194448;
double r194450 = r194447 + r194449;
double r194451 = r194446 * r194450;
double r194452 = r194451 * r194451;
double r194453 = -r194452;
double r194454 = fma(r194445, r194445, r194453);
double r194455 = r194436 * r194454;
double r194456 = r194438 * r194441;
double r194457 = r194456 + r194444;
double r194458 = r194457 - r194451;
double r194459 = r194455 / r194458;
double r194460 = r194394 ? r194408 : r194459;
return r194460;
}



Bits error versus x
if x < -670.1934613118549 or 733.0917872001735 < x Initial program 59.1
Simplified59.1
rmApplied flip-+61.2
Applied associate-/r/61.2
Applied associate-/r*61.2
Simplified61.2
Taylor expanded around inf 0.0
Simplified0.0
if -670.1934613118549 < x < 733.0917872001735Initial program 0.0
Simplified0.0
rmApplied flip-+0.0
Applied associate-/r/0.0
Applied associate-/r*0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2020035 +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))