\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 r157563 = 1.0;
double r157564 = 0.1049934947;
double r157565 = x;
double r157566 = r157565 * r157565;
double r157567 = r157564 * r157566;
double r157568 = r157563 + r157567;
double r157569 = 0.0424060604;
double r157570 = r157566 * r157566;
double r157571 = r157569 * r157570;
double r157572 = r157568 + r157571;
double r157573 = 0.0072644182;
double r157574 = r157570 * r157566;
double r157575 = r157573 * r157574;
double r157576 = r157572 + r157575;
double r157577 = 0.0005064034;
double r157578 = r157574 * r157566;
double r157579 = r157577 * r157578;
double r157580 = r157576 + r157579;
double r157581 = 0.0001789971;
double r157582 = r157578 * r157566;
double r157583 = r157581 * r157582;
double r157584 = r157580 + r157583;
double r157585 = 0.7715471019;
double r157586 = r157585 * r157566;
double r157587 = r157563 + r157586;
double r157588 = 0.2909738639;
double r157589 = r157588 * r157570;
double r157590 = r157587 + r157589;
double r157591 = 0.0694555761;
double r157592 = r157591 * r157574;
double r157593 = r157590 + r157592;
double r157594 = 0.0140005442;
double r157595 = r157594 * r157578;
double r157596 = r157593 + r157595;
double r157597 = 0.0008327945;
double r157598 = r157597 * r157582;
double r157599 = r157596 + r157598;
double r157600 = 2.0;
double r157601 = r157600 * r157581;
double r157602 = r157582 * r157566;
double r157603 = r157601 * r157602;
double r157604 = r157599 + r157603;
double r157605 = r157584 / r157604;
double r157606 = r157605 * r157565;
return r157606;
}
double f(double x) {
double r157607 = x;
double r157608 = -1795823920150617.8;
bool r157609 = r157607 <= r157608;
double r157610 = 59525946.96427765;
bool r157611 = r157607 <= r157610;
double r157612 = !r157611;
bool r157613 = r157609 || r157612;
double r157614 = 0.5;
double r157615 = r157614 / r157607;
double r157616 = 0.15298196345929327;
double r157617 = 5.0;
double r157618 = pow(r157607, r157617);
double r157619 = r157616 / r157618;
double r157620 = 0.2514179000665375;
double r157621 = 3.0;
double r157622 = pow(r157607, r157621);
double r157623 = r157620 / r157622;
double r157624 = r157619 + r157623;
double r157625 = r157615 + r157624;
double r157626 = 4.0;
double r157627 = pow(r157607, r157626);
double r157628 = 0.0001789971;
double r157629 = 6.0;
double r157630 = pow(r157607, r157629);
double r157631 = r157628 * r157630;
double r157632 = 0.0005064034;
double r157633 = r157627 * r157632;
double r157634 = r157631 + r157633;
double r157635 = 0.0072644182;
double r157636 = r157607 * r157607;
double r157637 = r157635 * r157636;
double r157638 = 0.0424060604;
double r157639 = r157637 + r157638;
double r157640 = r157634 + r157639;
double r157641 = r157627 * r157640;
double r157642 = 1.0;
double r157643 = 0.1049934947;
double r157644 = r157643 * r157636;
double r157645 = r157642 + r157644;
double r157646 = r157641 + r157645;
double r157647 = 0.2909738639;
double r157648 = r157627 * r157647;
double r157649 = r157642 + r157648;
double r157650 = 0.7715471019;
double r157651 = 0.0694555761;
double r157652 = 0.0140005442;
double r157653 = 2.0;
double r157654 = pow(r157607, r157653);
double r157655 = r157652 * r157654;
double r157656 = r157651 + r157655;
double r157657 = 0.0008327945;
double r157658 = r157657 * r157627;
double r157659 = 2.0;
double r157660 = r157659 * r157628;
double r157661 = r157630 * r157660;
double r157662 = r157658 + r157661;
double r157663 = r157656 + r157662;
double r157664 = r157627 * r157663;
double r157665 = r157650 + r157664;
double r157666 = r157636 * r157665;
double r157667 = r157649 + r157666;
double r157668 = r157646 / r157667;
double r157669 = r157668 * r157607;
double r157670 = r157613 ? r157625 : r157669;
return r157670;
}



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))