\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 -656.5908303529681688814889639616012573242 \lor \neg \left(x \le 735244.049645020510070025920867919921875\right):\\
\;\;\;\;\mathsf{fma}\left(0.2514179000665375252054900556686334311962, \frac{1}{{x}^{3}}, \mathsf{fma}\left(0.1529819634592932686700805788859724998474, \frac{1}{{x}^{5}}, 0.5 \cdot \frac{1}{x}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\sqrt{\left(\left(x \cdot \left({\left(x \cdot x\right)}^{3} \cdot {x}^{3}\right)\right) \cdot \left(8.327945000000000442749725770852364803432 \cdot 10^{-4} + \left(x \cdot x\right) \cdot \left(2 \cdot 1.789971000000000009994005623070734145585 \cdot 10^{-4}\right)\right) + \mathsf{fma}\left(0.2909738639000000182122107617033179849386 \cdot x, {x}^{3}, \mathsf{fma}\left(0.7715471018999999763821051601553335785866 \cdot x, x, 1\right)\right)\right) + {x}^{6} \cdot \left(0.06945557609999999937322456844412954524159 + \left(x \cdot x\right) \cdot 0.01400054419999999938406531896362139377743\right)}} \cdot \frac{x}{\frac{-\sqrt{\left(\left(x \cdot \left({\left(x \cdot x\right)}^{3} \cdot {x}^{3}\right)\right) \cdot \left(8.327945000000000442749725770852364803432 \cdot 10^{-4} + \left(x \cdot x\right) \cdot \left(2 \cdot 1.789971000000000009994005623070734145585 \cdot 10^{-4}\right)\right) + \mathsf{fma}\left(0.2909738639000000182122107617033179849386 \cdot x, {x}^{3}, \mathsf{fma}\left(0.7715471018999999763821051601553335785866 \cdot x, x, 1\right)\right)\right) + {x}^{6} \cdot \left(0.06945557609999999937322456844412954524159 + \left(x \cdot x\right) \cdot 0.01400054419999999938406531896362139377743\right)}}{\left(-{x}^{4}\right) \cdot \mathsf{fma}\left(x, x \cdot 0.007264418199999999985194687468492702464573, 0.04240606040000000076517494562722276896238\right) + \left(-\mathsf{fma}\left({\left(x \cdot x\right)}^{4}, 5.064034000000000243502107366566633572802 \cdot 10^{-4} + \left(x \cdot x\right) \cdot 1.789971000000000009994005623070734145585 \cdot 10^{-4}, \mathsf{fma}\left(0.1049934946999999951788851149103720672429 \cdot x, x, 1\right)\right)\right)}}\\
\end{array}double f(double x) {
double r256311 = 1.0;
double r256312 = 0.1049934947;
double r256313 = x;
double r256314 = r256313 * r256313;
double r256315 = r256312 * r256314;
double r256316 = r256311 + r256315;
double r256317 = 0.0424060604;
double r256318 = r256314 * r256314;
double r256319 = r256317 * r256318;
double r256320 = r256316 + r256319;
double r256321 = 0.0072644182;
double r256322 = r256318 * r256314;
double r256323 = r256321 * r256322;
double r256324 = r256320 + r256323;
double r256325 = 0.0005064034;
double r256326 = r256322 * r256314;
double r256327 = r256325 * r256326;
double r256328 = r256324 + r256327;
double r256329 = 0.0001789971;
double r256330 = r256326 * r256314;
double r256331 = r256329 * r256330;
double r256332 = r256328 + r256331;
double r256333 = 0.7715471019;
double r256334 = r256333 * r256314;
double r256335 = r256311 + r256334;
double r256336 = 0.2909738639;
double r256337 = r256336 * r256318;
double r256338 = r256335 + r256337;
double r256339 = 0.0694555761;
double r256340 = r256339 * r256322;
double r256341 = r256338 + r256340;
double r256342 = 0.0140005442;
double r256343 = r256342 * r256326;
double r256344 = r256341 + r256343;
double r256345 = 0.0008327945;
double r256346 = r256345 * r256330;
double r256347 = r256344 + r256346;
double r256348 = 2.0;
double r256349 = r256348 * r256329;
double r256350 = r256330 * r256314;
double r256351 = r256349 * r256350;
double r256352 = r256347 + r256351;
double r256353 = r256332 / r256352;
double r256354 = r256353 * r256313;
return r256354;
}
double f(double x) {
double r256355 = x;
double r256356 = -656.5908303529682;
bool r256357 = r256355 <= r256356;
double r256358 = 735244.0496450205;
bool r256359 = r256355 <= r256358;
double r256360 = !r256359;
bool r256361 = r256357 || r256360;
double r256362 = 0.2514179000665375;
double r256363 = 1.0;
double r256364 = 3.0;
double r256365 = pow(r256355, r256364);
double r256366 = r256363 / r256365;
double r256367 = 0.15298196345929327;
double r256368 = 5.0;
double r256369 = pow(r256355, r256368);
double r256370 = r256363 / r256369;
double r256371 = 0.5;
double r256372 = r256363 / r256355;
double r256373 = r256371 * r256372;
double r256374 = fma(r256367, r256370, r256373);
double r256375 = fma(r256362, r256366, r256374);
double r256376 = r256355 * r256355;
double r256377 = pow(r256376, r256364);
double r256378 = r256377 * r256365;
double r256379 = r256355 * r256378;
double r256380 = 0.0008327945;
double r256381 = 2.0;
double r256382 = 0.0001789971;
double r256383 = r256381 * r256382;
double r256384 = r256376 * r256383;
double r256385 = r256380 + r256384;
double r256386 = r256379 * r256385;
double r256387 = 0.2909738639;
double r256388 = r256387 * r256355;
double r256389 = 0.7715471019;
double r256390 = r256389 * r256355;
double r256391 = 1.0;
double r256392 = fma(r256390, r256355, r256391);
double r256393 = fma(r256388, r256365, r256392);
double r256394 = r256386 + r256393;
double r256395 = 6.0;
double r256396 = pow(r256355, r256395);
double r256397 = 0.0694555761;
double r256398 = 0.0140005442;
double r256399 = r256376 * r256398;
double r256400 = r256397 + r256399;
double r256401 = r256396 * r256400;
double r256402 = r256394 + r256401;
double r256403 = sqrt(r256402);
double r256404 = r256363 / r256403;
double r256405 = -r256403;
double r256406 = 4.0;
double r256407 = pow(r256355, r256406);
double r256408 = -r256407;
double r256409 = 0.0072644182;
double r256410 = r256355 * r256409;
double r256411 = 0.0424060604;
double r256412 = fma(r256355, r256410, r256411);
double r256413 = r256408 * r256412;
double r256414 = pow(r256376, r256406);
double r256415 = 0.0005064034;
double r256416 = r256376 * r256382;
double r256417 = r256415 + r256416;
double r256418 = 0.1049934947;
double r256419 = r256418 * r256355;
double r256420 = fma(r256419, r256355, r256391);
double r256421 = fma(r256414, r256417, r256420);
double r256422 = -r256421;
double r256423 = r256413 + r256422;
double r256424 = r256405 / r256423;
double r256425 = r256355 / r256424;
double r256426 = r256404 * r256425;
double r256427 = r256361 ? r256375 : r256426;
return r256427;
}



Bits error versus x
if x < -656.5908303529682 or 735244.0496450205 < x Initial program 59.9
Simplified59.8
Taylor expanded around inf 0.0
Simplified0.0
if -656.5908303529682 < x < 735244.0496450205Initial program 0.0
Simplified0.0
rmApplied *-un-lft-identity0.0
Applied add-sqr-sqrt0.0
Applied times-frac0.0
Applied *-un-lft-identity0.0
Applied times-frac0.0
Simplified0.0
rmApplied frac-2neg0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2020001 +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))