\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 -598.9087026034708287625107914209365844727 \lor \neg \left(x \le 605.8743541032351913599995896220207214355\right):\\
\;\;\;\;0.2514179000665375252054900556686334311962 \cdot \frac{1}{{x}^{3}} + \left(0.1529819634592932686700805788859724998474 \cdot \frac{1}{{x}^{5}} + 0.5 \cdot \frac{1}{x}\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) + \left(\left(x \cdot x\right) \cdot \left(0.7715471018999999763821051601553335785866 + 0.2909738639000000182122107617033179849386 \cdot \left(x \cdot x\right)\right) + 1\right)\right) + {x}^{6} \cdot \left(0.06945557609999999937322456844412954524159 + \left(x \cdot x\right) \cdot 0.01400054419999999938406531896362139377743\right)}} \cdot \frac{x}{e^{\log \left(\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) + \left(\left(x \cdot x\right) \cdot \left(0.7715471018999999763821051601553335785866 + 0.2909738639000000182122107617033179849386 \cdot \left(x \cdot x\right)\right) + 1\right)\right) + {x}^{6} \cdot \left(0.06945557609999999937322456844412954524159 + \left(x \cdot x\right) \cdot 0.01400054419999999938406531896362139377743\right)}}{\left({\left(x \cdot x\right)}^{4} \cdot \left(5.064034000000000243502107366566633572802 \cdot 10^{-4} + \left(x \cdot x\right) \cdot 1.789971000000000009994005623070734145585 \cdot 10^{-4}\right) + \left(1 + 0.1049934946999999951788851149103720672429 \cdot \left(x \cdot x\right)\right)\right) + {x}^{4} \cdot \left(0.04240606040000000076517494562722276896238 + \left(x \cdot x\right) \cdot 0.007264418199999999985194687468492702464573\right)}\right)}}\\
\end{array}double f(double x) {
double r303367 = 1.0;
double r303368 = 0.1049934947;
double r303369 = x;
double r303370 = r303369 * r303369;
double r303371 = r303368 * r303370;
double r303372 = r303367 + r303371;
double r303373 = 0.0424060604;
double r303374 = r303370 * r303370;
double r303375 = r303373 * r303374;
double r303376 = r303372 + r303375;
double r303377 = 0.0072644182;
double r303378 = r303374 * r303370;
double r303379 = r303377 * r303378;
double r303380 = r303376 + r303379;
double r303381 = 0.0005064034;
double r303382 = r303378 * r303370;
double r303383 = r303381 * r303382;
double r303384 = r303380 + r303383;
double r303385 = 0.0001789971;
double r303386 = r303382 * r303370;
double r303387 = r303385 * r303386;
double r303388 = r303384 + r303387;
double r303389 = 0.7715471019;
double r303390 = r303389 * r303370;
double r303391 = r303367 + r303390;
double r303392 = 0.2909738639;
double r303393 = r303392 * r303374;
double r303394 = r303391 + r303393;
double r303395 = 0.0694555761;
double r303396 = r303395 * r303378;
double r303397 = r303394 + r303396;
double r303398 = 0.0140005442;
double r303399 = r303398 * r303382;
double r303400 = r303397 + r303399;
double r303401 = 0.0008327945;
double r303402 = r303401 * r303386;
double r303403 = r303400 + r303402;
double r303404 = 2.0;
double r303405 = r303404 * r303385;
double r303406 = r303386 * r303370;
double r303407 = r303405 * r303406;
double r303408 = r303403 + r303407;
double r303409 = r303388 / r303408;
double r303410 = r303409 * r303369;
return r303410;
}
double f(double x) {
double r303411 = x;
double r303412 = -598.9087026034708;
bool r303413 = r303411 <= r303412;
double r303414 = 605.8743541032352;
bool r303415 = r303411 <= r303414;
double r303416 = !r303415;
bool r303417 = r303413 || r303416;
double r303418 = 0.2514179000665375;
double r303419 = 1.0;
double r303420 = 3.0;
double r303421 = pow(r303411, r303420);
double r303422 = r303419 / r303421;
double r303423 = r303418 * r303422;
double r303424 = 0.15298196345929327;
double r303425 = 5.0;
double r303426 = pow(r303411, r303425);
double r303427 = r303419 / r303426;
double r303428 = r303424 * r303427;
double r303429 = 0.5;
double r303430 = r303419 / r303411;
double r303431 = r303429 * r303430;
double r303432 = r303428 + r303431;
double r303433 = r303423 + r303432;
double r303434 = r303411 * r303411;
double r303435 = pow(r303434, r303420);
double r303436 = r303435 * r303421;
double r303437 = r303411 * r303436;
double r303438 = 0.0008327945;
double r303439 = 2.0;
double r303440 = 0.0001789971;
double r303441 = r303439 * r303440;
double r303442 = r303434 * r303441;
double r303443 = r303438 + r303442;
double r303444 = r303437 * r303443;
double r303445 = 0.7715471019;
double r303446 = 0.2909738639;
double r303447 = r303446 * r303434;
double r303448 = r303445 + r303447;
double r303449 = r303434 * r303448;
double r303450 = 1.0;
double r303451 = r303449 + r303450;
double r303452 = r303444 + r303451;
double r303453 = 6.0;
double r303454 = pow(r303411, r303453);
double r303455 = 0.0694555761;
double r303456 = 0.0140005442;
double r303457 = r303434 * r303456;
double r303458 = r303455 + r303457;
double r303459 = r303454 * r303458;
double r303460 = r303452 + r303459;
double r303461 = sqrt(r303460);
double r303462 = r303419 / r303461;
double r303463 = 4.0;
double r303464 = pow(r303434, r303463);
double r303465 = 0.0005064034;
double r303466 = r303434 * r303440;
double r303467 = r303465 + r303466;
double r303468 = r303464 * r303467;
double r303469 = 0.1049934947;
double r303470 = r303469 * r303434;
double r303471 = r303450 + r303470;
double r303472 = r303468 + r303471;
double r303473 = pow(r303411, r303463);
double r303474 = 0.0424060604;
double r303475 = 0.0072644182;
double r303476 = r303434 * r303475;
double r303477 = r303474 + r303476;
double r303478 = r303473 * r303477;
double r303479 = r303472 + r303478;
double r303480 = r303461 / r303479;
double r303481 = log(r303480);
double r303482 = exp(r303481);
double r303483 = r303411 / r303482;
double r303484 = r303462 * r303483;
double r303485 = r303417 ? r303433 : r303484;
return r303485;
}



Bits error versus x
Results
if x < -598.9087026034708 or 605.8743541032352 < x Initial program 59.5
Simplified59.5
Taylor expanded around inf 0.0
if -598.9087026034708 < x < 605.8743541032352Initial 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 add-exp-log0.0
Applied add-exp-log0.0
Applied div-exp0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2020001
(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))