\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 -1.147765270182274 \lor \neg \left(x \le 1.1589205875478283\right):\\
\;\;\;\;\frac{0.5}{x} + \left(\frac{0.1529819634592933}{{x}^{5}} + \frac{0.25141790006653753}{{x}^{3}}\right)\\
\mathbf{else}:\\
\;\;\;\;\left(1 \cdot x + 0.265709700396150994 \cdot {x}^{5}\right) - 0.66655360720000001 \cdot {x}^{3}\\
\end{array}double f(double x) {
double r164612 = 1.0;
double r164613 = 0.1049934947;
double r164614 = x;
double r164615 = r164614 * r164614;
double r164616 = r164613 * r164615;
double r164617 = r164612 + r164616;
double r164618 = 0.0424060604;
double r164619 = r164615 * r164615;
double r164620 = r164618 * r164619;
double r164621 = r164617 + r164620;
double r164622 = 0.0072644182;
double r164623 = r164619 * r164615;
double r164624 = r164622 * r164623;
double r164625 = r164621 + r164624;
double r164626 = 0.0005064034;
double r164627 = r164623 * r164615;
double r164628 = r164626 * r164627;
double r164629 = r164625 + r164628;
double r164630 = 0.0001789971;
double r164631 = r164627 * r164615;
double r164632 = r164630 * r164631;
double r164633 = r164629 + r164632;
double r164634 = 0.7715471019;
double r164635 = r164634 * r164615;
double r164636 = r164612 + r164635;
double r164637 = 0.2909738639;
double r164638 = r164637 * r164619;
double r164639 = r164636 + r164638;
double r164640 = 0.0694555761;
double r164641 = r164640 * r164623;
double r164642 = r164639 + r164641;
double r164643 = 0.0140005442;
double r164644 = r164643 * r164627;
double r164645 = r164642 + r164644;
double r164646 = 0.0008327945;
double r164647 = r164646 * r164631;
double r164648 = r164645 + r164647;
double r164649 = 2.0;
double r164650 = r164649 * r164630;
double r164651 = r164631 * r164615;
double r164652 = r164650 * r164651;
double r164653 = r164648 + r164652;
double r164654 = r164633 / r164653;
double r164655 = r164654 * r164614;
return r164655;
}
double f(double x) {
double r164656 = x;
double r164657 = -1.147765270182274;
bool r164658 = r164656 <= r164657;
double r164659 = 1.1589205875478283;
bool r164660 = r164656 <= r164659;
double r164661 = !r164660;
bool r164662 = r164658 || r164661;
double r164663 = 0.5;
double r164664 = r164663 / r164656;
double r164665 = 0.15298196345929327;
double r164666 = 5.0;
double r164667 = pow(r164656, r164666);
double r164668 = r164665 / r164667;
double r164669 = 0.2514179000665375;
double r164670 = 3.0;
double r164671 = pow(r164656, r164670);
double r164672 = r164669 / r164671;
double r164673 = r164668 + r164672;
double r164674 = r164664 + r164673;
double r164675 = 1.0;
double r164676 = r164675 * r164656;
double r164677 = 0.265709700396151;
double r164678 = r164677 * r164667;
double r164679 = r164676 + r164678;
double r164680 = 0.6665536072;
double r164681 = r164680 * r164671;
double r164682 = r164679 - r164681;
double r164683 = r164662 ? r164674 : r164682;
return r164683;
}



Bits error versus x
Results
if x < -1.147765270182274 or 1.1589205875478283 < x Initial program 58.5
Simplified58.5
Taylor expanded around inf 0.4
Simplified0.4
if -1.147765270182274 < x < 1.1589205875478283Initial program 0.0
Simplified0.0
Taylor expanded around 0 0.1
Final simplification0.2
herbie shell --seed 2020046
(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))